我们可以 运行 docker 在集群模式下在同一台服务器上使用两个堆栈文件吗?如果是那么如何

Can we run docker in swarm mode with two stack files on same server? If yes then how

我们有很多应用程序,我们根据它们的相互依赖性将它们分为两类。我们已经为所有这些应用程序配置了 Docker 其中 运行 处于 SWARM 模式。 由于大约有 29 个应用程序 运行ning,更新任何应用程序的堆栈文件变得至关重要,而且很多时候人们会覆盖其他更改。

我们想在集群模式下将两个堆栈文件 运行 保存在同一台服务器上。 所以第一个问题是——这可能吗? 我是的,那么任何人都可以帮忙配置吗?

您在使用 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

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

docker stack deploy -c <fileName> <stackname>

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