具有强制拓扑的多站点docker swarm

我正在构build一个基于Docker swarm概念的应用程序堆栈,它旨在演进当前部署到许多物理站点并由分布式CDN支持的产品。 我设置的泊坞窗撰写系统包括许多不同的图像types,我需要确保将其部署到每个物理位置(每个服务A的三个副本,每个服务B的两个副本,例如每个站点,每个站点是属于docker群的几个并置的物理机器),然后是仅部署到中心起点位置的其他机器。 我想find一种方法来部署这个图像types最终在群体上的约束。 这可能吗?

简短的回答,是的。

长的答案:使用docker组成来pipe理你的集群,这将减轻pipe理。 在创build你的swarm之后,你可以通过以下方式使docker-compose使用该swarm:

docker-compose -H <docker-swarm-ip:port> up -d 

如果你想要一个容器/服务在主机上运行。

将docker-compose.yml中的以下条目添加到要在该主机上运行的服务中:

 environment: - "constraint:node==<host>" 

这是我现在这样做的方式。

我相信当你使用run命令时,这也是可用的。 坚韧我从来没有尝试过。