Docker swarm管理器无法识别swarm节点

鄭元傑*_*鄭元傑 5 docker docker-swarm

我按照这些步骤创建Docker swarm集群.

第一:创建Cunsol

docker-machine create -d virtualbox mh-keystore  
eval "$(docker-machine env mh-keystore)"  
docker run -d \  
 -p "8500:8500" \  
 -h "consul" \  
 progrium/consul -server -bootstrap
Run Code Online (Sandbox Code Playgroud)

第二:创建群体管理器

docker-machine create -d virtualbox node1  
docker run -d -p 4000:4000 swarm manage -H :4000 --replication --  advertise $(docker-machine ip node1):4000 consul://$(docker-machine ip mh-keystore):8500
Run Code Online (Sandbox Code Playgroud)

第三步:创建群集节点

docker-machine create -d virtualbox node2  
docker run -d swarm join --advertise=$(docker-machine ip node2):2375   consul://$(docker-machine ip mh-keystore):8500  
Run Code Online (Sandbox Code Playgroud)

第四:登录node1

docker-machine ssh node1  
docker -H :4000 info  
Run Code Online (Sandbox Code Playgroud)

但是这个指令输出

(未知):192.168.99.106
:
2375 (node2 ip)└ID:└状态:待定
└容器:
0└预留CPU:0/
0└预留内存:0 B/
0B└标签:
└错误:无法连接到Docker守护进程.docker守护程序是否在此主机上运行?....

我怎样才能解决这个问题 ?
我已经检查过node2,它运行良好.


[更新]我按照这个页面运行良好.但我仍然不知道如何设置没有docker-machine的群集群.


[更新]另一种方法也不起作用.

docker-machine create -d virtualbox \
 --swarm \
 --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \
 --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \
 --engine-opt="cluster-advertise=eth1:2376" \
 mhs-demo1
Run Code Online (Sandbox Code Playgroud)

Node1 docker info出现mhs-demo1 ip但信息仍然未知..


[更新]
当我输入eval docker-machine env --swarm node1它显示

检查TLS连接时出错:"node1"不是一个swarm主站.--swarm标志适用于swarm master这会导致错误吗?为什么使用swarm manager指令设置不是swarm master?

太奇怪了.我怎样才能得到相同的结果

docker-machine create \ -d virtualbox \ --swarm --swarm-master \ 
 --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \ 
 --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \ 
 --engine-opt="cluster-advertise=eth1:2376" \
 mhs-demo0
Run Code Online (Sandbox Code Playgroud)

使用swarm指令?

我想使用swarm指令,因为我不想在创建它时声明swarm master.

Gia*_*Arb 0

为什么使用 docker-machine 来启动节点?您可以使用 docker machine 来设置您的节点,让 swarm 准备就绪。您可以按照本教程进行操作 https://docs.docker.com/engine/userguide/networking/get-started-overlay/