Docker守护进程在添加-H标志之后不会启动
我试图使用Docker Swarm来做到这一点,我需要使用这个命令在每个节点上用-H标志启动Docker守护进程:
docker -H tcp://0.0.0.0:2375 -d
在我的节点(Debian 8,Docker 1.6.0)上执行此操作时,即使该命令显示守护程序已完成初始化,该命令也不会停止。
完整的输出:
INFO[0000] +job init_networkdriver() INFO[0000] +job serveapi(tcp://0.0.0.0:2375) INFO[0000] Listening for HTTP on tcp (0.0.0.0:2375) INFO[0000] /!\ DON'T BIND ON ANY IP ADDRESS WITHOUT setting -tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING /!\ INFO[0000] -job init_networkdriver() = OK (0) WARN[0000] mountpoint for memory not found INFO[0000] Loading containers: start. INFO[0000] Loading containers: done. INFO[0000] docker daemon: 1.6.0 4749651; execdriver: native-0.2; graphdriver: aufs INFO[0000] +job acceptconnections() INFO[0000] -job acceptconnections() = OK (0) INFO[0000] Daemon has completed initialization
在这最后一行没有任何反应,我不能写另一个命令。
我也使用screen
运行命令,以便能够在第一个命令之后运行命令,但运行Docker命令时出现错误消息:
FATA[0000] Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
这个命令明确指出守护进程没有正确启动。 我怎么能有一个启动的Docker守护进程,并确保通过TCP为Swarm Manager提供了Swarm Agents上的远程API?
这个命令指出客户端不能和docker守护进程/引擎/服务器通信 。 根据日志,你的服务器正在运行 。
只有-H tcp://0.0.0.0:2375
,如果你没有导出DOCKER_HOST=127.0.0.1:2375
,那么DOCKER_HOST=127.0.0.1:2375
客户端将无法与守护进程通信。 你有两种方法来处理这个问题:
-
导出
DOCKER_HOST
# Exporting DOCKER_HOST when you want to talk to it $ export DOCKER_HOST=127.0.0.1:2375 $ docker ps
-
或者更新你的服务器选项来绑定到套接字,就像这样
# docker -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -d $ docker ps