首页/云/Docker 容器速查/docker compose down 停止并清理
Compose 编排55 条

docker compose down 停止并清理

停止并删除本项目容器与网络:默认保留具名卷;-v 连卷一起删,--rmi 按需删除镜像,属清理类操作先看清楚参数。

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

compose down 是什么

docker compose down 停掉项目里的容器并清理资源:默认删除容器与项目网络,容器可写层里的数据随之消失。加 -v 会连具名卷一起删除。它和 stop 的区别在于,down 之后下次 up 相当于重建环境。

基本信息

用途停止项目并按需清理容器、网络、卷、镜像
默认清理容器与项目网络
-v删除声明的具名卷与匿名卷,数据一并消失
--rmilocal 删除本项目使用的镜像,all 删除全部镜像
--remove-orphans清理不属于当前 compose 文件的残留容器

典型使用场景

  • 测试环境收尾:跑完用例把整套环境一次清掉,不留残留资源
  • 本地切换分支或换环境时重建干净环境
  • 回收项目网络与容器,避免大量停止容器长期堆积
  • 排查网络被占用类问题时清掉历史网络重新创建
  • CI 流水线结束阶段清理本次运行创建的全部资源
  • 重置测试数据库:在确认数据可丢的前提下用 -v 彻底重来

示例

示例
docker compose down                       # 停容器并删除项目网络
docker compose down --remove-orphans      # 连不属于本文件的残留容器一起清理
docker compose down -v                    # 卷一并删除,数据库数据会被清空
docker compose down --rmi local           # 顺带删掉本项目构建出的镜像
docker compose ps -a                      # 执行后确认没有残留容器

down 与 stop 的区别

命令容器网络与卷下次 up 的效果
stop停止但保留保留沿用原容器,环境不变
down删除删除项目网络重建容器与网络
down -v删除网络与卷一并删除数据清空,环境全新
down --rmi local删除删除项目网络,镜像也删需要重新构建镜像
down 只处理当前项目(按项目名匹配)的资源,其他项目不受影响,动手前确认项目名是关键一步。
数据库卷默认不在清理范围内,想连数据一起重置必须显式加 -v,这一点在测试环境重置时常被忽略,导致脏数据残留。
down 之后重新 up 会创建新网络与新容器,容器地址随之变化,任何硬编码地址的配置都会失效,跨容器访问应当用服务名。

易错点

  • -v 在测试环境被随手执行把数据库卷删掉,数据无法恢复,执行前明确确认数据是否需要保留
  • 以为 down 已经清空一切:默认只删容器与网络,卷里的数据仍在,误判成环境已重置干净
  • 手工创建或换过项目名的容器不会被 down 清理,同名项目混用时需要加 --remove-orphans
  • 项目名判断错(目录或 -p 参数)时会清理另一个项目,可能把正在使用的环境停掉

数据来源与参考

  • Docker 官方 CLI 参考:docker compose down(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌