Docker Swarm - 在每台机器上安排容器

时间:2015-12-01 17:38:53

标签: docker docker-compose docker-machine docker-swarm

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

我究竟做错了什么?感谢。

2 个答案:

答案 0 :(得分:4)

你应该试试这个:

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

这应该有效!

请让我知道

答案 1 :(得分:0)

试试这个docker撰写文件

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