メインコンテンツまでスキップ

第04章:止める・消す(stop / rm)で後片付けマスター🧹

この章は「増えたコンテナを、迷わず片付けられる人」になる回です😆 Dockerは触ってるとコンテナがどんどん増えます。片付けができると、トラブル時も落ち着けます🧘‍♂️✨


この章でできるようになること🎯✅

  • 実行中コンテナを 止めるdocker stop)🛑
  • 止まったコンテナを 消すdocker rm)🗑️
  • 一覧で「今どうなってる?」を確認できる(docker ps / docker ps -a)📋👀
  • 「消せないんだけど!?😵」の典型パターンを突破できる💪

まずは超イメージ:コンテナの一生👶➡️🏃➡️💤➡️🗑️

ざっくりこういう状態遷移だと思ってOKです🙂

  • Running(動いてる) 🏃💨
  • Exited(止まってる) 💤
  • Removed(削除済み) 🗑️✨

ポイントはこれ👇

  • stop:Running → Exited(止めるだけ)🛑
  • rm:Exited → Removed(削除)🗑️
  • Runningのまま rm は基本できない(だからまず止める)⚠️

docker stop はコンテナ内のメインプロセスにまず SIGTERM を送って、猶予後に SIGKILL…という「なるべく優しく止める」挙動です🙂(待ち時間も設定できます)(Docker Documentation)


ハンズオン:わざと増やして、ちゃんと片付ける🧪🧹

1) まずは“片付け用”のコンテナを2個作る📦📦

(中でずっと待機するだけの軽い例です)

docker run -d --name demo-sleep-1 alpine:3.20 sleep 9999
docker run -d --name demo-sleep-2 alpine:3.20 sleep 9999

2) 「今動いてる?」を見る👀📋

docker ps

→ ここには 動いてる(Running) ものだけが出ます🏃💨

止まったのも含めて全部見たいときは👇

docker ps -a

3) 1個止める🛑

docker stop demo-sleep-1

補足:待ち時間(猶予)を短くしたいなら -t(秒)も使えます⌛

docker stop -t 3 demo-sleep-1

stop の挙動と -t/--timeout は公式リファレンスにまとまってます(Docker Documentation)


4) 止まったのを確認する✅

docker ps
docker ps -a

demo-sleep-1 が Exited(止まってる)になってたらOK😆✨


5) 止まったコンテナを消す🗑️✨

docker rm demo-sleep-1

これで demo-sleep-1消えました(Removed)🎉


6) “ありがち事故”をわざと踏む😈👉😵(学習効率UP)

次を実行してみてください👇

docker rm demo-sleep-2

たぶん「動いてるから消せないよ」系のエラーになります😇 ✅ 正攻法はこれ:

docker stop demo-sleep-2
docker rm demo-sleep-2

rm のちょい大事オプション2つ⚙️🧠

① 強制削除 -f(最終手段)💥

実行中でも強制的に消すやつです(中のプロセスに SIGKILL で強制終了して削除)⚠️(Docker ドキュメント)

docker rm -f <container>

② ボリュームも一緒に -v(でも“匿名ボリューム”だけ)🧽

docker rm -vコンテナに紐づくボリュームも削除します。 ただし 名前付き(named)ボリュームは削除されない ので、うっかり全部消えるわけじゃないのが安心ポイント🙂(Docker Documentation)

docker rm -v <container>

まだボリューム章じゃないので、今は 「-v は“ついでに消えるデータ”が増えることがある⚠️」 くらいの感覚でOKです😊


まとめて掃除したい人へ:prune(便利だけど注意)🧹⚡

「止まったコンテナが大量にある…」なら👇

docker container prune

さらに「24時間以上前に止まったやつだけ消したい」みたいに絞れます🧠✨(Docker Documentation)

docker container prune --filter "until=24h"

似たやつで docker system prune もありますが、これはネットワークやイメージ等まで掃除対象が広がりがちなので、初心者のうちは慎重にね⚠️🧯(Docker Documentation)


よくある詰まりトップ5😵➡️🙂(ここだけ覚えれば強い)

  1. rmできない:だいたい「まだ動いてる」 → docker stopdocker rm

  2. 名前が分からんdocker ps -a で一覧📋

  3. コンテナ増えすぎ → まずは止まったやつだけ docker container prune🧹(Docker Documentation)

  4. -f 使いすぎ問題 → まず stop、本当にダメな時だけ rm -f💥(Docker ドキュメント)

  5. 消したのに容量が…? → 章が進むと「イメージ」「ボリューム」「ビルドキャッシュ」も絡みます(次の章以降で回収!)📦🧱🧰


AI活用コーナー🤖✨(そのままコピペOK)

✅ 片付けチェックリストを作らせる

  • 「Dockerのコンテナを安全に片付ける手順を、初心者向けチェックリスト(5〜8項目)にして。docker ps -astoprm→確認、まで入れて。」

✅ エラー文を貼って“次の一手”を出させる

  • 「このエラーの意味を1行で説明して、次に打つコマンド候補を3つ出して。危険なコマンドには⚠️を付けて。」

✅ 自分の状況に合う掃除コマンドを提案させる

  • 「“止まってるコンテナだけ”を消したい。安全寄りのコマンドを提案して。system prune は原則使わない方向で。」

ミニ課題🏋️‍♂️🎯(10分でOK)

  1. demo-ademo-b を作る(sleepでOK)📦📦
  2. demo-a だけ止めて、ps -a で状態確認👀
  3. demo-a を削除して、一覧から消えたことを確認✅
  4. 最後に demo-b も止めて削除🧹✨

まとめチートシート📌😆

## 動いてるのだけ
docker ps

## 全部(止まってるのも)
docker ps -a

## 止める
docker stop <name-or-id>

## 消す(止まってる前提)
docker rm <name-or-id>

## 最終手段:強制削除
docker rm -f <name-or-id>

## 止まったコンテナをまとめて掃除
docker container prune

次の章(第05章)では「イメージが溜まってディスクが死ぬ問題🪦💾」を、images / rmi でスッキリさせます🧽✨