Swarm Master应该作为单节点集群中的节点加入吗?

时间:2016-05-25 07:27:27

标签: docker docker-machine docker-swarm

我们正在构建一个小型集群,一个(奇怪的)要求是在一台机器上设置所有内容,以后其他机器可以加入。

我设立了领事:

docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

和主人:

docker run -d -p 4000:4000 swarm manage -H :4000 --advertise <ip_here>:4000 consul://<ip_here>:8500

使用以下命令运行docker:

sudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

docker -H :4000 info在此阶段将节点列为0,我无法使用docker -H :4000 run <image>运行任何图片,因为No healthy node available in the cluster.

当我使用以下命令将主节点加入群集时

docker run -d swarm join --advertise=<ip_here>:2375 consul://<ip_here>:8500

然后docker -H :4000 info将节点列为1,我可以运行容器。

请注意<ip_here>指的是机器的同一个ip。

这是预期的行为吗?如果没有,我做错了什么?

2 个答案:

答案 0 :(得分:1)

在看到Docker Machine创建Swarm集群的方式,以及使用集成到Docker v1.12.0中的Swarm后,我想发布更新。 Swarm master通过运行两个容器,一个代理和一个主服务器来加入Swarm集群。

答案 1 :(得分:0)

至于我,我使用Swarm Master作为Consul服务器。 This answer可能会对您有所帮助。然后,为了回答,Swarm Master不会作为单个节点集群加入。

您无法在单个节点上部署Swarm。这不是它的用途,不能那样工作。 Swarm turns a pool of Docker hosts into a single, virtual Docker host ,因此如果Docker主机池包含零主机......没有Docker代理来托管容器。

相关问题