Docker容器跨服务器迁移之备份恢复流程步骤
Docker  /  管理员 发布于 3年前   1651
迁移容器同时涉及到两个操作,备份和恢复。
我们可以将任何一个Docker容器从一台机器迁移到另一台机器。
在迁移过程中,首先我们将把容器 备份为Docker镜像快照。
然后,该Docker镜像或者是被推送到了Docker注册中心,或者被作为tar包文件保存到了本地。
如果我们将镜像推送 到了Docker注册中心,我们简单地从任何我们想要的机器上使用 docker run 命令来恢复并运行该容器。
但是,如果我们将镜像打包成tar包备份到了本地,我们只需要拷贝或移动该镜像到我们想要的机器上,加载该镜像并运行需要的容器 即可。
今天我们就介绍备份到本地的情况
众所周知docker本地的备份方式有两种:
export
save
区别:
docker export 是当前的状态(容器),
docker save 是针对(镜像)images
主要的区别是:
save是可以回滚以前的配置。
export 只是当前的。
Ps:
导出后再导入(exported-imported)的镜像会丢失所有的历史,
而保存后再加载(saveed-loaded)的镜像没有丢失历史和层 (layer)。
这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),
同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚
(可以执行docker tag <LAYER ID> <IMAGE NAME>来回滚之前的层)。
进入正题
第一种 export:
找出要备份容器的ID
[root@hyperf ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be8cf8bd2a78 goblog "bee run" 2 weeks ago Up 2 weeks 0.0.0.0:8080->8080/tcp goblogbeego
103fd0f26448 hyperf/hyperf:7.4-alpine-v3.11-swoole "/bin/sh" 3 months ago Exited (255) 5 weeks ago 0.0.0.0:9601->9601/tcp hyperf
备份 (export是把容器打成一个tar包)
[root@hyperf ~]$ docker export be8cf8bd2a78 >goblog.tar
[root@hyperf ~]$ du -sh goblog.tar
1187M goblog.tar
恢复
把刚才备份的centos_demo.tar打包到目标服务器(可以用scp,winScp等工具)
[root@hyperf1 ~]$ cat goblog.tar |docker import - goblog:demo
e14802af67f0f289ceb9848e21a95f03dc34eb6f234c8f98f1a6e1ec7fe34a67
查看新生成的镜像
[root@hyperf1 ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
goblog demo e14802af67f0 2 weeks ago 862MB
第二种 save:
得到镜像名称
[root@hyperf ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goblog latest 4b4b017a2545 2 weeks ago 1.16GB
golang latest 0821480a2b48 2 weeks ago 862MB
hyperf/hyperf 7.4-alpine-v3.11-swoole e14802af67f0 3 months ago 108MB
备份镜像
[root@hyperf ~]$ docker save goblog >goblog.tar
恢复镜像
[root@hyperf1 ~]$ docker load <goblog.tar
查看恢复的镜像
[root@hyperf1~]$ docker images
REPOSITORY TAG IMAGE ID CREATED
goblog latest 4b4b017a2545 2 weeks ago 1.16 GB
总结
我们通过 docker images –tree 看到他的历史记录。
Docker的文件系统AUFS,一种“增量文件系统”,用户所做修改以增量的方式保存,所以才能看到这些历史的增量。
备份迁移的方式自己选,推荐用export,毕竟save太大了,对于历史也没啥用处 !
对于数据安全关注更深的话,
可以用docker volumes这样的数据映射。
完
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号