>我有一个由一个经理和 3 个工作线程组成的群。 当其中一个工作线程重新启动时,群管理器会将容器从失败的工作线程重新创建到其他正常运行的工作线程中。我知道这就是 swarm 的设置方式,但我想禁用此功能,以便管理器不会从重新启动的工作线程重新创建容器,而是等待工作线程再次返回并将容器保留在那里。
如果您事先知道希望服务在何处运行,并且只希望它在那里运行,则可以使用服务约束。例如,如果直接从命令行进行部署:
docker service create --name myservice --constraint 'node.hostname == node3' myimage:latest
或在撰写文件中:
version: '3'
services:
myservice:
image: myimage:latest
deploy:
placement:
constraints:
- node.hostname == node3