You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:31:18