4

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?

このコマンドは、デーモンが正しく起動しなかったことを明確に示しています。Swarm Agent のリモート API を開始して、Swarm Manager が TCP 経由で利用できるようにする Docker デーモンを作成するにはどうすればよいですか?

4

1 に答える 1

3

このコマンドは、クライアントが docker daemon/engine/server と通信できないことを示しています。ログによると、サーバーは稼働しています。

だけでは-H tcp://0.0.0.0:2375、をエクスポートしなかった場合DOCKER_HOST=127.0.0.1:2375、docker クライアントはデーモンと通信できません。これを処理するには 2 つの方法があります。

  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
    
于 2015-05-08T23:05:13.123 に答える