Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建后将Docker机器添加到Swarm群集_Docker - Fatal编程技术网

创建后将Docker机器添加到Swarm群集

创建后将Docker机器添加到Swarm群集,docker,Docker,Docker Swarm群集可以创建为: docker-machine create \ -d virtualbox --virtualbox-disk-size "5000" \ --swarm --swarm-master \ --swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \ --

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
docker-machine create -d virtualbox --virtualbox-disk-size "5000" swarm-node-03
这些机器在创建过程中加入群集。如果新的Docker机器创建为:

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
docker-machine create -d virtualbox --virtualbox-disk-size "5000" swarm-node-03

以后如何将此计算机配置为同一Swarm群集的一部分?

目前无法直接通过计算机进行配置,但您可以在创建的实例上手动运行Swarm容器。运行
docker ps--no trunc
并查看一个加入的Swarm容器,应该会向您显示需要启动的命令

最棘手的一点可能是确保TLS配置正确。我的建议是使用
docker machine scp
将您需要的证书从一个已经运行的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信息中看到它了

试试这个:

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

您将需要手动启动该计算机内的Swarm容器(代理等)。请参阅,以了解如何手动安装节点并将节点加入Swarm.docker信息,即使在发出命令后仍显示相同的节点集。是否将--cluster advision替换为--advision?不需要指定--cluster store?不需要设置
--cluster store
,我认为这是针对Docker守护进程的
--advertise
(带参数)应适用于调用的
swarm
命令。仍然存在一些问题,因为完全重复这些步骤并没有为我更新
docker info
输出。有什么想法吗?您是否尝试过编辑docker配置文件来调整引擎选项,添加集群存储和集群播发参数,在机器内重新启动docker守护程序,然后添加swarm join容器?