docker容器的迁移

0.背景

需要把云服务器上用docker搭建的大数据集群迁移到本地的主机上。大数据集群有一个master主节点和slave01、slave02两个计算节点。

  • 云上服务器和本地的主机的数量都只有一台,是采用docker虚拟化的方式搭建大数据集群。
  • 要求迁移后数据不会丢失。

1.用export&import 还是 save & load ?

export&import 和 save & load 是docker中的两组命令,我们先主要看看他们的区别:

类型作用作用对象能否保留存储层数据导出的内容主要的应用场景
export & import用来将container的文件系统进行打包的container不可以一个Linux系统的文件目录制作基础镜像
save & load用来将一个或者多个image打包image(container实际上也可以,但其实际上作用的是container下的image)可以一个分层的文件系统(相对于前者比较大,因为多层文件系统中可能有东西是重合的)打包多个镜像

具体的区别可以查看这篇博客docker save与docker export的区别,写得很清晰。
基于以上对比,save&load 方式可以保留数据,所以使用save&load这种方式。

2.定制镜像

由于save&load实际操作的是image,所以导出之前,要先使用commit命令把容器中相对于其底层镜像的修改,提交为一层文件系统,与原有的image结合构成一个新的image。新的image中会包含所有修改的内容。
ps:这种制作镜像的方式不被提倡,因为这样做会保留一些元数据信息,导致image过大,如果想用于制作一个简洁的镜像,需使用DockerFile的方式定制镜像,这里不做详述)
这样以一个容器salve02为例,将它提交到一个叫做theslave02的镜像上,再打上标签
这里写图片描述
提交完成后我们可以看到这么一个image:
这里写图片描述

3.导出镜像

把镜像导出为一个输出文件:
这里写图片描述
查看导出的文件:
这里写图片描述

4.传输文件

将导出的输出文件通过scp的方式发送到本地的主机上:
这里写图片描述

5.导入镜像

在本地主机上,将受到的文件导入为镜像文件:

这里写图片描述
查看镜像文件:
这里写图片描述

6.使用镜像运行容器

使用刚刚导入的镜像,运行为一个容器:
这里写图片描述

查看容器运行状况:
这里写图片描述
进入容器:
这里写图片描述

  • 7
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值