4

我目前正在尝试使用 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 个可用。

我到底做错了什么?谢谢。

4

2 回答 2

4

你应该试试这个:

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

这应该工作!

请告诉我

于 2015-12-02T15:42:55.890 回答
0

试试这个 docker compose 文件

redis:
  image: redis
  environment:
    - affinity:com.myself.name!=redis
  labels:
    - "com.myself.name=redis"
于 2015-12-01T22:47:36.347 回答