Jenkins 官网
Docker 安装 Jenkins (超详细)
docker安装jenkins
Docker 安装 Jenkins-2.263.1
1.下载 jenkins docker 镜像
Jenkins Dockerhub
我这里使用基于 centos7 为基础的 Jenkins镜像,因为我的宿主机也是 Centos7,并且在构建过程中需要使用诸多 centos7 下原生命令。
1
| $ docker pull jenkins/jenkins:2.263.1-lts-centos7
|
2.修改 docker systemd 启动脚本
修改 docker systemd 启动脚本,对 /var/run/docker.sock
赋予 0777
权限,供挂载的容器使用宿主机的 docker
1 2 3 4 5 6 7 8
| $ vim /etc/systemd/system/docker.service ... [Service] ExecStartPost=/usr/bin/chmod 0777 /var/run/docker.sock ...
$ systemctl daemon-reload $ systemctl restart docker
|
3.宿主机创建 jenkins_home 数据目录
创建 jenkins 用户,uid
, gid
必须是 1000
因为docker image里面官方的 jenkins用户 uid
, gid
就是 1000
1 2 3 4
| $ groupadd -g 1000 jenkins $ useradd -u 1000 -r -g jenkins -s /sbin/nologin -MN jenkins $ mkdir -p /data/jenkins_home/ $ chown -R jenkins.jenkins /data/jenkins_home/
|
4.创建容器
docker run
1
| $ docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:2.263.1-lts-centos7
|
docker-compose
因为我的 Jenkins 业务构建容器的过程需要 docker build, python3, nodejs 环境,所以需要把宿主机的这些环境挂载到 Jenkins 容器中。
业务构建环境 docker run 的配置较多,所以使用 docker-compose 来编排。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| $ vim /etc/docker/jenkins/docker-compose.yml version: '3' services: jenkins: image: jenkins/jenkins:2.263.1-lts-centos7 container_name: jenkins restart: always working_dir: /var/jenkins_home ports: - 8080:8080 - 50000:50000 environment: - TZ=Asia/Shanghai - PATH=/usr/local/python3/bin:/usr/local/node/bin:$PATH - LANG=en_US.UTF-8 volumes: - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime - /etc/timezone:/etc/timezone - /data/jenkins_data/jenkins_backup_tz:/data/backup/jenkins - /data/jenkins_home:/var/jenkins_home - /data/jenkins_home:/data/jenkins_home - /data/jenkins_data/jenkins_diy_tool:/var/jenkins_home/jenkins_diy_tool - /data/jenkins_data/jenkins_diy_tool:/data/jenkins_home/jenkins_diy_tool - /data/jenkins_data/.npm:/var/jenkins_home/.npm - /data/jenkins_data/.npm:/data/jenkins_home/.npm - /data/jenkins_data/.npmrc:/var/jenkins_home/.npmrc - /data/jenkins_data/.npmrc:/data/jenkins_home/.npmrc - /data/jenkins_data/.pip:/var/jenkins_home/.pip - /data/jenkins_data/.pip:/data/jenkins_home/.pip - /usr/bin/docker:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock - /usr/local/node:/usr/local/node - /usr/local/python3:/usr/local/python3 - /usr/bin/kubectl:/usr/bin/kubectl - /root/tdserver/tcgame_upload_tools:/data/tcgame_upload_tools
|
启动 Jenkins 容器。
1 2
| $ cd /etc/docker/jenkins $ docker-compose up -d
|
5.安装向导安装 Jenkins
如果是首次安装,进入容器获取初始管理员密码,根据安装向导提示一步步安装。
注意:安装过程不要安装推荐的插件,插件后期自行安装。
1 2 3 4
| $ docker exec -it jenkins /bin/bash bash-4.2$ cat /var/jenkins_home/secrets/initialAdminPassword 85770376692448b7b6a8e301fb437848
|
从备份还原
从备份还原,需要先初始化进入Jenkins Dashboard ,安装插件 ThinBackup
然后从 old Jenkins 的 ThinBackup
备份下备份一份全量备份包,导入到 new Jenkins 的备份目录进行还原。

注意:
- 还原备份使用相同的 Jenkins版本
- 凭据用户的密码会失效,需要更新凭据密码。
- 还原后Manager页面有诸多报错,多半是由于插件引起,可以升级全部插件