如何在没有dockerhub的情况下获取可转移的docker compose堆栈

时间:2018-10-17 12:54:14

标签: docker docker-compose dockerfile docker-swarm

我使用docker-compose.yml在堆栈中组成的几个Docker映像很少。

现在我想将整个docker compose堆栈转移到另一台主机上,而不上传到dockerhub, 并将其部署在docker swarm上。

我看到有一个叫做docker compose bundle的东西,对您有帮助吗?

2 个答案:

答案 0 :(得分:2)

如果要在多主机群(或类似Kubernetes或Nomad的东西)上进行部署,则只需要一个Docker注册表即可。不一定非要使用Docker Hub-quay.io,Amazon的ECR,Google的GCR和自托管注册表都可以正常工作-但您确实需要将构建的映像推送到某处协调器可以按名称检索它们。

我自己从未使用过docker-compose bundle,但是its documentation也注意到它的操作“要求与Docker注册表进行交互”。

唯一真正的替代方法是使用docker savedocker load在机器之间手动移动图像,但是作为手动过程,它将很快变得很乏味,并且您需要确保一组相同的图像在每台机器上都保持一致。使用注册表将非常容易。

答案 1 :(得分:0)

最简单的方法是使用Docker注册表。 Docker Hub的问题是您只能拥有一个私有注册表,其余的必须是公共的或付费的。

非常感谢,还有其他(免费)替代方案:

  1. 部署您自己的私有注册表。这是一个不错的tutorial,您可以在浏览器中尝试使用它。

  2. 使用免费的私人注册表。我个人使用Codefresh。它可以从私人仓库(也有免费计划的bitbucket)自动构建您的映像,但是您也可以use it like a "simple" docker registry并在那里推送和拉取Docker映像。