我有一个docker swarm集群,它包含1个master 3个node。当我们通过swarm master部署容器时,例如使用以下命令
docker -H tcp://<master_ip>:5001 run -dt --name swarm-test busybox /bin/sh
Swarm将自动选择一个节点并部署我的容器。有没有办法手动选择一个节点?例如,我想在节点1中部署一个容器。
e5nqia271#
看看Swarm过滤器文档。你可以设置各种约束,来限制Swarm应该为任何给定的容器选择什么节点。对于你的情况,尝试如下操作:
docker run ... -e constraint:node==node1 ...
这将在node1上启动容器。
node1
nfzehxib2#
简单的nginx示例(使用服务器的主机名)
docker service create --publish {serverPort}:80 --constraint "node.hostname == {hostName}" --name {serviceName} nginx:latest
2条答案
按热度按时间e5nqia271#
看看Swarm过滤器文档。你可以设置各种约束,来限制Swarm应该为任何给定的容器选择什么节点。对于你的情况,尝试如下操作:
这将在
node1
上启动容器。nfzehxib2#
简单的nginx示例(使用服务器的主机名)