【发布时间】:2016-06-08 14:37:44
【问题描述】:
我按照这些步骤创建 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
二:创建swarm manager
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
第三:创建swarm节点
docker-machine create -d virtualbox node2
docker run -d swarm join --advertise=$(docker-machine ip node2):2375 consul://$(docker-machine ip mh-keystore):8500
第四:登录node1
docker-machine ssh node1
docker -H :4000 info
但是这条指令输出
(未知):192.168.99.106:2375(node2 ip)
└ ID:
└ 状态:待定
└ 容器:0
└ 预留 CPU:0 / 0
└ 保留内存:0 B / 0 B
└ 标签:
└ 错误:无法连接到 Docker 守护进程。 docker daemon 是否在此主机上运行?....
我该如何解决这个问题?
我已经检查了 node2 并且运行良好。
[更新]我关注this page,它运作良好。但是我仍然不知道如何在没有 docker-machine 的情况下设置 swarm 集群。
[更新]另一种方法也不起作用。
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
Node1 docker info 出现 mhs-demo1 ip 但信息仍然未知..
[更新]
当我输入 eval docker-machine env --swarm node1 它显示
检查 TLS 连接时出错:“node1”不是 swarm master。这 --swarm 标志旨在与 swarm master 一起使用这会导致错误吗?为什么使用 swarm manager 指令设置不是 swarm 大师?
这太奇怪了。我怎样才能得到与
相同的结果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
使用 swarm 指令?
我想使用 swarm 指令,因为我不想在创建时声明 swarm master。
【问题讨论】:
标签: docker docker-swarm