Docker Swarm Agent如何向Swarmpipe理器返回IP?
我想了解Docker Swarm Manager和Docker Swarm Agents之间的通信机制:
- Swarm Manager生成一个令牌。
- 生成Swarm代理,并将此令牌传递给它们。 (和他们自己的IP)
既然pipe理者需要向代理人发出指示,那么他们是如何知道这些代理人是否存在这些IP?
假设:
代理是否使用其令牌在一些docker.com服务器上注册自己,并且Manager使用相同的令牌从它获取地址?
谢谢
选项在文档中描述: https : //docs.docker.com/swarm/discovery/
在这个例子中,我使用托pipe的发现与Docker Hub 。 还有其他的选项,如静态文件 , 领事等etcd等
-
你创build你的docker集群:
docker run -rm swarm create
这会给你一个令牌来作为你的群集ID:
e4802398adc58493...longtoken
-
您在群集中注册一个/多个docker主机
docker run -d swarm join --addr=172.17.42.10:2375 token://e4802398adc58493...longtoken
提供的IP地址是您的docker主机节点的地址。
这就是未来的pipe理者将如何知道代理/节点
-
你可以把swarm manager部署到你的任何一个docker主机(比如说172.17.42.10:2375 ,我用来创buildswarm并注册我的第一个docker主机)
docker run -d -p 9999:2375 swarm manager token://e4802398adc58493...longtoken
-
要使用群集,请将DOCKER_HOST设置为群pipe理器的IP地址和端口
export DOCKER_HOST="tcp://172.17.42.10:2375"
现在使用类似docker info
应该返回集群中节点的信息。