首页/云/Docker 容器速查/清理顺序与 prune 组合
容器排障52 条

清理顺序与 prune 组合

按影响从小到大清理:容器 prune(已停)→ 镜像 prune(悬空/未用)→ builder prune(构建缓存)→ volume prune(未挂载卷,数据不可恢复)。

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

清理的推荐顺序

需要回收磁盘时,按影响面从小到大清理:先已停止的容器,再悬空与未使用的镜像,然后是构建缓存,最后才轮到卷。每一步都能用过滤器把范围限定在时间或标签上。卷是这批对象里唯一无法恢复的一类,必须放在最后单独确认后再执行。

基本信息

建议顺序container → image → builder → volume
过滤器until= 按时间、label= 按标签限定范围
常用命令docker container / image / builder / volume prune
高危项volume prune,删除后数据不可恢复
配套查看docker system df 观察各类占用

典型使用场景

  • 宿主磁盘告警时的分级清理
  • CI 构建机定期回收,保留最近若干小时的构建缓存
  • 上线前腾出空间,避免新镜像解压失败
  • 只清理早于某个时间点的镜像,保护近期回滚版本
  • 清理前先看占用概览,确定是否需要动卷

分级清理流程

分级清理流程
docker system df                            # 先看各类资源占用概览
docker container prune -f                   # 1. 已停止容器
docker image prune -f --filter until=168h   # 2. 悬空镜像,限定 7 天前
docker builder prune -f                     # 3. 构建缓存
docker volume prune -f                      # 4. 未使用卷,数据不可恢复,单独确认
docker system df                            # 回收后再核对一次

各步骤影响面

步骤命令影响面
已停止容器container prune容器可重建,影响最小
悬空镜像image prune不影响运行中的容器
未使用镜像image prune -a可能删掉待回滚版本,需加时间过滤
构建缓存builder prune下次构建变慢
未使用卷volume prune数据不可恢复,必须最后做
定期清理建议做成计划任务,并保留一段时间的构建缓存,在磁盘占用与构建速度之间取平衡。
image prune -a 会清掉所有未被容器使用的镜像,包含准备回滚的版本,配合 until 或 label 过滤更稳妥。

动手前先确认四件事

  • 确认要保护的资源:准备回滚的镜像、仍在使用的卷、需要保留的构建缓存
  • 确认回收范围:用时间或标签过滤,把动作限定在明确安全的对象上
  • 确认回收顺序:可重建的放前面,不可恢复的放在最后并单独确认
  • 确认回收效果:每步之后查看占用概览,避免一次清理过猛

易错点

  • 把卷清理放在前面:删错之后没有任何恢复手段,顺序上必须放最后并单独确认
  • 清理时不加时间过滤:把近期要回滚的镜像一并删除,回滚时只能重新构建或拉取
  • 清理构建缓存后又抱怨构建变慢:这是回收空间的正常代价,按需保留窗口即可
  • 以为清理会影响远端仓库:本地清理只作用于本机,重新拉取需要网络与时间

数据来源与参考

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