Docker:docker安装部署jenkins
查看docker的jenkins镜像版本
#查看jenkins版本命令
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]
远程拉取镜像
#拉取镜像命令(不标注表示最新的)
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
创建挂载目录
挂载目录用于映射jenkins的jenkins_home下的配置文件等信息。
#本文的挂载目录是home下
mkdir /home/jenkins
重点:此目录需要设置权限,否则启动容器报错权限错误
#修改权限(1000:1000 是UID和GID)
chown -R 1000:1000 /home/jenkins/
启动容器
#运用镜像启动容器命令
docker run -d -p 8000:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --name jenkins --privileged=true -u root jenkins
-p : 映射端口,宿主机端口:容器端口
-v : 挂载,宿主机目录:容器目录
--name : 自定义容器名
-u : 权限用户名
--privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。
未设置privileged参数
设置privileged参数
-p 50000:50000 : 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。
修改default.json、hudson.model.UpdateCenter.xml配置文件
启动容器后,进入刚才设置的挂载目录 /home/jenkins 内,可以看到已经有映射的配置文件了。
首先修改hudson.model.UpdateCenter.xml配置文件
#重启jenkins容器
docker restart jenkins
默认路径
http://updates.jenkins-ci.org/update-center.json
改成路径
http://mirror.xmission.com/jenkins/updates/update-center.json
完成后修改 /updates/default.json 配置文件
默认路径
"connectionCheckUrl":"http://www.google.com/"
改为路径
"connectionCheckUrl":"http://www.baidu.com/"
重启jenkins容器
#重启jenkins容器
docker restart jenkins