在几台计算机上的Docker
对于我在计算机上部署的使用Docker的云架构的研究。 (Nginx负载均衡一些Apache服务器运行一个简单的Php应用程序。
我想知道是否可以使用几台电脑来部署我的容器,以增加可用的功率。
(我正在使用Yosemite的MacBook Pro,我已经安装了boot2docker和Virtual box)
披露:我是Swarm Legacy和Swarm模式的维护者
编辑 :这个答案提到了Docker Swarm ,这是Docker Swarm的第一个版本。 从那以后,一个名为Swarm模式的新版本直接被包含在Docker引擎中,即使大的想法依然存在,在拓扑和特性方面也会有所不同。
是的,您可以在多台计算机上部署Docker,并将其作为单个资源池完全pipe理。 有几种解决scheme可用于使用docker在多台机器上协调您的容器。
您可以使用Docker Swarm , Kubernetes , Mesos / Marathon或Fleet 。 (可能还有其他的,因为这是一个快速发展的地区)。 还有像Amazon ECS这样的商业解决scheme。
在Swarm的情况下,它使用Docker远程API与远处的docker守护进程进行通信,并根据负载或一些额外的约束(其他系统类似于或多或less的function)来调度容器。 这是一个小型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 | | | | | | | +-----------------+ +-----------------+ +-----------------+
select其中的一个系统基本上是一个select:
- 群集部署简单和维护
- 调度程序的灵活性
- API的完整性
- 支持运行虚拟机
- 容器组更高的抽象:Pods
- networking模式(网桥/主机或覆盖或平面networking)
- 与Docker远程API兼容
这主要取决于用例和正在运行的工作负载。 有关这些系统之间差异的更多细节,请参阅此答案 。
这听起来像集群,这是docker swarm
做的(见其github回购 )。
它将Docker主机池变成一个虚拟主机。
例如,请参阅问题247:如何pipe理复制控制和负载平衡?