Docker は、アプリケーションの構築、デプロイ、管理を高速化する人気のアプリケーション コンテナ化プラットフォームです。ただし、Docker を使用してアプリケーションを実行すると、予期しない問題が発生する可能性があるため、問題の根本原因を理解するには Docker 起動ログを確認する必要があります。では、Docker の起動ログを表示するにはどうすればよいでしょうか?
Docker には、コンテナー内の標準出力と標準エラー出力を表示するために使用できる組み込みコマンド docker log が用意されています。このコマンドを使用するには、まず実行中のコンテナーの ID または名前を確認します。これは docker ps コマンドで表示できます。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8623f22d0b74 nginx "nginx -g 'daemon of…" 10 days ago Up 2 hours 80/tcp web
上記の出力では、コンテナー ID は 8623f22d0b74 で、コンテナー名はウェブ。 docker logs コマンドを使用して、コンテナー内のログ出力を表示できます:
$ docker logs 8623f22d0b74 172.17.0.1 - - [02/May/2020:19:41:04 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-" 172.17.0.1 - - [02/May/2020:19:41:06 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-"
上記の出力では、NGINX サーバーのアクセス ログが表示されます。このコマンドは、単に NGINX サーバーの起動時の問題を見つけるのに役立ちます。コンテナ。
docker logs コマンドの使用に加えて、docker events コマンドを使用して Docker 起動イベントを表示することもできます。このコマンドは、Docker によって発行されたすべてのイベントを監視し、対応する情報を出力できます。たとえば、次のコマンドを使用して、Docker 実行のすべてのイベントを表示できます。
$ docker events ... 2020-05-02T19:44:07.842095081+00:00 container destroy 8623f22d0b746eee40b1568a78ffdf2f1555a9c5b557d8c5a5a5eaa32c7f1ede (image=nginx, name=web) 2020-05-02T19:44:08.273816081+00:00 network disconnect 6cbedee6e77d 03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7 (endpoint=03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7, name=bridge, type=bridge) 2020-05-02T19:44:09.260029423+00:00 network destroy 6cbedee6e77d (name=bridge)
上記の出力では、コンテナーの破棄イベント、ネットワークの切断イベント、および破棄を確認できます。ネットワークのイベント。このコマンドは、Docker コンテナの他のイベントを理解するのに役立ちます。
Docker コンテナーのすべてのログは、コンテナーのファイル システムに保存されます。したがって、cat、tail、grep などの通常のファイル表示ツールを使用してそれらを表示できます。たとえば、コンテナのシステム ログを表示する場合は、次のコマンドを使用できます。
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 /var/lib/docker/containers/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10-json.log
このコマンドは、コンテナのログ ファイル パスを出力します。引き続き tail コマンドを使用して、ログ ファイルの最後の数行を表示できます。
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 | xargs tail -f ...
上記の出力では、コンテナーのリアルタイム ログ出力を確認できます。 Ctrl-C ショートカットを使用して、ログの表示を停止できます。
概要
Docker のログ管理は複雑なプロセスですが、Docker が提供する組み込みコマンドを使用することで、コンテナ内で発生している問題を簡単に確認できます。 docker logs コマンド、docker events コマンドを使用するか、コンテナ ログ ファイルを表示することで、Docker コンテナの実行ステータスを常に把握し、Docker アプリケーションのデプロイと管理を強力にサポートできます。
以上がDocker の起動ログを表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。