Docker内部のログ出力を取得する方法は何ですか

Dockerコンテナでは、コンテナ内のログを出力するためのさまざまな方法があります。

  1. コンテナ内のアプリケーションは、ログメッセージを標準出力(stdout)と標準エラー(stderr)のストリームに直接送信できます。これらのメッセージは Docker によってキャプチャされ、ホストマシンのログファイルに格納されます。コンテナの標準出力および標準エラーのログを見るには、docker logs コマンドを使用できます。
  2. たとえば、mycontainerというコンテナのログを参照するには、次のコマンドを実行します:
  3. docker logs mycontainer
  4. ログドライバー:Dockerはログをファイル、Syslog、リモートログサーバーなど、さまざまな宛先に送信するログドライバーを各種提供しています。ログドライバーを設定することで、必要に応じてコンテナのログを任意の場所に転送できます。`–log-driver` オプションを使用して、コンテナの作成時にログドライバーを指定できます(例)。
  5. docker run –log-driver=json-file myimage
  6. 異なるロギング・ドライバーを利用することで、コンテナのログをさまざまなターゲットへ送信できます。たとえば、Splunk、ELK(Elasticsearch/Logstash/Kibana) スタック、その他のログ収集ツールへ送信できます。
  7. ログコレクター(Log collectors):一部のログドライバーは、コンテナからのログを処理・保管するために追加のログコレクターを構成する必要があります。これらのログコレクターは、コンテナベース、ホストマシンベース、クラウドプラットフォームベースにすることができます。例えば、ELKスタックのLogstashはログコレクターとして機能し、Dockerデーモンからログを収集して、Elasticsearchに送信し、保管・分析します。

Dockerコンテナ内のログ出力方法は、標準出力、標準エラー出力のほか、ログドライバーを介してログを各種宛先に送信し、ログコレクターで処理・保管する手法があります。

bannerAds