如何限制特定节点的服务的副本数量?

用例:

我有2个节点,1Gb RAM的机器A和4g RAM的机器B.

我部署了一个使用1 gb ram的Java容器的5个重复服务。

machineA上将有1个Java容器,而B上将有4个Java容器。

如果我关机machineB如何防止machineA启动4 Java?

该机器没有足够的RAM来启动这些容器,而不是提高可用性,它会减less它。

这个function目前还没有。 对此也有一个公开的问题

https://github.com/docker/swarm/issues/1734

你应该做的是添加内存需求的限制。 所以,如果每个容器增加500MB ,那么这将防止这种情况

 docker service create --name nginx --reserve-memory 500Mb --replicas 3 nginx