6.1 コマンド docker logs
の主な機能
コンテナのログ記録は、Dockerアプリケーションの管理と監視において重要な部分だよ。ログを見ることで、コンテナの動作を追跡したり、問題を診断したり、コンテナ内でアプリケーションがどのように動作しているかを理解できるんだ。このレクチャーでは、コンテナのログ記録に使うコマンド docker logs
の使い方を詳しく見ていくよ。
コマンド docker logs
の主な機能
docker logs
コマンドは、コンテナのログを取得して表示するために使うんだ。これにより以下のことが可能になるよ:
- コンテナの標準出力 (stdout) と標準エラー出力 (stderr) を確認すること。
- ログをリアルタイムでフィルタリングして追跡すること。
- ログを検索して、問題を診断するために分析すること。
6.2 docker logs コマンドの使い方
1. コンテナのログを見る
コンテナのログを見るには、以下のコマンドを使ってね:
docker logs <container_id_or_name>
例:
docker logs my_container
このコマンドは my_container
のすべてのログを表示してくれるよ。
2. リアルタイムでログを追跡する
リアルタイムでログを追うには、フラグ -f
(または --follow
) を使ってね:
docker logs -f <container_id_or_name>
例:
docker logs -f my_container
このコマンドは新しいログが出るたびにリアルタイムで表示してくれるよ。
3. 表示する行数を制限する
コマンド docker logs
の出力行数を制限するには、フラグ --tail
を使ってね:
docker logs --tail <number_of_lines> <container_id_or_name>
例:
docker logs --tail 10 my_container
このコマンドは my_container
の最後の10行のログを表示するよ。
4. 特定の時間以降のログを表示する
特定の時間以降のログを表示するには、フラグ --since
を使ってね:
docker logs --since <timestamp> <container_id_or_name>
例:
docker logs --since 2022-01-01T00:00:00 my_container
このコマンドは my_container
の2022年1月1日以降のログを表示するよ。
5. 特定の時間までのログを表示する
特定の時間までのログを表示するには、フラグ --until
を使ってね:
docker logs --until <timestamp> <container_id_or_name>
例:
docker logs --until 2022-01-02T00:00:00 my_container
このコマンドは my_container
の2022年1月2日までのログを表示するよ。
6.3 docker logs
の使用例
例 1: アプリケーションエラーの診断
コンテナ内のアプリケーションが予期せずエラーで停止した場合、docker logs
を使用して原因を診断できます:
docker logs my_app_container
ログを見ることで、何が問題でアプリケーションがエラーで終了したのかを理解する助けになります。
例 2: サービスの動作監視
Webサービスのリアルタイム動作を追跡するには、フラグ -f
を使用します:
docker logs -f web_service_container
このコマンドを実行すると、Webサービスに送信される新しいログをすべてリアルタイムで確認することができます。
例 3: 特定期間のログ分析
特定の期間のログを分析する必要がある場合、フラグ --since
と --until
を使用します:
docker logs --since "2023-07-01" --until "2023-07-02" my_app_container
このコマンドは、2023年7月1日の my_app_container
のログを出力します。
6.4 Dockerのログドライバーの設定
Dockerはいろんなログドライバーをサポートしていて、それをコンテナに設定できるよ。メインのログドライバーは以下の通り:
-
json-file
: デフォルト設定。ログがJSON形式のファイルに保存される。 syslog
: ログがシステムジャーナル(syslog)に送信される。journald
: ログがjournaldシステムに送信される。-
gelf
: ログがGELF (Graylog Extended Log Format)プロトコルをサポートするサーバに送信される。 fluentd
: ログがFluentdサーバに送信される。
ログドライバーの設定
ログドライバーをセットアップするには、コンテナ起動時に--log-driver
フラグを使ってね:
docker run --log-driver <driver_name> <container_image>
例:
docker run --log-driver syslog my_app_image
この例は、syslogログドライバーを使ってコンテナを起動するよ。
ログ設定パラメータの設定
--log-opt
フラグを使ってログ設定のパラメータを指定できるよ:
docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
GO TO FULL VERSION