代码之家  ›  专栏  ›  技术社区  ›  Saurabhcdt

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

  •  0
  • Saurabhcdt  · 技术社区  · 6 年前

    我们有许多应用程序,我们根据它们的相互依赖性将它们分为两类。我们已经为所有这些应用程序配置了以swarm模式运行的docker。 由于大约有29个应用程序正在运行,因此为任何应用程序更新堆栈文件都变得非常重要&许多时候,人们正在重写其他更改。

    我们希望保留两个堆栈文件,它们应该以swarm模式在同一服务器上运行。 所以第一个问题是-有可能吗? 我是的,那么有人能帮忙如何配置吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Teemu Risikko    6 年前

    你在用 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 是的。

        2
  •  0
  •   Saurabhcdt    6 年前

    我有答案,但忘了寄出。 一个可以有尽可能多的堆栈文件,例如group1-stack.yml、group2-stack.yml,… (文件可以有任何名称) 只有在对堆栈执行某些操作时引用文件时,才会使用这些文件。

    docker stack deploy -c <fileName> <stackname>
    

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