故障排查

Docker 磁盘爆满排查与清理

·5 分钟阅读·1785 字

Docker 磁盘空间占满排查流程与镜像容器清理方案

📋 目录

Docker 磁盘爆满排查与清理

1. 统计镜像/容器/数据卷/构建缓存占用

docker system df


输出四项:

1. **Images:镜像占用**(无用旧镜像、多版本镜像)

2. **Containers:停止容器占用**(退出未删容器的读写层)

3. **Local Volumes:数据卷占用**(孤立无容器挂载的卷)

4. **Build Cache:构建缓存**(build残留中间缓存)

### 只看明细

2. 镜像大小排序

docker images —format “table {{.Repository}}\t{{.Tag}}\t{{.Size}}” | sort -k4 -h

3. 查看所有停止容器

docker ps -a


## 2. 一键清理命令(prune系列,生产分级使用)

### 1.清理停止的容器、无用网络、悬空镜像、构建缓存(最常用)

docker system prune


- 删除:已停止容器(died/exited)、未被使用网桥网络、**dangling悬空镜像****:**、build缓存

- **不删正常在用镜像、在用volume**

### 2.加 -a 彻底清理(慎用,空闲镜像全删)

4. -a:删除所有未被容器引用的镜像 + 上述资源

docker system prune -a


### 3.清理孤立数据卷(重点,磁盘暴涨元凶)

5. -v:删除没有任何容器挂载的无用volume

docker system prune -av


volume一旦挂载容器不会被删,只有孤儿卷被清理。

### 4.按时间清理(7天未使用资源)

6. 删除7天以上未使用镜像、容器

docker system prune -a —filter “until=168h”


## 3. 分项精准清理(精细化运维,推荐)

### 1)清理悬空镜像 (构建残留)

docker image prune

7. 全清无用镜像

docker image prune -a


悬空镜像成因:Dockerfile重新build,旧镜像无tag变成none。

### 2)批量清理退出容器

8. 删除所有已停止容器

docker container prune

9. 手动删指定容器

docker rm $(docker ps -aq -f status=exited)


容器即便停止,Upper读写层仍占用磁盘。

### 3)清理无用数据卷

docker volume prune


场景:容器删除但忘了删-v,遗留孤儿卷堆积。

### 4)清理构建缓存

docker builder prune


## 4. 磁盘异常暴涨排查思路(实操步骤)

1. `docker system df` 定位:镜像/容器/卷/缓存哪一项占比最高

2. **镜像过高**:`docker images | sort -k5 -h` 找大体积废弃镜像,`docker rmi 镜像ID`

3. **容器过高**:`docker ps -s -a` 查看容器真实占用SIZE,批量删停止容器

4. **Volume过高**:

10. 列出所有卷+占用

docker volume ls

11. 进入docker卷目录看大文件

du -sh /var/lib/docker/volumes/*


5. **Docker运行日志爆满(最容易忽略)**  

    容器stdout日志无限打满磁盘:

12. 查找超大容器日志

find /var/lib/docker/containers/ -name *-json.log -size +1G

13. 清空日志(不能rm直接删,要truncate)

truncate -s 0 xxx-json.log


根治:docker run 配置日志驱动限制大小 `--log-opt max-size=100m --log-opt max-file=3`

## 5. 日常优化规范

1. 构建用**多阶段构建**缩小镜像体积;

2. 下线容器及时`docker rm`,不用遗留exited容器;

3. 定期定时任务:每周执行`docker system prune`;

4. 容器配置日志滚动,防止日志爆盘。

---

> [!info] 关联文档
> -[[Docker 三种挂载]]:存储挂载
> - [[服务器 IO 过高排查流程]]:IO 排查
Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro