Skip to main content

第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) トラブル時の最短ループ(これだけ覚えて!)🧯🔁

動かないときは、だいたいこの順で勝てます😼

  1. docker compose ps(動いてる?落ちてる?)👀
  2. docker compose logs --tail 200(最後の悲鳴を見る)📜
  3. 直したら docker compose up -d(起動し直し)🔁
  4. グチャったら 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(強い)

次の章では「プロジェクト名」と「同居しても衝突しない仕組み」へ進みます🏙️🧩