gpt4 book ai didi

docker - 在撰写/合并模式下使用Docker

转载 作者:行者123 更新时间:2023-12-02 18:16:03 26 4
gpt4 key购买 nike

我是Docker的新手,我需要一些有关分发应用程序的帮助。

考虑一下:

  • 我有一个物理机池,每个物理机都运行最新版本的docker。
  • 我的“应用程序A”有几个容器。为了清楚地定义,应用程序将是在一个容器,4个消息传递容器和一个主容器中运行的数据库。所有6个容器都需要相互通信。数据库,消息传递等容器将是“服务”。
  • 我也可以拥有“应用程序B”,“应用程序C”和“应用程序N ...”,它们的大小和配置与“应用程序A”略有不同。应用程序之间不会相互通信,并且是完全独立的。

  • 要求:
  • 所有应用程序“A,B,C..N”必须使用相同的物理机池。
  • 如果需要,每个应用程序的每个服务必须在不同的物理计算机上运行。
  • 您可能希望限制如何将每个服务分配给每个物理机
  • 我需要“即时”创建应用程序

  • 我的第一个想法是使用docker-compose定义一个应用程序,并使用几个dockerfiles定义其中的服务。但是,如果我这样做,则每个应用程序都将在相同的docker引擎中运行,因此也将在同一台物理计算机上运行。

    我读过您可以将docker compos部署到docker swarm中。在这种情况下,docker swarm将充当docker引擎。但是,我找不到任何有关如何执行此操作的示例,并且不确定该限制。

    我的第二个想法是使用群体模式。我会创建一个集群,并在其上运行服务。但是,我将失去“应用程序”的概念。会有大量的服务投入其中,我无法管理它们彼此之间的通信方式。

    因此,鉴于此问题:
  • 我有任何错误的假设或陈述吗?
  • 在此方案中推荐使用的docker工具是什么?
  • 最佳答案

    可以将Docker Compose与Docker Swarm Mode(Docker 1.12)一起使用,但目前尚不完全兼容。看看Docker Stacks and Bundles

    在下一版本的Docker(1.13)中,还将发布新版本的Docker Compose v3,它将与不带Docker Compose的Docker兼容。这样就可以像这样部署Docker Compose文件:
    docker部署--compose-file docker-compose.yml AppA

    目前这是实验性的,但在Docker 1-13-rc5上可以很好地工作。 (Docker Releases)

    article中可以找到对此的更详细说明。

    为了使它们都在不同的主机上运行,​​可以在docker服务创建(或Docker Compose v3)中定义约束来实现(请参阅Docker Service Create - Constraints)。但是,为什么需要让它们在不同的主机上运行?

    可以通过--limit-cpu和--limit-memory限制每个服务可以使用的CPU和内存使用量。

    如果要使用Docker Swarm模式,可以在本地主机上使用Docker Machine创建一个群集。 (注意不要使用旧的Docker Swarm)

    关于docker - 在撰写/合并模式下使用Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41472219/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com