第03章:まずは起動の儀式を覚える(up / down / ps / logs)🧰🪄
この章は「毎日使う4コマンド」だけで、起動→確認→ログ→片付けまで一気に体に入れる回です💪😺 (この4つが回せるようになると、Composeが一気に“道具”になります🚀)
1) まず覚える結論:この4つだけでOK🙆♂️✨
- 起動する 👉 docker compose up
- 状態を見る 👉 docker compose ps
- ログを見る 👉 docker compose logs
- 片付ける 👉 docker compose down
「え、start/stop/restartは?」って思うけど…最初はこの4つだけで十分です😼🧠
2) ミニ実習:30秒で“動くやつ”を用意する🏃♂️💨
この章だけの超ミニ構成でいきます👇 NodeでHTTPサーバ1個を立てて、ポートが見えて、ログも出る、という最短セットです🎯
2-1) フォルダ構成📁
同じフォルダに2ファイル置きます。
- compose.yaml
- server.mjs
2-2) server.mjs を作る🧪
// server.mjs
import http from "node:http";
const port = 3000;
const server = http.createServer((req, res) => {
console.log("request:", req.method, req.url);
res.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
res.end("ok\n");
});
server.listen(port, "0.0.0.0", () => {
console.log(`listening on http://0.0.0.0:${port}`);
});
※ “0.0.0.0” にしておくと、コンテナ外(Windows側)からアクセスできて気持ちいいです😆🌐
2-3) compose.yaml を作る🐳
今回は「安定版のLTS」を使う気分で、Node 24系を例にします(2026-02時点でActive LTS扱い)📌 (Node.js)
services:
api:
image: node:24
working_dir: /app
volumes:
- ./:/app
command: node server.mjs
ports:
- "3000:3000"
Docker Hubの公式Nodeイメージは “node:24” みたいなタグ運用です🧠 (hub.docker.com)
3) docker compose up:起動のメイン儀式🔥
3-1) まずは「画面にログが流れる起動」😺📺
docker compose up
これをやると、各コンテナの出力(ログ)が束ねて表示されます。まさに「起動しながら実況を見る」感じ📣 (Docker Documentation)
✅ 起動できた合図はだいたいこれ👇
- “listening …” みたいなログが出た
- ブラウザで http://localhost:3000 を開いて “ok” が出た🎉
3-2) 大事:Ctrl + C の挙動⚠️
この「アタッチ起動(画面にログ出るやつ)」は、Ctrl + C するとコンテナが止まります🛑 (「コマンドが終わる=全部止まる」) (Docker Documentation)
「え、落ちた!😱」って最初にビビるポイントなので先に言いましたw
4) docker compose up -d:バックグラウンド起動🕶️✨
4-1) ふだんの開発はこっちが多い💡
docker compose up -d
-d(detach)にすると、裏で起動して動き続けます🐢💨 (Docker Documentation)
「ログは見ないの?」→ 見ます。次の logs で見ます😼
4-2) 便利なオマケ:--wait(起動完了まで待つ)⏳🩺
docker compose up -d --wait
--wait は サービスが running/healthy になるまで待ってくれるオプションです(しかもdetach扱いになります)🙆♂️ (Docker Documentation) 「起動したつもりだけど、まだ中で準備中だった…」を減らせます✨
5) docker compose ps:起動できたか最短確認👀✅
5-1) まずは素の ps
docker compose ps
これで「今のプロジェクトのコンテナ一覧」が出ます。**デフォルトは“動いてるやつだけ”**表示です📋 (Docker Documentation)
ここで見るポイントは3つ👇
- STATUS:Up になってる?😺
- PORTS:0.0.0.0:3000->3000/tcp みたいになってる?🌐
- SERVICE:api になってる?(どのサービスか)🧩
5-2) 止まってるのも見たい(トラブル時は必須)🧯
docker compose ps --all
止まったコンテナ(exited)まで出せます。原因追跡の第一歩👣 (Docker Documentation)
5-3) ステータスで絞る(地味に便利)🎯
docker compose ps --status=exited
status の取り得る値(running/exited など)が定義されています📌 (Docker Documentation)
5-4) “機械で読む” 出力にする(AIやスクリプト向け)🤖🧠
docker compose ps --format json
JSONで出るので、AIに貼って相談するときも楽です😆 (Docker Documentation)
6) docker compose logs:ログはここで見る📜🔎
6-1) まず全部ログ
docker compose logs
6-2) サービスを絞る(まずはこれが基本)🎛️
docker compose logs api
6-3) リアルタイム追跡(追っかけ)🏃♂️💨
docker compose logs -f
logs の follow(-f)が公式オプションとしてあります📌 (Docker Documentation)
6-4) “最後だけ見たい”(ログ洪水回避)🌊🧯
docker compose logs --tail 50
tail や timestamps もあります🕰️ (Docker Documentation)
6-5) 「直近10分だけ」みたいに絞る⏱️
docker compose logs --since 10m
since/until が使えます(相対時間もOK)🧠 (Docker Documentation)
7) docker compose down:片付けの儀式🧹✨
7-1) 基本の down(まずはこれ)
docker compose down
down は up で作られたコンテナやネットワーク等を止めて消すコマンドです🧼 (Docker Documentation)
ここ超重要👇
- デフォルトで消える:コンテナ、(Composeで作った)ネットワークなど (Docker Documentation)
- デフォルトで消えない:ボリューム(データ)🧠 (Docker Documentation)
- external 指定のネットワーク/ボリュームは消えない(安全装置)🔒 (Docker Documentation)
7-2) 注意:データも消す down -v(強い)💣😱
docker compose down -v
-v は named volume と anonymous volume も消します。つまりDBを載せてると「データごと消える」系です💥 (Docker Documentation) (この教材で後半DBやるとき、ここはガチで重要になります)
7-3) “孤児コンテナ” も消す🧟♂️🧹
docker compose down --remove-orphans
定義から外れたサービスのコンテナ(孤児)を消せます🧼 (Docker Documentation)
8) トラブル時の最短ループ(これだけ覚えて!)🧯🔁
動かないときは、だいたいこの順で勝てます😼
- docker compose ps(動いてる?落ちてる?)👀
- docker compose logs --tail 200(最後の悲鳴を見る)📜
- 直したら docker compose up -d(起動し直し)🔁
- グチャったら docker compose down → up -d(作り直す)🧹🚀
※「ps で exited だったら logs 見る」が超鉄板です✅
9) AIの使いどころ(めちゃ効く)🤖✨
9-1) ログ解析をAIに投げる(最強)🔥
- docker compose logs --tail 200 api の出力を貼る
- こう聞く👇
このログのエラー原因を1つに絞って説明して。
次に、最短で試すべき手順を3つだけ出して。
Windows上のDocker Compose前提で。
“手順を3つだけ”って縛ると、迷子になりにくいです🧭😺
9-2) コマンド忘れ防止(チート)📌
Composeの起動確認でよく使うコマンドを、
「起動」「状態確認」「ログ」「片付け」の4カテゴリで
1行ずつにまとめて。
→ “自分用チートシート”が一瞬でできます😆📝
10) 章末ミニチェック(3分)✅🎓
できたら勝ち🏆
- docker compose up -d で起動できた?🚀
- docker compose ps で STATUS と PORTS を読めた?👀
- docker compose logs -f api でリクエストログが流れた?📜
- docker compose down で片付けできた?🧹
おまけ:この章の“暗記カード”🃏✨
起動:docker compose up / docker compose up -d
確認:docker compose ps / docker compose ps --all
ログ:docker compose logs / docker compose logs -f / --tail / --since
片付:docker compose down / docker compose down -v(強い)
次の章では「プロジェクト名」と「同居しても衝突しない仕組み」へ進みます🏙️🧩