一、安装
1、寻找合适的镜像
docker search jenkins
[root@localhost docker]# docker search jenkins
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jenkins Official Jenkins Docker image 4153 [OK]
jenkins/jenkins The leading open source automation server 1326
jenkinsci/jenkins Jenkins Continuous Integration and Delivery … 355
jenkinsci/blueocean https://jenkins.io/projects/blueocean 339
jenkinsci/jnlp-slave A Jenkins slave using JNLP to establish conn… 101 [OK]
2、远程拉取镜像
docker pull jenkins
[root@localhost docker]# docker pull jenkins
Using default tag: latest
latest: Pulling from library/jenkins
55cbf04beb70: Pull complete
1607093a898c: Pull complete
9a8ea045c926: Pull complete
d4eee24d4dac: Pull complete
c58988e753d7: Pull complete
794a04897db9: Pull complete
70fcfa476f73: Pull complete
3、创建挂载目录
挂载目录用于映射jenkins的jenkins_home下的配置文件等信息;
mkdir /home/jenkins
注意:此目录需要设置权限,否则启动容器报错权限错误
#修改权限(1000:1000 是UID和GID)
chown -R 1000:1000 /home/jenkins/
4、启动容器
docker run -d -p 8000:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --name jenkins --restart always --privileged=true -u root jenkins
-p : 映射端口,宿主机端口:容器端口
-v : 挂载,宿主机目录:容器目录
–name : 自定义容器名
-u : 权限用户名
–privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限;
-p 50000:50000 : 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信;
5、修改default.json、hudson.model.UpdateCenter.xml配置文件
(1)修改hudson.model.UpdateCenter.xml配置文件:
默认路径
http://updates.jenkins-ci.org/update-center.json
改成路径
http://mirror.xmission.com/jenkins/updates/update-center.json
(2)修改 /updates/default.json 配置文件
默认路径
“connectionCheckUrl”:“http://www.google.com/”
改为路径
“connectionCheckUrl”:“http://www.baidu.com/”
6、重启jenkins容器
docker restart jenkins
二、Jenkins升级
进入容器,下载最新jenkins.war包,替换旧包,重启即可;
1、进入容器
# 进入容器
[root@node-139 /]# docker exec -it -u root jenkins bash
2、下载新包
# 下载新包
root@node-139:/# cd /var/jenkins
root@node-139:/# wget http://mirrors.jenkins.io/war/latest/jenkins.war
3、进入war包的存放路径,备份旧包,新包代替
# 进入war包的存放路径,备份旧包,新包代替
root@node-139:/# cd /usr/share/jenkins/
root@node-139:/usr/share/jenkins# ls
jenkins.war ref
root@node-139:/usr/share/jenkins# mv jenkins.war jenkins.war-bak
root@node-139:/usr/share/jenkins# cp /var/jenkins_home/jenkins.war .
root@node-139:/usr/share/jenkins# ls
jenkins.war jenkins.war-bak ref
root@node-139:/usr/share/jenkins# exit
exit
4、重启容器
# 重启容器
[root@node-139 /]# docker restart jenkins
jenkins