如何在所有 Docker 个 Swarm 节点上 运行 同一个容器
How to run same container on all Docker Swarm nodes
我刚刚接触 Docker Swarm,因为我们正在寻找配置我们的计算集群以使其更加容器化的方法。
基本上我们有一个由 16 台计算机组成的小型农场,我希望能够让每个节点都下载相同的图像,运行 相同的容器,并接受来自 OpenMPI 程序的作业 运行ning一个主节点。
没有什么是 OpenMPI 特有的,只是容器必须能够打开 SSH 端口并且主服务器必须能够登录到它们。我已经使用单个 Docker 容器进行了此操作,并且可以正常工作。
现在我正在学习 Docker Machine 和 Docker Swarm 作为管理 16 个节点的方法。据我所知,一旦我设置了一个 swarm,我就可以将它设置为 DOCKER_HOST(或使用 -H)来发送 "docker run",然后 swarm 管理器将决定哪个节点 运行s 请求的容器。我基本上是使用一个简单的节点列表而不是搞乱发现服务来工作的,到目前为止一切顺利。
但我实际上想 运行 相同 容器在一个命令中的所有节点上。这可能吗?
Docker 1.12 引入了全局服务并通过 --mode global
到 运行 命令 Docker 将调度服务到所有节点。
使用 Docker Swarm,您可以使用标签和负亲和力过滤器来获得相同的结果:
openmpi:
environment:
- "affinity:container!=*openmpi*"
labels:
- "com.myself.name=openmpi"
我刚刚接触 Docker Swarm,因为我们正在寻找配置我们的计算集群以使其更加容器化的方法。 基本上我们有一个由 16 台计算机组成的小型农场,我希望能够让每个节点都下载相同的图像,运行 相同的容器,并接受来自 OpenMPI 程序的作业 运行ning一个主节点。
没有什么是 OpenMPI 特有的,只是容器必须能够打开 SSH 端口并且主服务器必须能够登录到它们。我已经使用单个 Docker 容器进行了此操作,并且可以正常工作。
现在我正在学习 Docker Machine 和 Docker Swarm 作为管理 16 个节点的方法。据我所知,一旦我设置了一个 swarm,我就可以将它设置为 DOCKER_HOST(或使用 -H)来发送 "docker run",然后 swarm 管理器将决定哪个节点 运行s 请求的容器。我基本上是使用一个简单的节点列表而不是搞乱发现服务来工作的,到目前为止一切顺利。
但我实际上想 运行 相同 容器在一个命令中的所有节点上。这可能吗?
Docker 1.12 引入了全局服务并通过 --mode global
到 运行 命令 Docker 将调度服务到所有节点。
使用 Docker Swarm,您可以使用标签和负亲和力过滤器来获得相同的结果:
openmpi:
environment:
- "affinity:container!=*openmpi*"
labels:
- "com.myself.name=openmpi"