2016-03-02 122 views
6

我一直在关注these instructions来在我的Ubuntu机器上建立一个docker swarm。我想在运行swarm管理器的同一台机器上运行一些swarm节点,但节点的状态为“Pending”,并显示错误“无法连接到docker引擎端点”。如何在swarm管理器所在的机器上运行docker swarm节点?

这些都是我跑到设置系统的命令:

docker run -d --name consul -p 8500:8500 progrium/consul -server -bootstrap 
docker run --name manager -d -p 4000:4000 swarm manage -H :4000 --advertise 192.168.1.18:4000 consul://192.168.1.18:8500 
docker run -d -p 6300:2375 swarm join --advertise=192.168.1.18:6300 consul://192.168.1.18:8500 

一件事我注意到的是,节点不绑定到一个端口:

$ nmap localhost 

Starting Nmap 6.40 (http://nmap.org) at 2016-03-02 15:06 EST 
Nmap scan report for localhost (127.0.0.1) 
Host is up (0.00054s latency). 
Other addresses for localhost (not scanned): 127.0.0.1 
Not shown: 996 closed ports 
PORT  STATE SERVICE 
4000/tcp open remoteanything 
8500/tcp open fmtp 

这里的输出码头信息:

$ docker -H :4000 info 
Containers: 0 
Running: 0 
Paused: 0 
Stopped: 0 
Images: 0 
Server Version: swarm/1.1.2 
Role: primary 
Strategy: spread 
Filters: health, port, dependency, affinity, constraint 
Nodes: 1 
(unknown): 192.168.1.18:6300 
    └ Status: Pending 
    └ Containers: 0 
    └ Reserved CPUs: 0/0 
    └ Reserved Memory: 0 B/0 B 
    └ Labels: 
    └ Error: Cannot connect to the docker engine endpoint 
    └ UpdatedAt: 2016-03-02T18:44:38Z 
Plugins: 
Volume: 
Network: 
Kernel Version: 4.2.0-30-generic 
Operating System: linux 
Architecture: amd64 
CPUs: 0 
Total Memory: 0 B 
Name: 739dc6a5c721 

任何帮助将不胜感激!

+0

我试过了,但我并没有弄明白。我相信这是可能的(尽管我找不到任何关于它的文档)。我的猜测是,它也取决于某些情况下所需的k/v后端存储(对于多主机网络)。我也没有挖得太深(不超过半天)。 – Auzias

回答

3

看起来事情现在正在遵循these instructions以后的工作。总之,在主机上,你应该修改/etc/default/docker包括以下行:

DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" 

然后,您应该重新启动泊坞窗:

sudo restart docker 

我就遇到了这个问题,因为安装程序会自动启动泊坞窗引擎(至少在Ubuntu上)。这会导致指令3.3(sudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock)失败,因为它已经在运行。