Docker 本机主机上的 Swarm
Docker Swarm on native hosts
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 上做广告,为什么 swarm join
在端口 2375 上?另外,在第二种 advertise
情况下 =
的使用是否正确?不在第一位。
链接文章中未提及 swarm init
。任何人都可以评论那里的语义吗?什么时候需要什么时候不需要?
Docker swarm 现在集成在 docker 引擎中,版本为 1.12。此处详细介绍了这项新功能的工作原理:
https://docs.docker.com/engine/swarm/
阅读本文将解释新的“docker swarm”、“docker node”和“docker 服务”命令有效。
设置集群从未如此简单。所以扔掉那个 link,升级到 1.12 版,然后再试一次:-)
例子
运行 在管理器节点上执行以下命令:
docker swarm init --advertise-addr $MANAGER_IP
这将打印以下示例输出
Swarm initialized: current node (00ehj7mi2eaiix2uy46hn9ja8) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-4tn8u9ywprdez0u2qfmv1lv0iq0x4r4aiwexgjg6gi7s63dqrw-192xx5jwhrxpy1q08xmb1dwyy \
192.168.1.18:2377
To add a manager to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-4tn8u9ywprdez0u2qfmv1lv0iq0x4r4aiwexgjg6gi7s63dqrw-9ow8agcir34zovprrt512rbz3 \
192.168.1.18:2377
看看它是如何提供命令来向 swarm 添加额外的管理器和工作器的?只需 运行 在每个附加节点上执行这些命令即可扩展您的集群。
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 上做广告,为什么swarm join
在端口 2375 上?另外,在第二种advertise
情况下=
的使用是否正确?不在第一位。链接文章中未提及
swarm init
。任何人都可以评论那里的语义吗?什么时候需要什么时候不需要?
Docker swarm 现在集成在 docker 引擎中,版本为 1.12。此处详细介绍了这项新功能的工作原理:
https://docs.docker.com/engine/swarm/
阅读本文将解释新的“docker swarm”、“docker node”和“docker 服务”命令有效。
设置集群从未如此简单。所以扔掉那个 link,升级到 1.12 版,然后再试一次:-)
例子
运行 在管理器节点上执行以下命令:
docker swarm init --advertise-addr $MANAGER_IP
这将打印以下示例输出
Swarm initialized: current node (00ehj7mi2eaiix2uy46hn9ja8) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-4tn8u9ywprdez0u2qfmv1lv0iq0x4r4aiwexgjg6gi7s63dqrw-192xx5jwhrxpy1q08xmb1dwyy \
192.168.1.18:2377
To add a manager to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-4tn8u9ywprdez0u2qfmv1lv0iq0x4r4aiwexgjg6gi7s63dqrw-9ow8agcir34zovprrt512rbz3 \
192.168.1.18:2377
看看它是如何提供命令来向 swarm 添加额外的管理器和工作器的?只需 运行 在每个附加节点上执行这些命令即可扩展您的集群。