web-dev-qa-db-ja.com

「準備中」の状態でDockerサービスタスクのログを取得する方法

現在、docker 1.12で遊んでいて、サービスを作成し、"preparing"を実行したときに"docker service tasks xxx"のステージがあることに気づきました。

この段階では、画像がプルまたは更新されていると推測できます。

私の質問は、この段階のログをどのように確認できるかということです。または、より一般的には、Dockerサービスタスクのログを確認するにはどうすればよいですか?

11
Shay Tsadok

開発環境でさまざまな「ホスト」をエミュレートするためにdocker-machineを使用しています。

これは、私のサービスのこの「準備」フェーズで何が起こっていたかを理解するために私がしたことです。

docker service ps <serviceName>

サービスの実行がスケジュールされたノード(マシン)が表示されます。ここに「準備中」というメッセージが表示されます。

Docker-machine sshを使用して、特定のマシンに接続します。

docker-machine ssh <nameOfNode/Machine>

プロンプトが変わります。あなたは今、別のマシンの中にいます。この他のマシンの内部でこれを行います:

tail -f /var/log/docker.log

そのマシンの「デーモン」ログが表示されます。そこで、その特定のデーモンが「プル」を実行しているかどうか、またはサービス準備の一部として何が実行されているかを確認できます。私の場合、次のようなものを見つけました。

time="2016-09-05T19:04:07.881790998Z" level=debug msg="pull progress map[progress:[===========================================> ] 112.4 MB/130.2 MB status:Downloading

これにより、Dockerアカウントからいくつかの画像をダウンロードしているだけであることがわかりました。

10
Christian Adam

あなたの仮定(準備中の引っ張りについて)は正しいです。

タスクのログコマンドはまだありませんが、確かにそのデーモンに接続して、通常の方法でdocker logsを実行できます。

0
johnharris85