Ubuntu 中 Overlay 存储扩容的正确思路
OverlayFS 是一个联合文件系统,本身没有“容量”属性,显示的容量来自其底层的lowerdir/upperdir所在的真实文件系统。因此,扩展 Overlay 的可用空间,本质是扩展其底层目录所在的分区/卷/磁盘,然后让 Overlay 重新识别新增空间。若你是看到 Docker 的 overlay2 占用 100%,同样应先扩容底层磁盘/分区,再按需清理或迁移数据。
常见场景与对应做法
虚拟机或云盘场景(VMware、VirtualBox、云服务器 ECS)
sudo growpart /dev/vda 1。sudo resize2fs /dev/vda1sudo xfs_growfs /(对挂载点执行)df -h 与 lsblk 校验;Docker 场景再重启 Docker 服务并观察 /var/lib/docker 所在分区是否变大。LVM 场景(根分区或数据盘使用 LVM)
sudo lvextend -L +50G /dev/mapper/vg0-root。sudo resize2fs /dev/mapper/vg0-rootsudo xfs_growfs /df -h。Overlay 将自动看到新增空间(因为其 upper/lower 位于已扩容的 LV 上)。手动挂载的 OverlayFS(非 Docker,自己用 mount -t overlay 挂载)
df -h 与 lsblk 检查)。sudo umount /path/to/overlay
sudo mount -t overlay overlay \
-o lowerdir=/path/to/lowerdir,\
upperdir=/path/to/upperdir,\
workdir=/path/to/workdir \
/path/to/overlay
Docker 场景的 overlay2 占用过高
docker info | grep "Docker Root Dir"(常见为 /var/lib/docker)。sudo systemctl restart docker。关键注意事项
LANG=en_US.UTF-8 后再执行。df -h、docker info、lsblk 复核空间是否生效。