在主机之间移动 docker-compose containersets
Moving docker-compose containersets around between hosts
我想将我的应用程序堆栈(由 3 个 docker 图像组成并由 docker-compose 管理)完整地从我的开发机器上移动到生产机器上。我知道有几种方法可以直接 docker:
- 将映像推送到注册表并将它们从生产中拉回
- docker 从开发中保存,然后 docker 在生产中加载
- 在生产环境中重建镜像(宁愿降低生产环境的依赖性,所以不是一个好的选择。)
我目前倾向于 docker 保存然后 docker 加载,但我想知道是否有办法对 docker- 的整个容器集执行此操作撰写管理?
提前致谢
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
远程注册表选项可能是一种更 "production grade" 的方法。移动一堆图像可能会很慢,但是 YMMV。
我想将我的应用程序堆栈(由 3 个 docker 图像组成并由 docker-compose 管理)完整地从我的开发机器上移动到生产机器上。我知道有几种方法可以直接 docker:
- 将映像推送到注册表并将它们从生产中拉回
- docker 从开发中保存,然后 docker 在生产中加载
- 在生产环境中重建镜像(宁愿降低生产环境的依赖性,所以不是一个好的选择。)
我目前倾向于 docker 保存然后 docker 加载,但我想知道是否有办法对 docker- 的整个容器集执行此操作撰写管理?
提前致谢
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
远程注册表选项可能是一种更 "production grade" 的方法。移动一堆图像可能会很慢,但是 YMMV。