首页/云/云与容器速查/docker compose down 停止并清理
容器与 Docker106 条

docker compose down 停止并清理

停止并删除本项目的容器与网络:-v 连具名卷一起删、--rmi 删镜像、--remove-orphans 清理遗留容器。生产执行 down -v 等于删数据,务必确认。

云与容器速查云更新于 2026-10-13

docker compose down 是什么

compose down 停止并删除本项目创建的资源:容器和项目专属网络,默认不动数据卷与镜像。它是「拆干净」的入口,也是误删数据的高发区——加了 -v 会把具名卷一并删除,数据库文件随之消失。部署升级时通常不需要 down,直接 up -d 就能滚动替换,停机时间更短。

基本信息

默认行为停容器 + 删容器 + 删本项目网络
-v连同顶层声明的具名卷与匿名卷一并删除,数据丢失
--rmi all 或 local删除镜像,all 会删掉被其他项目共享的镜像
--remove-orphans清理 compose 文件里已删除服务遗留的容器
--timeout设置停止容器的等待秒数,超时后强制结束

典型使用场景

  • 开发环境收工:停掉整栈并释放网络与容器名
  • 重新初始化:测试环境需要清空数据重跑,此时才用 -v
  • 清理遗留:改了 compose 文件后清掉已删除服务的孤儿容器
  • 排障重置:网络配置异常时彻底重建项目网络
  • 磁盘回收:确认数据已备份后,删除镜像释放空间

使用示例

使用示例
docker compose down                      # 停容器删容器删网络,保留数据卷
docker compose down --remove-orphans     # 同时清理已删除服务的遗留容器
docker compose down --rmi local          # 删除本项目构建的镜像
docker compose down -v                   # 危险:连数据卷一起删,数据丢失
docker compose up -d --build             # 常规升级:不 down,直接重建变更部分

参数影响对照

参数容器网络数据卷镜像
down删除删除保留保留
down -v删除删除删除保留
down --rmi local删除删除保留删除本地构建的
down --rmi all删除删除保留全部删除
down --remove-orphans含孤儿容器删除保留保留
生产环境执行 down -v 等于删数据:数据库文件就在具名卷里,删掉无法通过重新 up 恢复。执行前先确认卷名与备份状态。
想保留数据就不要加 -v;升级部署建议用 up -d --build 而不是 down 再 up,前者只替换有变化的部分,停机时间明显更短。
只停服务不删资源时用 stop 而不是 down:stop 保留容器与网络,下次 start 就能恢复现场,适合临时停服维护的场景。

易错点

  • 测试环境习惯性加 down -v,迁到生产照抄导致数据库卷被清空
  • down 时网络删除失败,原因是还有外部容器接在该网络上
  • 用 --rmi all 删掉了被其他项目共享的基础镜像,其他项目拉取失败
  • 以为 down 会清干净,遗留的具名卷长期占着磁盘

数据来源与参考

  • Docker Docs:docker compose down

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌