docker容器在不同机器上如何实现数据迁移?

docker容器在不同机器上如何实现数据迁移显示全部

docker容器在不同机器上如何实现数据迁移

收起
参与8

返回Garyy的回答

GaryyGaryy系统工程师某保险

迁移容器和镜像
export与import命令使用:

export导出容器会丢失历史记录和元数据,类似与快照

先创建测试容器:
$ sudo docker exec web touch /opt/test.txt
$ sudo docker exec web ls /opt
test.txt
执行导出:
$ sudo docker export web > web.tar
执行导入:
$ cat web.tar | sudo docker import - web:v2
$ sudo docker images
wKiom1aHmtuhyu9UAAAHiNrmLo0553.png$ sudo docker run -itd --name web_v2 web:v2 /bin/bash

启动这个镜像要加/bin/bash,否则报错Error response from daemon: No command specified

$ sudo docker exec web_v2 ls /opt
test.txt
总结:通过export命令也可以将容器里的数据保存,并可以迁移到别的docker主机
save与load命令使用:

一般用于迁移镜像到别处

导出:
$ sudo docker save web > web.tar
导入:
$ sudo docker load < ubuntu.tar
注:不会丢弃历史记录和元数据,并可以回滚版本。启动不用加/bin/bash

保险 · 2018-02-06
  • 需要迁移的数据是什么?<div>我猜你问的不是容器镜像,应该是运行时容器状态及相关目录下的数据</div><div>1.可以把运行时容器打包成镜像然后推送到registry再在其他机器上拉去部署,但并不推荐</div><div>2.容器内部需要迁移数据的目录直接mount为分布式存储,可以参考docker volume plugin</div>
    2018-02-28

回答者

Garyy
Garyy0410
系统工程师某保险
擅长领域: 云计算存储容器

Garyy 最近回答过的问题

回答状态

  • 发布时间:2018-02-06
  • 关注会员:2 人
  • 回答浏览:2406
  • X社区推广