Docker持久化卷磁盘耗尽原因及扩容方法咨询
Docker存储卷(LVM逻辑卷)扩容方案
我帮你分析下这个问题:你碰到的是Docker依赖LVM逻辑卷作为存储目录时的典型场景——Docker本身不会自动管理宿主机的LVM卷扩容,哪怕宿主机有剩余空间,也得我们手动在宿主机层面操作。结合你的环境(Ubuntu + overlay2 + LVM卷/dev/mapper/vg1-docker),给你一步步的解决方法:
步骤1:确认LVM卷组剩余空间
首先检查你的卷组vg1还有多少可用空间,执行:
vgs
你会看到类似这样的输出,重点关注Free PE / Size列,这就是卷组里可分配的剩余空间:
VG #PV #LV #SN Attr VSize VFree vg1 1 1 0 wz--n- 500.00g 244.00g
步骤2:扩容LVM逻辑卷
接下来把剩余空间分配给vg1-docker这个逻辑卷:
- 如果想把卷组里所有剩余空间都加上,执行:
lvextend -l +100%FREE /dev/mapper/vg1-docker - 如果只想加指定大小(比如100GB),可以用:
lvextend -L +100G /dev/mapper/vg1-docker
步骤3:调整文件系统大小
LVM卷扩容后,还需要同步调整上层的文件系统大小。你的环境是Ubuntu,默认Docker用的是ext4文件系统,执行:
resize2fs /dev/mapper/vg1-docker
注意:如果你的文件系统是XFS(比如手动配置过),需要用挂载点执行命令:
xfs_growfs /var/lib/docker
步骤4:验证扩容结果
最后执行以下命令确认扩容成功:
df -h /var/lib/docker # 查看空间容量变化 df -i /var/lib/docker # 确认inode使用率依然正常
这时候你会看到/var/lib/docker对应的文件系统容量已经变大,Docker可以正常使用新增的空间了。
补充说明
- Docker的overlay2存储驱动直接依赖宿主机的文件系统,所以它不会自动感知宿主机的LVM剩余空间,必须手动完成LVM扩容和文件系统调整。
- 从你的
df -i输出来看,inode使用率只有7%,完全不用担心inode耗尽的问题,这次的核心就是空间扩容。
内容的提问来源于stack exchange,提问作者James Hirschorn
相关产品推荐
相关产品推荐

