コンテナログを表示する まず、 172.17.0.1 - - [2019年3月24日:03:51:21 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-" 一般的に、コンテナ ID の最初の 3 桁で十分です。 上記はコンテナログを表示する私たちの日常的な方法であり、非常にシンプルで実用的です。 コンテナログファイルストレージ コンテナ ログは、ローカル ディスクに json ファイルとして保存されます。ファイル パスを表示するには、次の方法を使用できます:
注 1: Mac には /var/lib/docker ディレクトリはありません。Mac 用の Docker は動作が異なるため、Linux システムを使用して練習するのが最適です。 注2: LogPathの内容が空の場合、おそらくdockerエンジンのバージョンが原因と思われます。dockerのバージョンをdocker-ce 18.09.3にアップグレードすることができます。 d2408a7931c95a3a83ffeca2fba887763cf925a67890ef3be4d9ff838aa25b00-json.logファイルを確認すると、次の内容が表示されます。
この情報のログ フィールドの内容は、以前に docker logs コマンドを通じて表示された内容と一致しています。 コンテナ ログはコンテナのライフサイクルに従い、コンテナが破棄されると破棄されます。 docker stop 24 を使用して、テストした nginx サービスをシャットダウンします。 --rm パラメータはコンテナの起動時に使用されるため、シャットダウン後に自動的にクリーンアップされて削除され、/var/lib/docker/containers/d2408a7931c95a3a83ffeca2fba887763cf925a67890ef3be4d9ff838aa25b00 ディレクトリは存在しなくなり、対応するログ ファイルも削除されていることがわかります。 コンテナログファイルのローテーション戦略 デフォルトでは、Docker コンテナのログは JSON ファイルに書き込まれるため、オンラインで実行するとディスクがいっぱいになる可能性があります。戦略を調整して実行することができます。 /etc/docker/daemon.json を変更し (存在しない場合は手動で作成します)、次のコンテンツを追加します。 { 「ログオプション」: { "最大サイズ": "1m", "最大ファイル": "3" } } 変更が完了したら、Docker サービスを再起動します。 systemctlデーモンリロード systemctl docker.service を再起動します。 新しいログ記録ポリシーをテストするには、次のコマンドを使用してコンテナを作成します。 docker run -d --rm alpine:3.6 sh -c "while true; do echo hello world; usleep 10; done" このアルパイン コンテナーは、10 マイクロ秒ごとに hello world を出力し、高頻度の出力を維持し、ログ ファイルをすばやく生成します。 注: シェル内の時間制御 1. sleep: デフォルト値は秒です。 2. usleep: デフォルトはマイクロ秒単位です。 1秒 = 1000ミリ秒 = 1000000マイクロ秒 前の記事のログファイルの表示方法に従ってください #パスワード コンテナ # ls -lah 合計 260万 drwx------ 4 root root 4.0K 3月24日 16:22 . drwx------ 3 root root 4.0K 3月24日 16:21 .. -rw-r----- 1 ルート ルート 647K 3月24日 16:22 aa3307f5b42770319129e126122be123cfd8e0ebe1c412371ad27e62faa007e3-json.log -rw-r----- 1 ルート ルート 977K 3月24日 16:22 aa3307f5b42770319129e126122be123cfd8e0ebe1c412371ad27e62faa007e3-json.log.1 -rw-r----- 1 ルート ルート 977K 3月24日 16:21 aa3307f5b42770319129e126122be123cfd8e0ebe1c412371ad27e62faa007e3-json.log.2 ログ ファイル戦略は 3 つの 1M ファイルを維持することであり、これは私たちの設定と一致していることが簡単にわかります。 テストが完了したら、docker stop aa3 を使用してテスト サイトをクリーンアップすることを忘れないでください。実際のニーズに応じて、max-size を調整することもできます。 nginx コンテナ ログ Docker コンテナのログ戦略を理解した後、よく使用されるコンテナがどのように処理されるかを見てみましょう。まずは nginx コンテナを見てみましょう。 まず、docker run -it --rm -d -p 80:80 nginx:1.15.8-alpine で nginx コンテナを作成し、次に docker exec -it b6d sh でコンテナに入り、/etc/nginx/nginx.conf をチェックして次の内容を確認します。 error_log /var/log/nginx/error.log 警告; access_log /var/log/nginx/access.log メイン; つまり、nginx はエラー ログとアクセス ログを対応するログ ファイルに書き込みます。 /var/log/nginx ディレクトリの表示を続けます。 ログファイル 合計 0 drwxr-xr-x 2 root root 39 3月 4日 07:54 . drwxr-xr-x 3 root root 18 3月 4 07:54 .. lrwxrwxrwx 1 root root 11 1月 31 23:32 access.log -> /dev/stdout lrwxrwxrwx 1 root root 11 Jan 31 23:32 error.log -> /dev/stderr ここで秘密が登場します。access.log ファイルはソフト リンクを介して標準出力にリダイレクトされ、エラー ログ error.log は標準エラーにリダイレクトされます。このように、docker log コマンドを使用して nginx アクセス ログを表示できます。 さらに検証するには、次の内容を含む nginx dockerfile ファイルを確認します。 # リクエストとエラーのログを docker ログコレクターに転送する && ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log nginx イメージの作成時にログ ファイルの出力が定義されていることがわかります。 また、docker stop 524 を使用してサイトをクリーンアップします。このクリーンアップ手順は、今後導入されることはありません。 mysql コンテナ ログ MySQLコンテナを起動する docker run --rm -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 mysql コンテナのログ出力を確認するのは難しくありません。以下はその抜粋です。
MySQL Dockerfile ファイルを見ると、MySQL イメージの起動エントリが entrypoint.sh にあることがわかります。スクリプトから、次のことがわかります。 echo 'データベースを初期化しています' "$@" --initialize-insecure echo 'データベースが初期化されました' これは、mysql コンテナが起動されたときの出力の対応方法です。 entrypoint.sh は比較的複雑です。主な機能は、mysqld を起動してログを出力することです。この記事の焦点ではないため、詳しくは紹介しません。 要約する
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 1) (パート 35)
この記事では、3Dカルーセル効果をjsで実装するための具体的なコードを参考までに共有します。具体的な...
1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...
1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...
特定のインターフェースをリクエストするときに、指定されたテキスト文字列または JSON 文字列を返す...
1. ボックスを中央に配置するいくつかの方法を記録します。 1.0、マージン幅固定、高さ中央配置。 ...
CSSでtext-align、margin: 0 autoを使用して中央揃えにするtext-alig...
<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...
Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...
1. エフェクト表示JavaScript で書かれた宇宙飛行士のウォッチフェイス。 http://x...
目次概要1. グローバル登録2. 現地登録3. モジュールシステムへのローカル登録概要コンポーネント...
この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...
//文法: @media mediatype and | not | only (メディア機能) ...
HTML の空白ルールHTML では、コンテンツ内の複数のスペースは通常 1 つとみなされ、連続する...
1. ダウンロード1. MySQL msi 公式 Web サイトから最新のダウンロードをクリックす...
序文ブロガーが使用しているサーバーは Alibaba Cloud から購入したものです。実際、Ali...