我想把我的应用程序堆栈,包括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.