docker - 在主机之间移动 docker-compose 容器集

标签 docker docker-compose

我想将我的应用程序堆栈(由 3 个 docker 镜像组成并由 docker-compose 管理)从我的开发机器上整体移动到生产机器上。我知道一些直接使用 docker 的方法:

  • 将图像推送到注册表并将它们从生产环境中拉出
  • docker 从开发中保存,然后在生产中使用 docker 加载
  • 在生产环境中重建镜像(宁愿降低对生产环境的依赖,所以不是一个好的选择。)

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

提前致谢

最佳答案

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。

关于docker - 在主机之间移动 docker-compose 容器集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35024216/

相关文章:

mongodb - 如何将 Eclipse 同上连接到 mongodb 云

docker - 在docker容器中进行CPU限制后如何运行Go程序?

docker - 我可以在一个命令中使用 docker-compose 运行多个服务吗?

docker - dotnet core 2.2应用程序DockerFile COPY失败/over2/

ruby-on-rails - 在生产部署中将容器链接在一起

docker - 如何从远程 selenium 网格上的 docker 运行 testcafe

docker - 带有 Expo dockerized 应用程序的 Metro bundler 无法正常工作

Docker 从主机卷组成相对文件夹

php - 无法从 php 访问 localstack s3

node.js - 通过 WebStorm 运行/调试配置在 docker node.js 应用程序上设置私有(private) npm 注册表