Docker は非常に人気のあるオープン ソースのコンテナ化プラットフォームであり、アプリケーションの展開と管理のための、より効率的で信頼性が高く安全なソリューションを提供します。ただし、Docker をデプロイメントや運用保守に使用する場合、システムの実行ステータス、トラブルシューティング、運用保守のデバッグなどをより深く理解するために、コンテナーの実行プロセス中にログ ファイルをクエリする必要があることがよくあります。では、Docker のログ ファイルはどこに保存されるのでしょうか?この記事では、Docker のログファイルの閲覧方法とその注意点について詳しく紹介します。
1. Docker のログ ファイルのデフォルトの保存場所
Docker では、各コンテナーが対応するログ ファイルを生成します。これらのログ ファイルは、デフォルトでコンテナのファイル システムに保存されます。具体的には、Docker はデフォルトで、コンテナーの標準出力 (stdout) と標準エラー (stderr) をコンテナーの標準出力ファイルと標準エラー ファイルにリダイレクトします。これらのログ ファイルは通常、次のディレクトリにあります。
/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log
ここで、$CONTAINER_ID は、容器 。
Docker ログの保存に関しては、いくつかの重要な点があります:
2. Docker CLI を使用してコンテナ ログ ファイルを表示する
Docker をコンテナ管理に使用するプロセスでは、Docker CLI コマンド ライン ツールを使用してコンテナ ログ ファイルを表示できます。以下では、コンテナー ログを表示する機能を実装するためのいくつかの基本的な Docker CLI コマンドを紹介します。
このコマンドの機能は、指定されたコンテナーのすべてのログ情報を出力することです。このうち、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
このコマンドの機能は、コンテナのログ ファイル パス、実行ステータス、IP アドレス、ポート マッピング、その他の関連情報を含む、指定されたコンテナの詳細情報を取得することです。このコマンドを使用すると、以下に示すように、コンテナーのログ ファイルのデフォルトのストレージ パスを取得できます。
$ docker Inspection --format='{{.LogPath}}' CONTAINER_ID
Inコンテナの表示に加えて、このコマンドはログ ファイル パスに加えて、その他の関連情報も表示できます。具体的な使用方法は次のとおりです。 -Docker ログを表示するためのパーティ ツール
Docker CLI ツールに加えて、サードパーティ ツールを使用して Docker ログをより便利に表示することもできます。ここでは、2 つの人気のある Docker ログ表示ツールを紹介します。
Docker Compose$ docker-compose logs [SERVICES...]
このうち、SERVICES は指定したサービス名で、デフォルトでは全サービスのログが出力されます。表示されます。
ELK Stack(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 サイトの他の関連記事を参照してください。