首页/云/云与容器速查/docker system prune 清理资源
容器与 Docker106 条

docker system prune 清理资源

清理未使用的镜像、容器、网络与构建缓存:-a 扩大到全部未使用镜像、--volumes 连匿名卷;是高风险命令,先看 df 再执行。

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

docker system prune 是什么

docker system prune 一次性清理未使用的资源:停止的容器、悬空镜像、未被使用的网络与构建缓存。加 -a 会把范围扩大到所有未被容器引用的镜像,加 --volumes 连未使用的数据卷一起清。它是回收磁盘最快的手段,也是误删数据最常见的来源,所以执行前先看 df,执行后确认业务正常。

基本信息

默认清理停止的容器 + 悬空镜像 + 未使用网络 + 构建缓存
-a额外清理所有未被容器引用的镜像,含缓存的基础镜像
--volumes清理未使用的数据卷,可能包含业务数据
-f跳过确认提示,脚本中使用
危险等级--volumes 近似于一次数据删除操作

典型使用场景

  • 磁盘告警应急:先确认可回收量,再按保守级别逐步清理
  • CI 机器维护:定时清理构建缓存与悬空镜像,控制磁盘增长
  • 环境重建:清理历史容器与网络,让环境回到干净状态
  • 发布前腾空间:镜像拉取前清出可用空间,避免拉取失败
  • 定期治理:把轻度 prune 做成周任务,避免磁盘被动告警

分级清理

分级清理
docker system df                                  # 先看各类资源可回收多少
docker system prune                               # 保守:容器/悬空镜像/网络/缓存
docker builder prune                              # 只清构建缓存,风险最低
docker image prune -a                             # 清理所有未被引用的镜像
docker system prune -a --volumes                  # 激进:先确认无数据依赖再执行

清理范围对照

命令容器镜像卷构建缓存
system prune已停止悬空不动清理
system prune -a已停止全部未引用不动清理
system prune --volumes已停止悬空未使用清理
image prune不动悬空不动不动
builder prune不动不动不动清理
有匿名卷承载数据库数据(用无名 -v 挂载)的环境禁止随意加 --volumes:先 docker volume ls 逐个确认用途,再决定是否清理。
清理只针对未使用资源,运行中的容器与使用中的镜像不受影响;但在生产机上清理构建缓存会让下一次构建全量重建,耗时明显变长。

易错点

  • --volumes 一键删掉承载数据的匿名卷,数据无法恢复
  • 生产机器上清理构建缓存,导致后续发布全量重建、发布时长翻倍
  • 不看 system df 就直接清理,做了无用功或误清了本不该动的资源
  • 在脚本里加 -f 且没有前置检查,定时任务把业务依赖的镜像一起清掉

数据来源与参考

  • Docker Docs:docker system prune

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌