问题: docker 部署的 jenkins 在迁移时如果只迁移 jenkins_home 目录到新服务器上,在新服务器上部署 jenkins 后在使用中会遇到任务无法正常构建、系统奔溃报错。解决办法就是将镜像也一并迁移。
镜像迁移
- 旧服务器导出镜像
bash
# 根据容器创建新镜像
docker commit jenkins my/jenkins:1.0.0
# 导出镜像
docker save -o my-jenkins.tar my/jenkins:1.0.0
- 新服务器导入镜像
bash
# 新环境中导入镜像
docker load -i my-jenkins.tar
# 新环境中 jenkins_home 目录添加权限
sudo chown -R 1000:1000 /u01/jenkins_home
- docker-compose.yml
yml
version: '3'
services:
jenkins:
image: my/jenkins:1.0.0
container_name: jenkins
restart: always
network_mode: "host"
privileged: true
volumes:
- /etc/localtime:/etc/localtime
- /u01/jenkins_home:/var/jenkins_home
environment:
JAVA_OPTS: "-Duser.timezone=Asia/Shanghai"
JENKINS_OPTS: "--prefix=/jenkins --httpPort=8000"
JENKINS_ARGS: "--prefix=/jenkins"
- 部署 jenkins
bash
docker-compose up -d jenkins
用私有镜像仓库更方便,该方法针对没有镜像仓库的同学。
网易云镜像仓库:https://c.163.com/hub#/m/home/