docker容器备份恢复

1.备份

1.1查看要备份的容器id:

docker ps

1.2 将容器提交为镜像: 

docker commit <docker_id> <backup_name>:<tag>

这里可以设置参数 :

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

1.3 查看备份的镜像

dock images查看镜像制作成功

1.4 将镜像保存为tar文件

docker save -o /home/jenkins_backup/jenkins_backup.tar <image_id>

-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 <tarfile> (或者 cat jenkins_backup.tar | docker load)

2.3查看镜像有新的镜像文件生成,但是没有tag,给镜像打tag

docker tag <image_id> <repository>:<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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容