综合清理是什么
一条命令回收多类未被使用的对象:已停止的容器、未被引用的网络、悬空镜像与构建缓存。加上扩展选项后范围会扩大到所有未被容器使用的镜像,再加卷清理选项则连未使用的本地卷一起处理。范围越大,风险越高。
基本信息
| 默认范围 | 停止的容器、未使用网络、悬空镜像、构建缓存 |
|---|---|
| 扩展选项一 | 所有未被容器使用的镜像,包括仍带标签的旧版本 |
| 扩展选项二 | 未被使用的本地卷,数据不可恢复 |
| 执行方式 | 默认交互确认,可加免确认参数用于脚本 |
| 前置动作 | 先看占用总览,评估可回收量再决定清理范围 |
典型使用场景
- 磁盘告警时的应急处理:快速回收常见垃圾对象,缓解写入失败风险
- 构建机定期维护:清理旧镜像与构建缓存,保证流水线有空间可用
- 开发机整理:删掉长期积累的停止容器与无用镜像
- 版本收敛:发布稳定后清理不再需要的历史版本,减少误用
- 环境回收:项目下线时清理相关对象,释放资源
常用示例
常用示例
docker system df # 先评估占用
docker system prune # 默认范围,交互确认
docker system prune -a # 扩大到所有未使用镜像
docker ps -a --format '{{.Names}} {{.Status}}' # 清理前看看有哪些容器
docker system prune --volumes # 连未使用卷一起清理,谨慎清理范围对照
| 范围 | 会清理什么 | 风险 |
|---|---|---|
| 默认 | 停止容器、未用网络、悬空镜像、构建缓存 | 排障现场与临时容器会被一起清掉 |
| 扩展镜像 | 所有没被容器使用的镜像,含带标签的旧版本 | 回滚所需的旧版本镜像被删除 |
| 加卷清理 | 未被使用的本地卷 | 历史数据不可恢复,需先确认备份 |
| 免确认执行 | 按脚本一次性执行全部动作 | 缺少人工复核,误清风险放大 |
清理前的核对清单
- 确认当前没有正在排障的容器,停止的容器往往是现场
- 确认回滚要用的镜像版本已经推送或导出,本地删掉还有退路
- 确认卷里没有业务数据,或数据已经备份到别处
- 确认构建缓存清理后重建成本可接受,流水线机器尤其要考虑
- 把清理动作纳入巡检节奏,避免长期积累后一次性大清理
带卷清理的选项会删除没有容器在用的卷,历史数据一并消失。执行前确认备份,或者改成按名称逐个卷处理,把不可逆操作拆成可控的小步骤。
清理之后第一次构建会全量重建,流水线上表现为明显的耗时增加,安排维护窗口时要留出这段时间。