在主机之间移动docker-compose containerets

时间:2016-01-26 21:21:37

标签: docker docker-compose

我想使用我的应用程序堆栈,包括3个docker镜像并由docker-compose管理,并将其从我的开发机器整个移动到生产机器上。我知道有几种方法可以直接使用docker:

  • 将图像推送到注册表并将其从生产中拉出来
  • docker从开发中保存,然后在生产中加载docker
  • 在生产时重建图像(宁愿将依赖关系放在生产上,所以不是一个好的选择。)

我目前倾向于使用docker save然后使用docker加载,但是我想知道是否有办法用docker-compose管理的整套容器来做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:7)

Compose中没有保存Compose文件中内置图像的功能,这是docker客户端的工作(正如您在docker savedocker load中所说的那样)。幸运的是,bash是直截了当的:

images=(web cache db)
for image in images
do
    docker save ${image} > ${image}.tar
    scp ${image}.tar $yourhost:
    ssh $yourhost docker load ${image}.tar
done

远程注册表选项可能是更“生产等级”的方法。移动一堆图像可能会非常慢,但是YMMV。