首页/云/Docker 容器速查/docker system prune 综合清理
基础命令50 条

docker system prune 综合清理

清理已停止容器、未使用网络、悬空镜像与构建缓存;-a 扩展到全部未使用镜像,--volumes 再加未使用卷,属高风险清理。

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

综合清理是什么

一条命令回收多类未被使用的对象:已停止的容器、未被引用的网络、悬空镜像与构建缓存。加上扩展选项后范围会扩大到所有未被容器使用的镜像,再加卷清理选项则连未使用的本地卷一起处理。范围越大,风险越高。

基本信息

默认范围停止的容器、未使用网络、悬空镜像、构建缓存
扩展选项一所有未被容器使用的镜像,包括仍带标签的旧版本
扩展选项二未被使用的本地卷,数据不可恢复
执行方式默认交互确认,可加免确认参数用于脚本
前置动作先看占用总览,评估可回收量再决定清理范围

典型使用场景

  • 磁盘告警时的应急处理:快速回收常见垃圾对象,缓解写入失败风险
  • 构建机定期维护:清理旧镜像与构建缓存,保证流水线有空间可用
  • 开发机整理:删掉长期积累的停止容器与无用镜像
  • 版本收敛:发布稳定后清理不再需要的历史版本,减少误用
  • 环境回收:项目下线时清理相关对象,释放资源

常用示例

常用示例
docker system df                                # 先评估占用
docker system prune                             # 默认范围,交互确认
docker system prune -a                          # 扩大到所有未使用镜像
docker ps -a --format '{{.Names}} {{.Status}}'  # 清理前看看有哪些容器
docker system prune --volumes                   # 连未使用卷一起清理,谨慎

清理范围对照

范围会清理什么风险
默认停止容器、未用网络、悬空镜像、构建缓存排障现场与临时容器会被一起清掉
扩展镜像所有没被容器使用的镜像,含带标签的旧版本回滚所需的旧版本镜像被删除
加卷清理未被使用的本地卷历史数据不可恢复,需先确认备份
免确认执行按脚本一次性执行全部动作缺少人工复核,误清风险放大

清理前的核对清单

  • 确认当前没有正在排障的容器,停止的容器往往是现场
  • 确认回滚要用的镜像版本已经推送或导出,本地删掉还有退路
  • 确认卷里没有业务数据,或数据已经备份到别处
  • 确认构建缓存清理后重建成本可接受,流水线机器尤其要考虑
  • 把清理动作纳入巡检节奏,避免长期积累后一次性大清理
带卷清理的选项会删除没有容器在用的卷,历史数据一并消失。执行前确认备份,或者改成按名称逐个卷处理,把不可逆操作拆成可控的小步骤。
清理之后第一次构建会全量重建,流水线上表现为明显的耗时增加,安排维护窗口时要留出这段时间。

易错点

  • 扩展选项把带标签的旧版本镜像一并删掉,需要回滚时发现本地已经没有可用镜像
  • 清理带卷选项误删业务数据卷,且没有备份可以恢复
  • 停下来准备排障的容器被顺手清掉,现场丢失
  • 在流水线机器上频繁全量清理,构建缓存反复重建,交付时间被拉长

数据来源与参考

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