現在、docker 1.12で遊んでいて、サービスを作成し、"preparing"
を実行したときに"docker service tasks xxx"
のステージがあることに気づきました。
この段階では、画像がプルまたは更新されていると推測できます。
私の質問は、この段階のログをどのように確認できるかということです。または、より一般的には、Dockerサービスタスクのログを確認するにはどうすればよいですか?
開発環境でさまざまな「ホスト」をエミュレートするために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アカウントからいくつかの画像をダウンロードしているだけであることがわかりました。
あなたの仮定(準備中の引っ張りについて)は正しいです。
タスクのログコマンドはまだありませんが、確かにそのデーモンに接続して、通常の方法でdocker logs
を実行できます。