目次

docker compose down の使い方:コンテナ、ネットワーク、ボリュームを停止・削除する

docker compose down は Compose プロジェクトのコンテナとネットワークを停止して削除します。

構文

docker compose down [參數] [服務名稱...]
オプション説明
-v, --volumescompose.yaml で宣言した名前付きボリュームと匿名ボリュームも削除します(データは失われます)
--rmi local|allイメージも削除します。local はカスタムタグのないイメージ(Compose がビルドしたもの)のみを削除し、all はサービスが使用するすべてのイメージを削除します
--remove-orphanscompose.yaml に存在しなくなったサービスのコンテナも削除します
-t, --timeout 秒數コンテナ停止時に待機する秒数(デフォルトは 10 秒)
--dry-run実行内容を表示するだけです

例

docker compose up で使ったサンプルプロジェクトを使用します。

$ docker compose down
[+] down 4/4
 ✔ Container ref-compose-worker-1 Removed                                                                                                         0.0s
 ✔ Container ref-compose-web-1    Removed                                                                                                         0.2s
 ✔ Container ref-compose-cache-1  Removed                                                                                                         0.2s
 ✔ Network ref-compose_default    Removed                                                                                                         0.0s

$ docker volume ls
DRIVER    VOLUME NAME
local     ref-compose_cache_data

$ docker compose up -d
[+] up 4/4
 ✔ Network ref-compose_default    Created                                                                                                         0.0s
 ✔ Container ref-compose-worker-1 Started                                                                                                         0.3s
 ✔ Container ref-compose-cache-1  Started                                                                                                         0.6s
 ✔ Container ref-compose-web-1    Started                                                                                                         0.8s

$ docker compose down -v -t 1
[+] down 5/5
 ✔ Container ref-compose-web-1    Removed                                                                                                         0.1s
 ✔ Container ref-compose-worker-1 Removed                                                                                                         0.0s
 ✔ Container ref-compose-cache-1  Removed                                                                                                         0.2s
 ✔ Volume ref-compose_cache_data  Removed                                                                                                         0.0s
 ✔ Network ref-compose_default    Removed                                                                                                         0.0s

$ docker volume ls
DRIVER    VOLUME NAME
  • オプションなしの down:3 つのコンテナとネットワークを削除し、ボリューム ref-compose_cache_data は保持されます。
  • down -v -t 1:ボリュームも削除するため、Redis のデータも失われます。-t 1 を指定すると、各コンテナの停止を最大 1 秒だけ待って強制停止するため、練習環境では処理を速められます。本番環境では、プログラムが正常に終了できるようデフォルト値を使ってください。

down、stop、rm の使い分け

コマンドコンテナネットワークボリューム用途
docker compose stop停止、保持保持保持サービスを一時停止し、後で start で再開
docker compose rm停止済みのものを削除保持保持単独で使うことはほとんどありません
docker compose down停止して削除削除保持通常の終了。データは安全です
docker compose down -v停止して削除削除削除データベースの再初期化など、完全にやり直す場合

データベースの初期化スクリプトとパスワード変数は、ボリュームが空の場合にのみ反映されます。そのため、「設定を変更して再初期化したい」ときに down -v が必要です。理由は MySQL を参照してください。

関連する章

練習問題

練習:1 つのコマンドで、プロジェクトのコンテナとネットワークを停止・削除し、Compose がビルドしたイメージも削除してください。ただし、データは保持します。

解答
docker compose down --rmi local

-v を付けなければ、ボリュームは保持されます。

よくある質問

docker compose down でデータベースのデータは削除されますか?

オプションを付けなければ**削除されません**。ボリュームは保持され、次回の up 後もデータは残ります。-v を付けると、compose.yaml で宣言したボリュームが削除されます。

down の後もイメージは残りますか?

残ります。Compose がビルドしたイメージを削除するには --rmi local、ダウンロードしたイメージも含めて削除するには --rmi all を使います。

一時的に停止したいだけで、コンテナは削除したくない場合は?

docker compose stop を使います。その後 docker compose start で再開できます。

更新日 2026年10月14日