环境:华为云服务器、ubuntu22.04
一、场景:云主机规格较小,运行jenkins项目占用内存较大,考虑将其转移到规格更大的云主机中。
二、备份步骤:
1.查询容器id/名称并复制
root@ubt:/# docker ps -a |grep jenkins
d12705e423be jenkins/jenkins:latest "/usr/bin/tini -- /u…" 3 weeks ago Exited (143) 18 hours ago jenkins
2.打包容器为镜像文件
root@ubt:/newdir2# docker commit d12705e423be jenkins_backup:2024_0428
3.查看镜像文件并保存为tar文件
docker save -o jenkins_backup.tar jenkins_backup:2024_0428
root@ubt:/newdir2# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins_backup 2024_0428 db6d92e47a5d 18 hours ago 1.82GB
root@ubt:/newdir2# docker save -o jenkins_backup.tar jenkins_backup:2024_0428
4.使用scp命令传输文件至另一台服务器
scp jenkins_backup.tar root@目的端ip地址:/www/server/
后面是用户名@ip:文件目录
root@ubt:/newdir2# scp jenkins_backup.tar root@目的端ip地址:/www/server/
三、导入:
1.我的jenkins是有挂载目录的,所以需要把挂载目录也拷贝过来。
root@ubt:/newdir2# scp jenkins_node.zip root@目的端ip地址:/www/server/
2.使用docker load命令加载备份的镜像
root@hcss-ecs-ed4e:/www/server# docker load -i jenkins_backup.tar
Loaded image: jenkins_backup:2024_0428
3.查看镜像是否导入成功,并尝试启动容器
root@hcss-ecs-ed4e:/www/server# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins_backup 2024_0428 db6d92e47a5d 18 hours ago 1.82GB
root@hcss-ecs-ed4e:/www/server# docker run -u root -d -p 8086:8080 --name jenkins -v /newdir2/jenkins_node:/var/jenkins_home jenkins_backup:2024_0428
d6a2438720b1a3287246d12240c7335899ea96aa24c1d12942d22ca370e63427
4.查看容器状态,并尝试访问
root@hcss-ecs-ed4e:/www/server# docker ps |grep jenkins
d6a2438720b1 jenkins_backup:2024_0428 "/usr/bin/tini -- /u…" 10 seconds ago Up 9 seconds 50000/tcp, 0.0.0.0:8086->8080/tcp, :::8086->8080/tcp jenkins
至此,jenkins成功部署在规格更大的服务器中。