Docker は、単一のホスト上で複数のアプリケーションを実行できる一般的なコンテナ化テクノロジです。ただし、Docker の使用時に、実行中のコンテナーのログをチェックしてもレコードが見つからないなど、いくつかの問題が発生する可能性があります。コンテナーを実行すると必然的にログが生成されるため、この質問には混乱するかもしれません。
それでは、Docker でログを表示するときに、ログが見つからないという問題が発生するのはなぜでしょうか?この記事では、次の側面について説明および議論します。
Docker で使用されるログ ドライバーは、ログ記録と表示に影響を与える可能性があるため、非常に重要です。デフォルトでは、Docker は json ファイル ドライバーを使用します。これにより、コンテナーの標準出力と標準エラー出力が JSON ファイルに書き込まれ、Docker ホストの /var/lib/docker/containers/ ディレクトリに保存されます。
syslog やjournald などの他のログ ドライバーを使用する場合は、これらのログ ドライバーの特性と使用法に注意する必要があります。デフォルト以外のログドライバーを使用する場合は、ドライバーで許可されているログが正しく記録されているかを確認する必要があります。そうしないと、ログの検索で問題が発生する可能性があります。
Docker では、さまざまなログ レベルに従ってログを分類できます。デフォルトでは、Docker は INFO レベル以上でログを記録します。使用しているログ レベルが DEBUG 以下の場合は、Docker のログ形式がログ構成に対して正しく設定されているかどうかを確認する必要があります。
したがって、アプリケーションが使用しているログ レベルとログ形式を確認し、Docker のログ ドライバーがそれらと互換性があるかどうかを確認する必要があります。一貫性がない場合は、Docker のロギング ドライバーと同じレベルおよび形式に調整する必要があります。
コンテナを実行すると、コンテナ自体の環境がログ記録と表示に影響を与える可能性があります。たとえば、コンテナ自体の構成によっては、標準出力または標準エラーが Docker ログ ドライブのデフォルトの場所とは異なる場所に読み取られる場合があります。
さらに、コンテナーがファイル権限を正しく設定していない、コンテナーのストレージ容量がいっぱいであるなど、コンテナー環境に問題がある可能性があります。これらのコンテナ環境の問題は、ログ記録と表示に影響を与える可能性があります。
最後に、Docker のログにも特定の制限があることに言及する必要があります。たとえば、Docker はデフォルトでコンテナーの標準出力と標準エラー出力のみをログに記録し、コンテナー内の他のログは除外します。さらに、コンテナーの開始前または停止後にログを記録すると、ログが不完全になる可能性があります。
したがって、より包括的なログ記録が必要な場合は、ELK、Fluentd、Splunk などのサードパーティのログ収集ツールを使用して、より包括的なログ記録と視覚化を実現する必要がある場合があります。
概要
Docker は、コンテナーの実行ログを表示する複数の方法を提供する人気のあるコンテナー化テクノロジです。 Docker でログを表示する場合は、Docker のログ ドライバー、ログ レベルとログ形式、コンテナー環境の問題、Docker ログの制限事項に注意する必要があります。これらの側面を慎重に調査することで、Docker でのロギングの問題をより効果的に見つけて解決できます。同時に、ログをコンテナ アプリケーションの安定性とセキュリティを向上させる重要な部分として捉え、その構成と監視をいつでもコンテナ管理計画に組み込む必要があります。
以上がDocker がログでそれを見つけられないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。