Docker存储空间不足与迁移实战:从根目录爆满到高效扩容
一、问题分析:为什么Docker会吃光你的磁盘?
Docker默认将镜像、容器、卷等数据存储在/var/lib/docker目录下,而该路径通常位于系统盘。随着业务发展,以下场景极易引发磁盘危机:
- 镜像爆炸式增长:高频构建或拉取多版本镜像(如Java应用镜像普遍超过500MB)
- 日志失控:容器标准输出日志未限制大小(json-file驱动默认无限增长)
- 数据卷未隔离:数据库容器(如MySQL)直接将数据写入容器层而非独立卷
- 僵尸资源堆积:停止的容器、无标签的镜像(dangling images)未清理
典型案例:某电商系统日生成容器日志10GB,3天后系统盘空间耗尽导致Kubernetes节点异常 。
二、问题定位:三步锁定存储瓶颈
1. 定位Docker存储路径
Bashdocker info | grep "Docker Root Dir" # 查看当前存储目录
df -h /var/lib/docker # 检查挂载点磁盘使用率
若输出显示Use%接近100%,则需扩容或迁移 。
2. 分析存储占用明细
Bashdu -sh /var/lib/docker/* # 统计各子目录大小
docker system df # 查看镜像/容器/卷的磁盘占用
常见问题分布:
- overlay2/&#x