
Dockerログをリアルタイムで確認する
「ステータスコード200を確認したい!」「なぜエラーになったんだ!?詳細は?」など開発していると躓くことがしばしばありますが、その度にエラーログのファイルを確認するのがとても面倒。
だけど、ログ解析は開発を進める上でしっかり確認していきたいですよね!?
そんなの時に便利なコマンドをご紹介します。
手順としては、
- DockerのコンテナIDを調べる
- 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
以上。これでサクサク状況を把握できれば、開発もサクサク進むでしょうかね!?
Be the first to comment