docker version 1.9.1
swarm version 1.0.1
为什么要将3个VM(桥接网)连接到swarm. “docker info”显示了所有节点
Status pending.
3个主机中的1个是管理器,所有输出都来自该主机.我不知道在哪里寻找.
在运行swarm时–debug管理令牌:// XXXXX
输出>>
*INFO[0000] Listening for HTTP addr=127.0.0.1:2375 proto=tcp DEBU[0000] Failed to validate pending node: Cannot connect to the docker engine endpoint Addr=10.32.1.38:2375 DEBU[0000] Failed to validate pending node: Cannot connect to the docker engine endpoint Addr=10.32.1.4:2375 DEBU[0000] Failed to validate pending node: Cannot connect to the docker engine endpoint Addr=10.32.1.33:2375
然后
root@ubuntu:~# ps -ef | grep swarm root 2158 1391 0 12:28 pts/2 00:00:00 swarm join token://xxxxxxx --addr 10.32.1.4:2375 root 2407 1213 0 13:57 pts/1 00:00:00 swarm manage token://xxxxxxx -H 0.0.0.0:4243 root 2413 1391 0 13:57 pts/2 00:00:00 grep --color=auto swarm
然后
root@ubuntu:~# swarm list token://xxxxxxxxxxx 10.32.1.4:2375 10.32.1.33:2375 10.32.1.38:2375
然后
root@ubuntu:~# ps -ef | grep docker root 2330 1 0 12:52 ? 00:00:00 /usr/bin/docker daemon root 2421 1391 0 14:10 pts/2 00:00:00 grep --color=auto docker
最佳答案
docker守护程序可以侦听三种不同类型的Socket:unix,tcp和fd.
默认情况下,docker守护程序只是侦听unix套接字.
如果需要远程访问Docker守护程序,则需要启用tcp套接字.
在创建docker swarm集群时,swarm管理器需要远程访问swarm代理节点的docker守护程序.
因此,您需要重新配置docker守护程序
vim /etc/default/docker
添加以下行:
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
重启docker守护进程
sudo restart docker
通过这样做,可以远程访问docker守护程序.
参考文献:
> Docker document: docker daemon
> Docker document: create a swarm for development