ほとんどの Linux プログラムのデバッグには通常、ログ ファイルの調査が含まれますが、これは複雑なプロセスになる場合があります。ただし、Docker のコンテナ化された環境で実行する場合は、運用環境でアプリケーションをデバッグするために、より具体的なツールを使用する必要があります。 ログはどこに保存されますか?簡単に答えると、Docker はコンテナ ログを主な保存場所である /var/lib/docker/ に保存します。各コンテナには、その ID (通常表示される短縮 ID ではなく完全な ID) に固有のログがあり、次のようにアクセスできます。 ログファイル そこに保存されますが、JSON 形式であるため読みにくく、完全なコンテナー ID を使用する必要があるのは面倒です。 Docker には、それらを表示するための組み込みコマンドが用意されています。 docker ログ -f e4bd48ef3103 ここで、-f フラグはプロンプトを開いたままにして、ファイル内の新しいエントリを「監視」します。また、--tail を使用してファイルを末尾まで追跡したり、--timestamps を使用してログ時間を表示したり、--until および --since を使用して時間に基づいてフィルタリングしたりすることもできます。 Docker Compose を使用する場合は、その中で log コマンドを使用してすべてのログを簡単に表示できます。 docker-compose ログ ただし、多くの用途に役立つ STDOUT と STDERR は、Docker ファイル内の「CMD」で指定されたエントリ ポイントのコンソール出力のみを表示することに気付くでしょう。多くのアプリケーションには専用のログ システムがあり、通常は /var/log/nginx/access.log にログが記録されます。このようなログには、Docker を介してホスト側からアクセスできます。 コンテナ内のアプリケーションからのログを表示するコンテナによっては、これが必要ない場合もあります。たとえば、デフォルトの NGINX コンテナは、ログ検査を簡素化するために Docker ログを STDOUT に送信するように設定されています。これは、ログ ファイルへの /dev/stdout シンボリック リンクを使用して実行されます。コンテナーに同様のものを設定できます。 実行 ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log ただし、コンテナ内の特定のファイルを表示したい場合は、それが可能です。 Docker には exec -it コマンドが用意されており、実行中の Docker プロセス内で任意のコマンドを実行できます。これを使用すると、Docker コンテナ内のログ ファイルを追跡できます。 docker exec -it e4bd48ef3103 tail -f log.txt これにより、任意のコマンドを実行できるため、 docker exec -it ./bin/bash として起動する限り、journalctl やその他の任意のデバッグ戦略を使用できます。ジャンプして調べたい場合は、実行することもできます。 ホスティング サービスに適した、より永続的なソリューションは、Docker ボリューム マウントを使用することです。 /var/log/nginx のようなディレクトリをホストから見えるボリュームにバインドマウントできます。まず、新しいボリュームを作成します。 docker ボリューム作成 nginx-logs 次のコマンドでコンテナ --mount を実行します。 docker run -d \ --name devtest \ --mount ソース=nginx-logs、ターゲット=/var/log/nginx \ nginx:最新 Docker Compose を使用すると、プロセスを自動化できます。 バージョン: "3.0" サービス: ウェブ: 画像: nginx:最新 ポート: - 「80:80」 ボリューム: - nginx-logs:/var/log/nginx/ ボリューム: nginx ログ: この方法では、ホスト上の任意のログ集約サービスがログファイルを直接取り込むことができます。 Dockerデーモンのログを表示する特定のコンテナ化されたアプリケーションではなく、サーバー上の Docker サービス全体の特定のログを表示する場合は、journalctl ログを表示する必要があります。 sudo journalctl -fu docker.service ほとんどのシステムではここに保存されますが、一部のシステムでは場所が異なります。
Docker がログファイルを保存する場所についての説明はこれで終わりです。Docker がログファイルを保存する場所の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Element-UI の Select と Cascader にポップアップ下部アクション ボタンを追加する方法
目次導入導入集計関数 + over()ソート関数 + over() ntile() 関数 + ove...
sort コマンドは非常によく使用されますが、-o、-n、-u、-r などの多くのパラメーターがあり...
この記事では、Linux コマンドを使用して .sql ファイルをエクスポートおよびインポートする方...
目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...
html、アドレス、引用ブロック、本文、dd、div、 dl、dt、フィールドセット、フォーム、フレ...
setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...
はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...
Docker SwarmについてDocker Swarm は次の 2 つの部分で構成されます。 D...
多くの場合、Web デザインが完成した後でデザイナーの無知が露呈し、批判されることがあります。彼らは...
1. 縦型テーブルと横型テーブル垂直テーブル: テーブル内のフィールドとフィールド値はキーと値の形式...
この記事では、ログインジャンプを実装するためのVueの具体的なコードを例として紹介します。具体的な内...
Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...
MYSQLバージョン:MySQL Community Server 5.7.17、インストール不要版...
目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...
参考までに、vueとbootstrapを使って比較的シンプルな生徒管理システムを作りました。具体的な...