docker compose down 默认停容器、删容器、移除项目网络,但保留数据卷和镜像;加 --volumes 删除命名卷和匿名卷;加 --rmi local/all 可选删构建镜像;组合使用可彻底重置环境。
直接在 docker-compose.yml 所在目录运行 docker compose down,就能停止并清理编排的容器、网络等资源——它默认会停容器、删容器、移除项目专属网络,但不碰数据卷和镜像,这是最安全的日常清理方式。
基础清理:停容器 + 删容器 + 清网络
这是最常用也最稳妥的操作,适合开发调试后收尾:
- 确保当前终端已进入包含
docker-compose.yml的项目目录 - 执行
docker compose down - 命令会按顺序:发送
SIGTERM停容器 → 等待 10 秒(可自定义)→ 强杀未退出的 → 删除所有容器 → 移除项目网络(包括默认网络和自定义网络) - 匿名卷、命名卷、镜像全部保留,避免误删数据库等重要数据
连数据卷一起清掉
如果需要重置状态(比如测试环境或本地开发彻底重来),加 --volumes 或简写 -v:
-
docker compose down --volumes会删除volumes:下定义的命名卷,以及服务挂载的匿名卷 - 正在被其他容器使用的卷会被自动跳过,并提示警告
- 该操作不可逆,执行前请确认卷中无关键数据
顺便清理构建的镜像
反复 build 容易积累大量本地镜像,用 --rmi 可一并处理:
-
docker compose down --rmi local:只删build:生成、没打 tag 的镜像,推荐日常使用 -
docker compose down --rmi all:删所有服务用到的镜像(含image:拉取的),慎用,可能影响其他项目 - 系统会检查镜像是否被其他容器引用,有依赖就跳过,不会强删
终极组合:彻底从头开始
开发或 CI 场景下想完全清空,可组合多个参数:
-
docker compose down --volumes --rmi all= 停容器 + 删容器 + 清网络 + 删所有卷 + 删所有关联镜像 - 执行前建议先运行
docker compose ps确认当前服务状态 - 如还需清理悬空镜像、未用网络等全局残留,可追加
docker system prune -f,但需评估对其他项目的影响











