docker container prune -f 可安全批量删除所有已停止容器,不干扰运行服务、不误删镜像或数据卷;推荐用于日常维护,支持精准过滤如仅删exited状态容器,慎用全量清理命令。

直接用 docker container prune -f 就能安全批量删除所有已停止的容器,不干扰正在运行的服务,也不误删镜像或数据卷。
推荐命令:一键清理已停止容器
执行这行命令即可:
docker container prune -f它会自动识别并清除所有 exited、created 或已停止但未删除的容器,全程无需手动筛选,加上 -f 参数跳过确认提示,适合日常维护。
按状态精准清理(比如只删 exited 容器)
如果只想清理明确退出的容器(常见于任务型容器),可以先预览再执行:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
- 先看看有哪些:
docker ps -a --filter "status=exited" - 确认无误后删除:
docker rm $(docker ps -aq --filter "status=exited")
注意:docker rm 只接受已停止的容器 ID,所以这个组合天然安全,不会误杀运行中服务。
慎用的全量清理方式
以下命令会删除所有容器(不管是否在运行),务必三思:
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)- 或更激进的:
docker system prune -a -f(还会删镜像、网络、构建缓存)
这类操作建议仅用于本地开发环境重置,生产或共享主机上必须提前核对 docker ps -a 输出。
小技巧:避免堆积,从源头控制
长期来看,比定期清理更省事的是预防堆积:
- 启动一次性容器时加
--rm参数,退出后自动清理:docker run --rm alpine echo hello - 用
docker-compose down替代手动 stop/rm,它会按依赖关系干净收尾 - 给测试容器打 label,比如
--label stage=temp,后续可用--filter label=stage=temp精准回收










