CodeGym /コース /Docker SELF /コンテナのロギング

コンテナのロギング

Docker SELF
レベル 22 , レッスン 0
使用可能

6.1 コマンド docker logs の主な機能

コンテナのログ記録は、Dockerアプリケーションの管理と監視において重要な部分だよ。ログを見ることで、コンテナの動作を追跡したり、問題を診断したり、コンテナ内でアプリケーションがどのように動作しているかを理解できるんだ。このレクチャーでは、コンテナのログ記録に使うコマンド docker logs の使い方を詳しく見ていくよ。

コマンド docker logs の主な機能

docker logs コマンドは、コンテナのログを取得して表示するために使うんだ。これにより以下のことが可能になるよ:

  • コンテナの標準出力 (stdout) と標準エラー出力 (stderr) を確認すること。
  • ログをリアルタイムでフィルタリングして追跡すること。
  • ログを検索して、問題を診断するために分析すること。

6.2 docker logs コマンドの使い方

1. コンテナのログを見る

コンテナのログを見るには、以下のコマンドを使ってね:

Terminal

docker logs <container_id_or_name>

例:

Terminal

docker logs my_container 

このコマンドは my_container のすべてのログを表示してくれるよ。

2. リアルタイムでログを追跡する

リアルタイムでログを追うには、フラグ -f (または --follow) を使ってね:

Terminal

docker logs -f <container_id_or_name>

例:

Terminal

docker logs -f my_container

このコマンドは新しいログが出るたびにリアルタイムで表示してくれるよ。

3. 表示する行数を制限する

コマンド docker logs の出力行数を制限するには、フラグ --tail を使ってね:

Terminal

docker logs --tail <number_of_lines> <container_id_or_name>

例:

Terminal

docker logs --tail 10 my_container

このコマンドは my_container の最後の10行のログを表示するよ。

4. 特定の時間以降のログを表示する

特定の時間以降のログを表示するには、フラグ --since を使ってね:

Terminal

docker logs --since <timestamp> <container_id_or_name>

例:

Terminal

docker logs --since 2022-01-01T00:00:00 my_container

このコマンドは my_container の2022年1月1日以降のログを表示するよ。

5. 特定の時間までのログを表示する

特定の時間までのログを表示するには、フラグ --until を使ってね:

Terminal

docker logs --until <timestamp> <container_id_or_name>

例:

Terminal

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
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION