一尘不染

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

docker

我想将我的应用程序堆栈(由3个docker映像组成)并由docker-
compose管理,将其全部从开发机器移至生产机器。我知道几种直接使用docker的方法:

  • 将图像推送到注册表,然后将其从生产环境中撤回
  • docker从开发中保存,然后在生产中加载docker
  • 在生产中重建映像(宁愿保持对生产的依赖性,所以不是一个好的选择。)

我目前倾向于先保存docker然后再加载docker,但是想知道是否有一种方法可以处理docker-compose管理的整套容器?

提前致谢


阅读 244

收藏
2020-06-17

共1个答案

一尘不染

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。

2020-06-17