在主机之间移动docker-compose containerets

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

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

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

提前致谢

最佳答案
Compose中没有保存Compose文件中内置图像的功能,这是docker客户端的工作(正如你所说的docker save和docker 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.

转载注明原文:在主机之间移动docker-compose containerets - 代码日志