Docker on several computers
为进行研究,我在计算机上使用Docker部署了云架构。 (Nginx用于对一些Apache服务器进行负载平衡以运行简单的Php应用程序。
我想知道是否可以使用多台计算机来部署我的容器以增加可用功率。
(我正在将MacBook Pro与Yosemite一起使用。我已经将Boot2docker与Virtual box一起安装了)
披露:我是Swarm Legacy和Swarm模式的维护者
Edit: This answer mentions Docker Swarm Legacy, the first version of Docker Swarm. Since then a new version called Swarm mode was directly included in the docker engine and behaves a bit differently in terms of topology and features even though the big ideas remain.
是的,您可以将Docker部署在多台机器上,并将它们作为一个资源池进行整体管理。您可以使用多种解决方案来使用docker在多台机器上协调容器。
您可以使用Docker Swarm,Kubernetes,Mesos / Marathon或Fleet。 (可能还有其他人,因为这是一个快速移动的区域)。还有一些商业解决方案,例如Amazon ECS。
在Swarm的情况下,它使用Docker远程API与远程Docker守护程序进行通信,并根据负载或一些额外的约束来调度容器(其他系统具有或多或少的功能类似)。这是一个小型Swarm部署的示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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的完整性
- 支持正在运行的虚拟机
- 容器组的更高抽象:容器
- 网络模型(网桥/主机或覆盖或平面网络)
- 与Docker远程API的兼容性
这主要取决于用例和所运行的工作量。有关这些系统之间差异的更多详细信息,请参见以下答案。
这听起来像集群,这是
It turns a pool of Docker hosts into a single, virtual host.
例如,查看问题247:如何处理复制控制和负载平衡?