Docker-swarm >>无法连接到docker引擎端点

Jul*_*ius 6 docker docker-swarm

docker version 1.9.1
swarm version 1.0.1
Run Code Online (Sandbox Code Playgroud)

为什么要将3个VM(桥接网)连接到swarm."docker info"显示了所有节点

状态待定.

3个主机中的1个是管理器,所有输出都来自该主机.我不知道在哪里寻找.

在跑步 swarm --debug manage token://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
Run Code Online (Sandbox Code Playgroud)

然后

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
Run Code Online (Sandbox Code Playgroud)

然后

root@ubuntu:~# swarm list token://xxxxxxxxxxx

10.32.1.4:2375
10.32.1.33:2375
10.32.1.38:2375
Run Code Online (Sandbox Code Playgroud)

然后

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
Run Code Online (Sandbox Code Playgroud)

心跳排序 - 在后台运行,检查端口,名称解析,从管理器pingable.

Kiw*_*Lau 7

码头工人守护程序可以监听三种不同类型的Socket:UNIX,TCPFD.

默认情况下,docker守护程序只是侦听unix套接字.

如果需要远程访问Docker守护程序,则需要启用tcp套接字.

在创建docker swarm集群时,swarm管理器需要远程访问swarm代理节点的docker守护程序.

因此,您需要重新配置docker守护程序

vim /etc/default/docker
Run Code Online (Sandbox Code Playgroud)

添加以下行:

DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
Run Code Online (Sandbox Code Playgroud)

重启docker守护进程

sudo restart docker
Run Code Online (Sandbox Code Playgroud)

通过这样做,可以远程访问docker守护程序.

参考文献:

  1. Docker文档:docker守护程序
  2. Docker文档:创建一个用于开发的swarm