我们可以在同一服务器上以群集模式运行带有两个堆栈文件的docker吗?如果是的话如何

时间:2018-07-12 07:11:19

标签: docker docker-swarm

我们有许多应用程序,并且基于它们的相互依赖性将它们分为两个应用程序。我们已经为所有这些应用程序配置了以SWARM模式运行的Docker。 由于大约有29个应用程序正在运行,因此更新任何应用程序的堆栈文件都变得至关重要,而且很多人都在覆盖其他更改。

我们要保留两个堆栈文件,它们应以群集模式在同一服务器上运行。 所以第一个问题是-可能吗? 是的,那么任何人都可以帮助您进行配置吗?

2 个答案:

答案 0 :(得分:1)

您是否使用docker-compose?是的,具有多个具有不同服务的撰写文件是完全可以的。您可以

  • docker-compose stack deploy --compose-file docker-compose.blaablaa.yml [stack]一起单独部署
  • 或者如果它们相互依赖或包含每个堆栈需要的内容的通用撰写文件,则可以执行类似的操作

    docker-compose -f docker-compose.yml -f docker-compose.stack1.yml config > docker-compose.stack.yml docker stack deploy -c docker-compose.stack.yml

另请参阅https://github.com/moby/moby/issues/30127

答案 1 :(得分:0)

我有一个答案,但忘了发布。 一个可以有多达堆栈文件,例如group1-stack.yml,group2-stack.yml,... (文件可以有任何名称) 仅当在堆栈上执行某些操作时引用文件时,才使用这些文件。

docker stack deploy -c <fileName> <stackname>

因此,一个人可以将所有相关的应用程序分组为多达yml个文件,并且一次可以使用一个文件在堆栈上进行部署/ rm等操作。