【Docker】各コンテナのエラーログなどをリアルタイムで出力確認する方法

Dockerのログをリアルタイムでモニタリングする方法

Dockerログをリアルタイムで確認する

「ステータスコード200を確認したい!」「なぜエラーになったんだ!?詳細は?」など開発していると躓くことがしばしばありますが、その度にエラーログのファイルを確認するのがとても面倒。

だけど、ログ解析は開発を進める上でしっかり確認していきたいですよね!?

そんなの時に便利なコマンドをご紹介します。

手順としては、

  1. DockerのコンテナIDを調べる
  2. DockerのコンテナIDを添えてコマンド実行

主に上記2つの手順になります。

稼働中のコンテナIDを確認する方法

$ docker container ls

上記コマンドを実行することにより、下記のような稼働中のコンテナの一覧が出力されます。

一番左の列の16進数「CONTAINER ID」を今回使用します。なお、「-a」オプションを付けて実行することにより、起動中及び停止中も含めた全コンテナを一覧出力することができます。

CONTAINER ID  IMAGE                 COMMAND         	      CREATED      STATUS     PORTS                             NAMES
4929a2e04fd6  xxx_laravel_8_app     "docker-php-entrypoi…" 3 days ago   Up 3 days  9000/tcp                          xxx_laravel_8_app_1
b7e49b5ec4cd  xxx_laravel_8_web     "nginx -g 'daemon of…" 3 days ago   Up 3 days  0.0.0.0:80->80/tcp                xxx_laravel_8_web_1
0f5672d92045  phpmyadmin/phpmyadmin "/docker-entrypoint.…" 4 months ago Up 13 days 0.0.0.0:8080->80/tcp              xxx_laravel_8_phpmyadmin_1
9ed974dad708  mysql:5.7             "docker-entrypoint.s…" 4 months ago Up 13 days 0.0.0.0:3306->3306/tcp, 33060/tcp db

コンテナIDを用いてphpやnginxのログを確認する

Docker logs」のコマンド用います。オプションに「-f」を添えることにより、出力し続けることができます。終了させたいときにはキーボードの「ctrl + c」を押してください。

Docker logs -f b7e49b5ec4cd

Apacheやnginxのログを確認したいときには、先ほど調べたコンテナIDを添えて上記の例のようにし実行します。

出力例として、下記のようにログが出力されていれば問題ありません。これにより、リアルタイムでモニタリングすることができました。

172.19.0.1 - - [02/Nov/2022:17:32:04 +0000] "POST /info/contactRequest HTTP/1.1" 200 219 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" "-"
172.19.0.1 - - [02/Nov/2022:17:42:28 +0000] "POST /info/contactRequest HTTP/1.1" 200 219 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" "-"
172.19.0.1 - - [02/Nov/2022:17:42:28 +0000] "POST /info/contactRequest HTTP/1.1" 200 219 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" "-"

アクセスログのみ表示する場合は下記のようにします。

Docker logs b7e49b5ec4cd -f 2>/dev/null

エラーログのみ表示したい場合には下記のようにします。

Docker logs b7e49b5ec4cd -f 1>/dev/null

以上。これでサクサク状況を把握できれば、開発もサクサク進むでしょうかね!?

About Naoki 24 Articles
デザインを含めたフロントエンドから、インフラ含めたバックエンドまで広く浅く活動しているエンジニアです。主にSaasの開発・営業・運営管理などをしております。毎日デスマーチがモットーなブラックエンジニアです。 私が管理しているクラウドソフトウェアがこちらです→まとめツール倶楽部『MTCsystem』

Be the first to comment

Leave a Reply

Your email address will not be published.


*


CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)