![](/img/trans.png)
[英]How to deploy container to subset of worker nodes in a docker swarm using affinity?
[英]How to run same container on all Docker Swarm nodes
我刚开始接触Docker Swarm,因为我们正在寻找配置我们的计算集群以使其更加容器化的方法。 基本上,我们有一个由16台计算机组成的小型服务器场,我希望能够使每个节点下拉相同的映像,运行相同的容器并接受在主节点上运行的OpenMPI程序中的作业。
真正的OpenMPI并没有什么特别的,只是容器必须能够打开SSH端口而主机必须能够登录到它们。 我已经使用单个Docker容器进行了工作,并且它可以工作。
现在,我正在学习Docker Machine和Docker Swarm,作为管理16个节点的一种方式。 据我所知,一旦设置了群集,就可以将其设置为DOCKER_HOST(或使用-H)来发送“ docker run”,群集管理器将决定哪个节点运行所请求的容器。 我基本上使用一个简单的节点列表来工作,而不是与发现服务搞混,到目前为止,一切都很好。
但是我实际上想在一个命令中的所有节点上运行相同的容器。 这可能吗?
Docker 1.12引入了全局服务,并传递了--mode global
以运行命令Docker将调度服务到所有节点。
使用Docker Swarm,您可以使用标签和负相似性过滤器来获得相同的结果:
openmpi:
environment:
- "affinity:container!=*openmpi*"
labels:
- "com.myself.name=openmpi"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.