【问题标题】:Docker on several computers多台计算机上的 Docker
【发布时间】:2015-07-12 20:17:03
【问题描述】:

在一项研究中,我使用 Docker 在我的计算机上部署了一个云架构。 (Nginx 用于负载平衡一些 Apache 服务器以运行简单的 Php 应用程序。

我想知道是否可以使用多台计算机来部署我的容器以增加可用功率。

(我正在使用带有 Yosemite 的 MacBook Pro。我已经安装了带有 Virtual box 的 boot2docker)

【问题讨论】:

    标签: docker cloud


    【解决方案1】:

    披露:我是 Swarm Legacy 和 Swarm 模式的维护者

    编辑:这个答案提到了 Docker Swarm Legacy,这是 Docker Swarm 的第一个版本。从那时起,一个名为 Swarm 模式 的新版本直接包含在 docker 引擎中,并且在拓扑和功能方面的行为略有不同,尽管重要的想法仍然存在。

    是的,您可以在多台机器上部署 Docker,并将它们作为单个资源池进行管理。您可以使用多种解决方案来使用 docker 在多台机器上编排容器。

    您可以使用Docker SwarmKubernetesMesos/MarathonFleet。 (可能还有其他人,因为这是一个快速发展的领域)。还有像Amazon ECS这样的商业解决方案。

    在 Swarm 的情况下,它使用 Docker 远程 API 与远程 docker 守护进程通信,并根据负载或一些额外的约束(其他系统或多或少的功能类似)调度容器。这是一个小型 Swarm 部署的示例。

                                    Docker CLI
                                        +   
                                        |     
                                        |        
                                        | 4000 (or else)    
                                        | server
                               +--------v---------+   
                               |                  |          
                  +------------>   Swarm Manager  <------------+     
                  |            |                  |            |    
                  |            +--------^---------+            |  
                  |                     |                      |     
                  |                     |                      |  
                  |                     |                      |     
                  |                     |                      |  
                  | client              | client               | client  
                  | 2376                | 2376                 | 2376   
                  |                     |                      |      
        +---------v-------+    +--------v--------+    +--------v--------+     
        |                 |    |                 |    |                 |    
        |   Swarm Agent   |    |   Swarm Agent   |    |   Swarm Agent   |    
        |     Docker      |    |     Docker      |    |     Docker      |       
        |     Daemon      |    |     Daemon      |    |     Daemon      |  
        |                 |    |                 |    |                 |          
        +-----------------+    +-----------------+    +-----------------+
    

    选择其中一个系统基本上是以下两种选择:

    • 集群部署简单和维护
    • 调度程序的灵活性
    • API 的完整性
    • 支持运行虚拟机
    • 容器组的更高抽象:Pods
    • 网络模型(桥接/主机或覆盖或平面网络)
    • 与 Docker 远程 API 的兼容性

    这主要取决于用例和您正在运行的工作负载类型。有关这些系统之间差异的更多详细信息,请参阅answer

    【讨论】:

    • 很好,比我的回答更详细。你似乎很了解 swarm ;) +1
    【解决方案2】:

    这听起来像集群,这就是 docker swarm 所做的(参见它的 github repo)。

    它将一个 Docker 主机池变成一个单一的虚拟主机。

    例如见issue 247: How replication control and load balancing being taken care of?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-19
      • 2012-12-02
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      相关资源
      最近更新 更多