1.备份
1.1查看要备份的容器id:
docker ps
1.2 将容器提交为镜像:
docker commit
这里可以设置参数 :
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
1.3 查看备份的镜像
dock images查看镜像制作成功
1.4 将镜像保存为tar文件
docker save -o /home/jenkins_backup/jenkins_backup.tar
-o :输出到的文件。
1.5 备份容器数据
docker run --rm --volumes-from myjenkins -v /home/jenkins_home/:/home/jenkins_home/ jenkins tar zcvf /home/jenkins_home/data.tar.gz /var/jenkins_home
-rm 待补充
--volumes-from myjenkins 原docker的容器名称
-v :/home/jenkins_home/:/home/jenkins_home/ 挂在再本地和docker共享的volume
jenkins docker镜像名称
tar zcvf /home/jenkins_home/data.tar.gz /var/jenkins_home 打包tar.gz的命令,其中 /var/jenkins_home就是docker里的jenkins的工作目录
2.恢复
2.1 将镜像的备份文件tar,容器的数据备份tar.gz文件拷贝到另一个pc上
这里将tar文件拷贝到了/root/test/下,
将data.tar.gz 拷贝到/home/jenkins_home/下
chown -R 1000:1000 /home/jenkins_home
2.2 进入到tar文件目录下,执行加载tar生成镜像文件:
cd /root/test
docker load -i
2.3查看镜像有新的镜像文件生成,但是没有tag,给镜像打tag
docker tag
2.4 恢复数据
docker run --rm -v /home/jenkins_home/:/home/jenkins_home/ -v /home/jenkins_home:/var/jenkins_home jenkins tar xzvf /home/jenkins_home/data.tar.gz
--rm :待补充
-v /home/jenkins_home/:/home/jenkins_home/ :本地和docker容器共享的卷
-v(第二个):本地的卷和docker容器虚拟的卷映射关系
jenkins 恢复的数据之前的镜像名称
tar xzvf /home/jenkins_home/data.tar.gz :要解压tar.gz的命令
2.5 启动容器
docker run -d -p 8800:8080 -p 50000:50000 -v /home/jenkins_home:/var/jenkins_home --name jenkins2 jenkins_backup:jenkins_backup
-d: 后台运行
-p:端口映射关系(宿主机端口:docker容器端口)
-v :卷映射关系(宿主机卷:docker虚拟卷)
--name:容器名称
jenkins_backup:jenkins_backup:镜像的名称:镜像的TAG