目录

docker compose down 教程:停止并删除容器、网络与 Volume

docker compose down 会停止并删除 Compose 项目的容器和网络。

语法

docker compose down [参数] [服务名称...]
参数说明
-v, --volumes同时删除 compose.yaml 中声明的具名 Volume 和匿名 Volume(数据会丢失)
--rmi local|all同时删除镜像。local 只删除没有自定义 tag 的镜像(由 Compose 构建),all 删除所有服务使用的镜像
--remove-orphans同时删除 compose.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 个容器和网络,Volume ref-compose_cache_data 会保留。
  • down -v -t 1:还会删除 Volume,Redis 中的数据也会随之丢失。-t 1 会让每个容器最多等待 1 秒,然后强制停止,在练习环境中可以加快操作;在生产环境中请保留默认值,让程序有时间正常结束。

如何选择 down、stop 和 rm

命令容器网络Volume用途
docker compose stop停止,保留保留保留暂停服务,之后运行 start 恢复
docker compose rm删除已停止的容器保留保留很少单独使用
docker compose down停止并删除删除保留常规关闭,数据安全
docker compose down -v停止并删除删除删除完全重新开始,例如重新初始化数据库

数据库初始化脚本和密码变量只会在 Volume 为空时生效,因此只有在“修改设置后想重新初始化”时才需要使用 down -v,原因请参见 MySQL。

相关章节

动手练习

练习:用一条命令停止并删除项目的容器、网络以及 Compose 自行构建的镜像,同时保留数据。

答案
docker compose down --rmi local

不加 -v,Volume 就会保留。

常见问题

docker compose down 会删除数据库中的数据吗?

不加参数**不会**,Volume 会保留,下次运行 up 时数据还在。只有加上 -v 才会删除 compose.yaml 中声明的 Volume。

down 之后镜像还在吗?

还在。要删除 Compose 构建的镜像,请用 --rmi local;要连下载的镜像也一起删除,请用 --rmi all。

只想暂时停止,不想删除容器怎么办?

使用 docker compose stop,之后运行 docker compose start 即可恢复。

更新于 2026年10月14日