【Docker】之安装部署Jenkins

前言

  记录下 Docker 下 Jenkins 的安装。
  DockerHub: https://hub.docker.com/r/jenkins/jenkins/

查看docker的jenkins镜像版本

#查看jenkins版本命令
docker search jenkins

远程拉取镜像

#拉取镜像命令(不标注表示最新的)
docker pull jenkins/jenkins
docker pull jenkinsci/blueocean (推荐)
docker pull jenkins/jenkins:2.289.1-lts-centos

创建挂载目录

  挂载目录用于映射jenkins的jenkins_home下的配置文件等信息。

#本文的挂载目录是home下
mkdir /home/jenkins

  重点:此目录需要设置权限,否则启动容器报错权限错误

#修改权限(1000:1000 是UID和GID)
chown -R 1000:1000 /home/jenkins/
chmod 777 /var/run/docker.sock

安装 maven

wget https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxvf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3-bin.tar.gz /usr/local
ln -s /usr/local/apache-maven-3.6.3 maven

修改配置文件settings.xml,使用了阿里云的Maven仓库 (可选)
cd apache-maven-3.6.3/conf
vi settings.xml

 <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

添加环境变量 vi /etc/profile

export M2_HOME=/usr/local/maven                                                                                                                                                                                          
export PATH=$PATH:${M2_HOME}/bin

source /etc/profile

启动容器

docker run -d --name=myjenkins \
-p 8000:8080 -p 50000:50000 \
--restart=unless-stopped \
--privileged=true \
-u root \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
-v /home/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:2.289.1-lts-centos

  –network docker-net
  –cpus 2
  –memory 2G \

  • -p : 映射端口,宿主机端口:容器端口
  • -v : 挂载,宿主机目录:容器目录
  • --name : 自定义容器名
  • -u : 权限用户名
  • --privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。
  • -p 50000:50000 : 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。
docker run -d --name=myjenkins \
--net mynet --ip 172.172.0.12 \
-p 8000:8080 -p 50000:50000 \
--restart=unless-stopped \
--privileged=true \
-u root \
-e TZ="Asia/Shanghai" \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
-v /root/docker_data/jenkins:/var/jenkins_home \
-v /usr/java/jdk1.8.0_311-amd64:/usr/local/java \
-v /usr/local/maven:/usr/local/maven \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
 jenkins/jenkins:2.318-jdk11

配置文件

  进入刚才设置的挂载目录 /home/jenkins 内:

  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/"

重启jenkins容器

#重启jenkins容器
docker restart myjenkins

PS

  jenkins,插件下载时好多失败的:
  进入管理页面,点击高级,更改升级站点下的url为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json ,点击提交,再点击立即获取(重要)


参考:
docker 部署jenkins
Docker:docker安装部署jenkins