第06章:ログを見る(logs)=トラブル対応の第一歩🪵👀✨
「動かない😵」「すぐ落ちる💥」「なんか変🤔」 そんなとき 最初に見るべきはログ です!ログは“現場の目撃証言”みたいなもの🕵️♂️✨
1) まず超重要:Dockerの「ログ」って何?📣
Dockerで見られるログは、基本 コンテナ内プロセスが STDOUT / STDERR に出した文字 です🧾
つまり、Nodeなら console.log() や console.error() がそのままログになります😊
(Dockerはその出力を集めて、docker logs で見せてくれる感じ)🐳📦 (Docker Documentation)
2) まず覚える“最短3コマンド”⚡
困ったら、この順でOKです👇😄
- コンテナが生きてる?
docker ps👀 - 落ちてても一覧にいる?(落ちた子はこっち)
docker ps -a📋 - ログを見る!
docker logs <コンテナ名>🪵
docker logsはdocker 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/--timestamps は RFC3339Nano 形式の時刻が付くよ📅✨ (Docker Documentation)
5-2. “◯分前から”だけ見る 🕒
docker logs --since 10m log-demo
--since は RFC3339 / 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:追尾できる?
log-demoを-fで追尾👀- 別ターミナルで
docker stop log-demoしてみる🛑 - 追尾側に何が出るか観察👁️✨(“いつ止まったか”が分かる!)
演習B:時間で絞れる?
log-demoをしばらく動かす⏳--since 30sで直近だけ表示🕒-tも付けて「時刻と行数の関係」を見る📅
演習C:落ちた原因を一言で言える?
crash-demoのログを見て🪵- 「何が原因?」を 1行で 書く✍️
- AIに貼って「直し方」を聞く🤖✨
12) チェック問題(サクッと)📝✅
docker logsが見ているのは、基本どの出力?(2つ)- 末尾50行だけ見たいときのオプションは?
- ログを追尾してるだけでコンテナは止まる?止まらない?
--since 10mの “10m” は何を意味する?- Composeで複数サービスのログをまとめて見るコマンドは?
必要なら、次の章(execで中に入る🔦)へ行く前に、「Todo APIで“良いログの出し方”」(info/warn/error、リクエストID、1行JSONログの雰囲気)もこの第6章の続きとして追記できます😄🧩✨