docker容器迁移(以jenkins为例)
目标:将服务器A中docker中的jenkins迁移到服务器B中docker
服务器A jenkins部署命令为:
docker run -d \ --name jenkins \ -p 9028:8080 \ -p 50000:50000 \ -v /usr/jenkins_data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ --restart unless-stopped \ jenkins/jenkins:lts
服务器A的操作
# 停止 Jenkins 容器 docker stop jenkins # 提交容器为镜像 docker commit jenkins jenkins_backup # 保存镜像为文件 docker save -o jenkins_backup.tar jenkins_backup # 导出数据卷 # 查看数据卷信息 docker inspect jenkins | grep -A 10 '"Mounts"' # 备份数据卷内容(数据卷挂载在 /usr/jenkins_data)(注意命令最后的空格和点) tar czf jenkins_data_backup.tar.gz -C /usr/jenkins_data . # 传输文件到服务器B scp jenkins_backup.tar user@new-server:/tmp/ scp jenkins_data_backup.tar.gz user@new-server:/tmp/
服务器B的操作
# 加载镜像 docker load -i /tmp/jenkins_backup.tar # 创建数据目录 mkdir -p /usr/jenkins_data # 恢复数据 tar xzf /tmp/jenkins_data_backup.tar.gz -C /usr/jenkins_data # 设置权限 chown -R 1000:1000 /usr/jenkins_data # 运行 Jenkins 容器 docker run -d \ --name jenkins \ -p 9028:8080 \ -p 50000:50000 \ -v /usr/jenkins_data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ --restart unless-stopped \ jenkins_backup

浙公网安备 33010602011771号