繁体   English   中英

如何在所有Docker Swarm节点上运行相同的容器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM