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

标签 docker docker-swarm

我刚刚开始接触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"

关于docker - 如何在所有Docker Swarm节点上运行相同的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39111050/

相关文章:

docker - Docker Compose 配置中 "ipam"键的用途是什么?

docker - Docker作为 “Function”(每个请求创建一个Docker)

服务重启后 Docker 节点关闭

kubernetes - 对于应用程序开发人员来说,在 Kubernetes 中运行应用程序意味着什么?

docker - 如果我运行 `docker-compose up` 是否需要目录中的 Dockerfile 以及 docker-compose.yml 文件?

docker - 如何将数据库的docker容器放在生产中的不同主机上?

docker - 使用Docker和Azure Kubernetes(AKS)托管的Angular Application的SSL证书配置

reactjs - docker 上没有 package.json

python - 具有 apscheduler 的 Docker 镜像根本无法运行

python - 使用 Docker for windows 从 Python 脚本创建 docker 镜像时无法获取包含数据的输出文件