Docker Swarm - 在每台机器上调度容器

Docker Swarm - Schedule container on each machine

我目前正在尝试使用 Docker Swarm/Compose 在每台集群计算机上分别生成 Redis 的容器实例。我目前正在使用 4 台机器作为示例。使用关联标签,其想法是确保两个 redis 实例不会被调度到同一台机器上。

起初,以下方法有效。

redis:
  image: redis
  environment:
    AFFINITY: com.myself.name!=redis
  labels:
    - "com.myself.name=redis"

然而,在强制一些容器停止以模拟崩溃、将它们推回、关闭所有容器,然后最后 运行 使用 docker-compose scale redis=4 重新开始一切之后,我发现 redis 运行 同一台机器上的两个容器,即使集群中有 4 个可用。

我到底做错了什么?谢谢

试试这个docker 撰写文件

redis:
  image: redis
  environment:
    - affinity:com.myself.name!=redis
  labels:
    - "com.myself.name=redis"

你应该试试这个:

redis:
  image: redis
  environment:
    - "affinity:container!=*redis*"
  labels:
    - "com.myself.name=redis"

这应该行得通!

请告诉我