- 拉取jenkins的docker镜像,这里用的是lts的长期支持版本,你可以到jenkins官网自由选择其他版本(下载速度慢,花了两个小时,如果中途出现超时再次运行该命令即可)
docker pull jenkins/jenkins:lts
- 配置宿主机映射到容器的目录,之后jenkins的一些配置文件都将会存储到该目录下,这个目录可以自己定,但是我建议遵守我这样的规范,便于日后查找和管理
mkdir /home/jenkins_home # 创建jenkins_home目录 chown -R 1000:1000 /home/jenkins_home #设置该目录的所有者和所属的组,普通用户默认uid为1000,gid为1000,chown应该是change own的简写,指改变文件夹权限,-R指遍及子目录
- 启动jenkins的docker镜像
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -u root \ -v /home/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker \ -v /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \ -v /opt:/opt \ -v /etc/timezone:/etc/timezone jenkins/jenkins:lts
- 参数解释
-d 表示以后台模式运行
--name 为容器定义一个名字(后面可以代替容器id使用)
-p 表示映射容器的端口到宿主机的端口
-v 表示映射宿主机的目录到容器的目录
-u root 使用root用户运行,避免后面出现的一些执行权限问题
-v /home/jenkins_home:/var/jenkins_home 映射jenkins_home,将数据存储到宿主机,这样配置就不会随容器丢失
-v /var/run/docker.sock:/var/run/docker.sock 与 -v /usr/bin/docker:/usr/bin/docker 把宿主机docker 映射到容器内,可以直接在容器内使用宿主机docker
-v /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \ 容器内docker运行需要的库文件
-v /opt:/opt \ 自主安装的一些运行时软件(如java/maven/git...)
-v /etc/timezone:/etc/timezone 映射时区文件,保证容器的时区和宿主机相同(官网的jenkins容器时区不是中国的时区)
最后的jenkins/jenkins:lts是要启动的镜像
- 容器启动后,就可以访问ip:8080看到jenkins首次运行的首页了,然后通过下面命令查看初始密码,填入之后跳转到安装插件的页面,选择第一个就好,会默认安装一些插件
cat /home/jenkins_home/secrets/initialAdminPassword
【如果不能访问,重启jenkins容器试试】
docker restart jenkins
- 推荐插件安装
- 多次重新刷新页面,出现安装插件失败
- 先点击继续,跳过插件的安装->创建管理员账户
docker restart jenkins #重启jenkins
- 修改jenkins源,在插件–>高级的最后->升级站点,将Jenkins源(https://updates.jenkins.io/update-center.json)修改为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
还是下载速度慢!
下面不使用docker安装,直接在虚拟机上进行安装