添加-H标志后,Docker守护程序无法启动

时间:2015-05-07 15:59:06

标签: docker docker-swarm

我尝试使用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守护进程启动并确保Swarm代理上的远程API可通过TCP为Swarm Manager提供?

1 个答案:

答案 0 :(得分:3)

此命令指出客户端无法与docker守护程序/引擎/服务器通信。根据日志,您的服务器正在运行

仅使用-H tcp://0.0.0.0:2375,如果您未导出DOCKER_HOST=127.0.0.1:2375,则docker客户端将无法与该守护进程通信。您有两种方法可以解决这个问题:

  1. 导出DOCKER_HOST

    # Exporting DOCKER_HOST when you want to talk to it
    $ export DOCKER_HOST=127.0.0.1:2375
    $ docker ps
    
  2. 或更新您的服务器选项以绑定到套接字,如此

    # docker -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -d
    $ docker ps