docker compose rm 可批量清理已停止的编排容器,默认仅删exited/created状态容器并交互确认;加-f跳过确认,加-v可连删关联匿名卷,支持按服务名精准清理。
直接用 docker compose rm 就能批量清理当前项目中所有已停止的编排容器,无需逐个指定,也不依赖运行状态判断。
默认行为:只删已停止的容器
执行 docker compose rm(不带任何参数)时,它会自动扫描当前目录下的 docker-compose.yml,找出所有属于该项目、且状态为 exited 或 created 的容器,然后列出并询问是否删除。这是最安全的清理方式,不会碰正在运行的容器,也不会误删镜像或网络。
- 系统会提示类似:
Going to remove app_1, db_1, cache_1 - 输入
y确认后才真正执行删除 - 若某容器还在 running 状态,它会被跳过,命令不会报错
跳过确认:加 -f 强制静默删除
日常维护或脚本中需要自动化时,可加上 -f 参数跳过交互确认:
使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。
-
docker compose rm -f—— 删除所有已停止的项目容器,无提示 - 注意:
-f不会强制停止运行中的容器,它仍只作用于已停止的容器 - 如果想连运行中的也一并处理,需配合
docker compose down或先手动 stop
按服务名精准清理
不需要全量清理时,可以限定到具体服务:
-
docker compose rm web—— 只删web服务下已停止的容器(如web_1) -
docker compose rm web db—— 同时删多个服务的已停止容器 - 适用于开发调试中局部重置,保留其他服务容器
连带清理数据卷(谨慎使用)
如果某个服务容器退出后留下了临时数据卷,且确认不再需要,可加 -v 选项一并清除:
-
docker compose rm -v db—— 删除db服务的已停止容器 + 关联的匿名卷 - 该操作不可逆,生产环境严禁使用,尤其对数据库类服务
- 命名卷(named volume)默认不受影响,除非在
docker-compose.yml中显式配置了external: true并手动管理










