Docker Swarm集群可以创建为:
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm --swarm-master \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-master
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-node-01
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-node-02
这些机器在创建过程中加入Swarm集群。如果将新的Docker Machine创建为:
docker-machine create -d virtualbox --virtualbox-disk-size "5000" swarm-node-03
以后如何配置此计算机作为同一Swarm集群的一部分?
答案 0 :(得分:2)
今天无法直接通过Machine进行配置,但您可以在创建的实例上手动运行Swarm容器。运行docker ps --no-trunc
并查看已加入的Swarm容器应该会显示启动所需的命令。
最棘手的一点可能是确保正确配置TLS。我的建议是使用docker-machine scp
将您需要的证书从一个已经运行的Swarm主机同步到另一个主机。
将来,我希望我们可以将Machine中的“编组Swarm”中的位分成一些较小的部分,以便这种用例更容易。
更新:看起来比我意识到的要容易一些。无需手动复制证书。在你的情况下,我认为像下面的命令应该将机器加入现有的Swarm:
$ docker \
$(docker-machine config swarm-node-03) \
run -d swarm \
join --advertise $(docker-machine ip swarm-node-03) --discovery="consul://$(docker-machine ip consul-machine):8500"
它现在应该在Swarm master docker info
中可见。
答案 1 :(得分:0)
试试这个:
docker \
$(docker-machine config swarm-node-03) \
run -d swarm join --addr $(docker-machine ip swarm-node-03):2376 \
consul://$(docker-machine ip consul-machine):8500