Skip to main content

第06章:ログを見る(logs)=トラブル対応の第一歩🪵👀✨

「動かない😵」「すぐ落ちる💥」「なんか変🤔」 そんなとき 最初に見るべきはログ です!ログは“現場の目撃証言”みたいなもの🕵️‍♂️✨


1) まず超重要:Dockerの「ログ」って何?📣

Dockerで見られるログは、基本 コンテナ内プロセスが STDOUT / STDERR に出した文字 です🧾 つまり、Nodeなら console.log()console.error() がそのままログになります😊 (Dockerはその出力を集めて、docker logs で見せてくれる感じ)🐳📦 (Docker Documentation)


2) まず覚える“最短3コマンド”⚡

困ったら、この順でOKです👇😄

  1. コンテナが生きてる? docker ps 👀
  2. 落ちてても一覧にいる?(落ちた子はこっち) docker ps -a 📋
  3. ログを見る! docker logs <コンテナ名> 🪵

docker logsdocker container logs の別名(エイリアス)だよ👌 (Docker Documentation)


3) ハンズオン①:ログが流れ続ける“練習用コンテナ”を作る🏃‍♂️🪵

まずはログが分かりやすい子を起動します🎬

docker run --name log-demo -d busybox sh -c 'i=0; while true; do echo "hello $i"; i=$((i+1)); sleep 1; done'

✅ 3-1. ログをそのまま見る

docker logs log-demo

✅ 3-2. “最後の20行だけ”見る(超よく使う!)🔥

docker logs --tail 20 log-demo

✅ 3-3. 追尾する(流れ続けるのを見る)👀📡

docker logs -f log-demo

止めたいときは Ctrl + C(コンテナは止まらないよ!)🧯✨ --follow/-f--tail は、公式でも定番の組み合わせです👌 (Docker Documentation)


4) ハンズオン②:すぐ落ちるコンテナを“ログで救出”する🚑💥

「起動した瞬間落ちる😵」をわざと作って、ログで原因を掴みます!

2026-02時点のNodeは、v25がCurrent / v24がActive LTS です(学習ではLTSを選ぶと安心寄り)🧠✨ (nodejs.org)

docker run --name crash-demo node:24 node -e "console.log('start'); throw new Error('boom!')"

すぐ終了するので、まず存在確認👇

docker ps -a

そしてログ👇

docker logs crash-demo

💡ここで出る Error: boom! とスタックトレースが “犯人の足跡” 🐾 「どこで落ちたか」「何が原因っぽいか」をまず拾えます😊


5) logsの“神オプション”まとめ🧙‍♂️✨(この章の主役)

5-1. タイムスタンプを付ける ⏱️

docker logs -t log-demo

-t/--timestampsRFC3339Nano 形式の時刻が付くよ📅✨ (Docker Documentation)

5-2. “◯分前から”だけ見る 🕒

docker logs --since 10m log-demo

--sinceRFC3339 / UNIX time / 期間(例: 1m30s, 3h) などで指定できます👍 (Docker Documentation)

5-3. “この時刻まで”だけ見る(地味に便利)🧊

docker logs --until 2m log-demo

--until--since と同じノリで使えます👌 (Docker Documentation)

5-4. 「詳細も出して」🧾(上級者の入口)

docker logs --details log-demo

--details は、コンテナ起動時に --log-opt で渡した追加属性(環境変数やラベル等)を出せます📌 (Docker Documentation)


6) “ログを探す”小技:検索してノイズを減らす🔎🧹

6-1. WSLターミナル(grep)🐧

docker logs --tail 300 log-demo 2>&1 | grep -E "error|warn|exception|fail"

6-2. PowerShell(Select-String)🪟

docker logs --tail 300 log-demo 2>&1 | Select-String -Pattern "error|warn|exception|fail"

💡2>&1標準エラーも一緒に 検索したいときの定番です👍✨


7) VS Codeでログを見る(CLIが苦手でもOK)🧑‍💻👀

VS CodeのDocker拡張から、コンテナを右クリックして “View Logs” でログ表示できます✨ (ターミナルに出るので、そのままコピペしてAIに投げられるのも強い🤖) (Visual Studio Code)


8) 「ログが見れない😵」ときのチェック✅

8-1. コンテナが消えてる

--rm 付きで起動してた / 片付けで rm した → もうログも消えてる ことがあります🧹💨 (消す前にログ確保が基本!)

8-2. ログドライバの都合

docker logs が読めるのは(Community Engineだと)主に local / json-file / journald のときです📌 それ以外のドライバだと、外部のログ基盤側で見る必要が出ます👀🌩️ (Docker ドキュメント)


9) (予告)Composeになったら“まとめてログ”を見る📦📦📦🪵

後半でAPI+DBをComposeにしたら、ログはこれが強い💪✨

docker compose logs --tail 100 -f

--follow, --tail, --since, --until, --timestamps などが使えます👌 (Docker Documentation)


10) AI活用テンプレ(そのまま貼ってOK)🤖✨

10-1. まず原因候補と次の確認手順を出してもらう🧠

以下は docker logs の出力です。
1) 何が起きているかを1〜2行で要約
2) 原因候補を優先度順に3つ
3) それぞれを確認する具体コマンド(dockerコマンド中心)を提示
4) 直す方針(最小修正)を提案
---
(ここにログを貼る)

10-2. Node/TSっぽいエラーのとき(特に効く)⚡

このログはNode.js/TypeScriptのAPIです。
スタックトレースから「最初に疑うべきファイル/行」と「ありがちな原因」を教えて。
ついでに、再現・切り分けの手順を3ステップで。
---
(ログ)

10-3. “落ちたコンテナ”救出用🛟

コンテナが起動直後に終了します。
docker ps -a と docker logs の結果を貼るので、
次に見るべきポイント(設定/環境変数/ポート/依存)を優先順位つきで教えて。
---
(出力を貼る)

11) ミニ演習(手を動かすやつ)🏋️‍♂️✨

演習A:追尾できる?

  1. log-demo-f で追尾👀
  2. 別ターミナルで docker stop log-demo してみる🛑
  3. 追尾側に何が出るか観察👁️✨(“いつ止まったか”が分かる!)

演習B:時間で絞れる?

  1. log-demo をしばらく動かす⏳
  2. --since 30s で直近だけ表示🕒
  3. -t も付けて「時刻と行数の関係」を見る📅

演習C:落ちた原因を一言で言える?

  1. crash-demo のログを見て🪵
  2. 「何が原因?」を 1行で 書く✍️
  3. AIに貼って「直し方」を聞く🤖✨

12) チェック問題(サクッと)📝✅

  1. docker logs が見ているのは、基本どの出力?(2つ)
  2. 末尾50行だけ見たいときのオプションは?
  3. ログを追尾してるだけでコンテナは止まる?止まらない?
  4. --since 10m の “10m” は何を意味する?
  5. Composeで複数サービスのログをまとめて見るコマンドは?

必要なら、次の章(execで中に入る🔦)へ行く前に、「Todo APIで“良いログの出し方”」(info/warn/error、リクエストID、1行JSONログの雰囲気)もこの第6章の続きとして追記できます😄🧩✨