创建后将Docker Machine添加到Swarm集群

时间:2016-01-04 23:26:00

标签: docker

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集群的一部分?

2 个答案:

答案 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