best article using native hosts for Docker swarm I found仍然让我没有工作群集!
使用的命令如下:
Pre Setup:
service docker stop
docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
docker run -d -p 8500:8500 --name=consul -server -bootstrap
Cluster Setup:
docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise <manager0_ip>:4000 consul://<consul_ip>:8500
Agent Setup:
docker run -d swarm join --advertise=<node_ip>:2375 consul://<consul_ip>:8500
要测试,它说要在管理器节点上运行此命令:
docker -H :4000 run -itd ubuntu
然而,当我这样做时,我得到:
docker: Error response from daemon: No healthy node available in the cluster.
因此,我有一系列问题:
列出了3个不同的IP地址,我在consul容器上创建了一个bash shell并获得了一个。任何人都可以澄清具体如何获得“manager0_ip”和“node_ip”的具体细节吗?
2375到4000之间的端口使用情况令人困惑。如果swarm manage
在4000上做广告,为什么端口2375上的swarm join
?另外,在第二个=
案例中使用advertise
是否正确?它不是第一个。
链接文章中未提及swarm init
。任何人都可以评论那里的语义吗?什么时候需要,什么时候不需要?
答案 0 :(得分:1)
Docker swarm现在集成在docker引擎中,版本为1.12。这个新功能的工作原理详见:
https://docs.docker.com/engine/swarm/
阅读本文将解释新的“ docker swarm ”,“ docker node ”和“ docker service ”命令如何工作。
设置群体从未如此简单。所以扔掉那个链接,升级到版本1.12并再试一次:-)
在管理器节点上运行以下命令:
1::00
这将打印以下示例输出
docker swarm init --advertise-addr $MANAGER_IP
了解它如何提供向群组中添加其他管理员和工作人员的命令?只需在每个附加节点上运行这些命令即可扩展您的群。