web-dev-qa-db-ja.com

Dockerサービスが保留状態になっている理由を調べるにはどうすればよいですか?

私がプレイしています Docker Swarm、およびdocker-compose.yml with docker deploy。 1つを除き、すべてのサービスがデプロイされます。サービスは保留状態のままです。このサービスをノードの1つに結び付ける制約を追加しました。私の質問は、この特定の問題についてではなく、トラブルシューティングの方法についてです。 Dockerのドキュメントには、サービスが保留状態になる可能性のある原因が記載されていますが、それらのいずれも適用されません(制約の問題、リソースの排出)。

ドッカーの群れの「思考プロセス」をどこかで見ることができますか?何を考えているの?

編集:新しい、1.12で導入されたswarmオプションを使用していることをより明確にすべきでした。

17
raarts

Docker Swarmモードでサービスが期待どおりに起動しない場合のデバッグ方法について説明します。

まず、docker service ps <service-name>でタスクIDを取得します。

次に、docker inspect <task-id>でメタデータをチェックすると便利です。特に、コンテナ開始前のエラーメッセージはステータスフィールドにあり、目的のパラメータで開始されたかどうかを再確認します。

タスクにコンテナIDがある場合、コンテナの起動後にタスクが異常終了したため、docker logs <container-id>でコンテナのログを確認してください

これが助けになることを願っています。

29
minamijoyo

docker run swarm には--debugオプションを使用すると、詳細を確認できます。

Docker swarm issue 2341 または docker issue 24982 を参照して、保留状態のデバッグに使用されるオプションを確認してください。

例えば:

(unknown): 192.168.99.106:2375(node2 ip)
└ ID:
└ Status: Pending
└ Containers: 0
└ Reserved CPUs: 0 / 0
└ Reserved Memory: 0 B / 0 B
└ Labels:
└ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?....
2
VonC