Docker Swarm Agents如何将他们的IP告诉Swarm Manager?

时间:2015-10-12 09:36:47

标签: docker docker-swarm

我想了解Docker Swarm Manager和Docker Swarm Agent之间的通信机制:

  • Swarm Manager生成令牌。
  • 生成Swarm代理,并将此令牌传递给它们。 (和他们自己的IP)

既然管理人员需要向代理商发出指示,那么它是如何通知代理商存在于这些IP的?

Hypotesis:

代理商是否使用其令牌在某个docker.com服务器上注册自己,并且管理中心使用相同的令牌从其获取地址?

谢谢

1 个答案:

答案 0 :(得分:2)

选项在此处的doc中描述:   https://docs.docker.com/swarm/discovery/

在此示例中,我使用托管发现与Docker Hub 。还有其他选项,例如 静态文件 consul etcd 等。

  1. 您创建了泊坞群集:

    docker run -rm swarm create

    这会为您提供一个令牌,用作您的群集ID:e4802398adc58493...longtoken

  2. 您在群集中注册一个/多个泊坞主机

    docker run -d swarm join --addr=172.17.42.10:2375 token://e4802398adc58493...longtoken

    提供的IP地址是docker主机节点的地址。

    未来管理员将如何了解代理/节点

  3. 您将swarm管理器部署到任何docker主机(让我们说 172.17.42.10:2375 ,就像我用来创建swarm并注册我的第一个码头工人主持人)

    docker run -d -p 9999:2375 swarm manager token://e4802398adc58493...longtoken

  4. 要使用群集,请将DOCKER_HOST设置为群集管理器的IP地址和端口

    export DOCKER_HOST="tcp://172.17.42.10:2375"

  5. 使用docker info之类的内容现在应返回有关群集中节点的信息。