ホームページ >運用・保守 >Docker >Docker はログ ファイルの場所を確認します

Docker はログ ファイルの場所を確認します

PHPz
PHPzオリジナル
2023-05-13 14:12:3711189ブラウズ

Docker は非常に人気のあるオープン ソースのコンテナ化プラットフォームであり、アプリケーションの展開と管理のための、より効率的で信頼性が高く安全なソリューションを提供します。ただし、Docker をデプロイメントや運用保守に使用する場合、システムの実行ステータス、トラブルシューティング、運用保守のデバッグなどをより深く理解するために、コンテナーの実行プロセス中にログ ファイルをクエリする必要があることがよくあります。では、Docker のログ ファイルはどこに保存されるのでしょうか?この記事では、Docker のログファイルの閲覧方法とその注意点について詳しく紹介します。

1. Docker のログ ファイルのデフォルトの保存場所

Docker では、各コンテナーが対応するログ ファイルを生成します。これらのログ ファイルは、デフォルトでコンテナのファイル システムに保存されます。具体的には、Docker はデフォルトで、コンテナーの標準出力 (stdout) と標準エラー (stderr) をコンテナーの標準出力ファイルと標準エラー ファイルにリダイレクトします。これらのログ ファイルは通常、次のディレクトリにあります。

/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log

ここで、$CONTAINER_ID は、容器 。

Docker ログの保存に関しては、いくつかの重要な点があります:

  1. ログ ファイルは、デフォルトではホストではなくコンテナに保存されます。これは、Docker がコンテナ仮想化を使用しているためです。アプリケーションを標準化された方法で実行するために、コンテナーは、独自のファイル システムとプロセス領域を含む分離された環境です。
  2. ログ ファイルは通常、JSON 形式で保存され、各ログ行のタイムスタンプ、ログ レベル、コンテナ ID、ログの内容、その他の情報が含まれます。
  3. ログ ファイルはデフォルトでは自動的にクリアされないため、これらのファイルを積極的に削除しないと、コンテナのディスク領域を占有し続け、コンテナの実行中にディスク領域が徐々に減少します。

2. Docker CLI を使用してコンテナ ログ ファイルを表示する

Docker をコンテナ管理に使用するプロセスでは、Docker CLI コマンド ライン ツールを使用してコンテナ ログ ファイルを表示できます。以下では、コンテナー ログを表示する機能を実装するためのいくつかの基本的な Docker CLI コマンドを紹介します。

  1. docker logs [オプション] CONTAINER

このコマンドの機能は、指定されたコンテナーのすべてのログ情報を出力することです。このうち、OPTIONS オプションは次のとおりです。

-a、--all: すべてのコンテナのログ情報を表示します。

-t、--timestamps: タイムスタンプを表示します。

-f , --follow: 例えば、tailf メソッドを使用してログを出力する、つまり表示ログを継続的に更新する

--tail=: 先頭から指定した行数のログを出力しますログ ファイルの末尾。デフォルトはすべてのログです ($ docker logs -tail all)

--since=: 指定された時間以降に記録されたログを出力します (例: "2019-01-01"、またはtimestamp

--until=: 指定時刻以前に記録されたログを出力します。 log

の具体的な使用方法は次のとおりです。

$ docker logs CONTAINER_ID

このコマンドは、指定されたコンテナーのすべてのログ情報を表示します。CONTAINER_ID はコンテナーの一意の識別子です。コンテナーのログ情報の最後の N 行を表示したい場合は、次のコマンドを使用できます:

$ docker logs --tail N CONTAINER_ID

実際のログ情報を監視する必要がある場合は、 -time コンテナーのログ出力をいつでも追加できます。Upper -f オプション:

$ docker logs -f CONTAINER_ID

  1. docker Inspection [OPTIONS] CONTAINER

このコマンドの機能は、コンテナのログ ファイル パス、実行ステータス、IP アドレス、ポート マッピング、その他の関連情報を含む、指定されたコンテナの詳細情報を取得することです。このコマンドを使用すると、以下に示すように、コンテナーのログ ファイルのデフォルトのストレージ パスを取得できます。

$ docker Inspection --format='{{.LogPath}}' CONTAINER_ID

Inコンテナの表示に加えて、このコマンドはログ ファイル パスに加えて、その他の関連情報も表示できます。具体的な使用方法は次のとおりです。 -Docker ログを表示するためのパーティ ツール

Docker CLI ツールに加えて、サードパーティ ツールを使用して Docker ログをより便利に表示することもできます。ここでは、2 つの人気のある Docker ログ表示ツールを紹介します。

Docker Compose

    Docker Compose は、Docker によって公式に提供されるコンテナ オーケストレーション ツールであり、構成可能なファイル docker-compose を提供します。 yml を使用して、マルチコンテナー アプリケーションがどのように構成され、実行されるかを定義します。デプロイメントに Docker Compose を使用すると、複数のコンテナーを一度に起動し、同時にログを収集および管理することが簡単になります。
  1. Docker Compose を使用してアプリケーションをデプロイする場合、docker-compose logs コマンドを通じてコン​​テナーのログを表示できます。

$ docker-compose logs [SERVICES...]

このうち、SERVICES は指定したサービス名で、デフォルトでは全サービスのログが出力されます。表示されます。

ELK Stack

    ELK は、ログの収集、分析、視覚化を実現するために連携できる 3 つのオープン ソース ソフトウェア、Elasticsearch Logstash Kibana の組み合わせを指します。 Docker のログ データは Logstash を通じて収集でき、その後、そのログ データを Elasticsearch に転送してインデックス付けと取得を行い、最後に Kibana インターフェイスを通じてデータを視覚的に表示できます。
  1. ELK スタックを使用して Docker ログを収集および視覚化するには、次の手順が必要です。

(1) Docker のインストール

(2) Docker Compose のインストール

( 3) ELK スタック イメージ ファイルをダウンロードします: docker pull sebp/elk

(4) docker-compose.yml ファイルを使用して ELK スタック サービスを開始します:

version: '3.7'
services:
elasticsearch:

image: sebp/elk
ports:
  - "9200:9200"
volumes:
  - ./elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml

kibana :

image: sebp/elk
ports:
  - "5601:5601"
links:
  - elasticsearch

logstash:

image: sebp/elk
volumes:
  - ./logstash:/etc/logstash/conf.d
links:
  - elasticsearch

(5) Logstash 構成ファイルで Docker ログのパスを指定します。

input {
file {

path => ["/var/lib/docker/containers/*/*.log"]
type => "docker"
codec => "json"

}
}

filter {
if [type] == "docker" {

}
}

output {
elasticsearch {

hosts => "elasticsearch:9200"
manage_template => false
index => "docker-%{+YYYY.MM.dd}"

}
}

(6) Logstash サービスを再起動し、Kibana インターフェイスを通じて Docker ログ ファイルを検索して表示します。

要約すると、この記事では、Docker CLI コマンド、Docker Compose や ELK Stack などのサードパーティ ツールを含む、Docker でログ ファイルを表示する方法について詳しく説明します。これらのツールを利用すると、Docker コンテナのログ情報をより簡単に監視およびデバッグして、アプリケーションが正常に動作していることを確認できます。

以上がDocker はログ ファイルの場所を確認しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。