Linux Overlay(如Docker的overlay2存储驱动或OpenWrt的overlay文件系统)的大小调整需根据场景选择不同方案,核心思路包括清理空间、调整底层存储、修改配置限制三类。
调整前需明确空间不足的原因(是Overlay本身已满,还是底层存储空间不足),常用命令:
df -h # 查看Overlay挂载点的磁盘使用情况(如/var/lib/docker/overlay2)
docker system df # 查看Docker镜像、容器占用的Overlay空间(仅适用于Docker)
若底层存储(如磁盘分区)已满,需先扩容底层存储;若仅Overlay使用超标,可通过配置限制或清理解决。
若Overlay空间因临时文件、无用镜像/容器占用,可先清理:
docker system prune系列命令清理无用资源:docker system prune -a # 清理所有未使用的镜像、容器、网络和构建缓存(谨慎操作,会删除未使用资源)
docker volume prune # 清理未使用的卷
/overlay下不必要的文件(如下载的安装包、临时文件),或通过Web界面(系统-存储)清理。若底层存储(如LVM卷、ext4/xfs分区)空间不足,需先扩容底层存储,再调整Overlay:
lvextend增加逻辑卷大小,再用resize2fs(ext4)或xfs_growfs(XFS)扩展文件系统:sudo lvextend -L +10G /dev/mapper/vg_name-lv_name # 增加10G空间
sudo resize2fs /dev/mapper/vg_name-lv_name # 扩展ext4文件系统(若为XFS,用xfs_growfs)
fdisk新增分区(如/dev/sda3),格式化为ext4/xfs,然后挂载到Overlay的底层目录(如lowerdir)。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 # 重新挂载
若需限制Overlay的最大使用空间(如防止单个容器占用过多空间),可通过修改配置文件实现:
/etc/docker/daemon.json,添加overlay2.size参数(单位:G/M):{
"storage-driver": "overlay2",
"storage-opts": ["overlay2.size=40G", "overlay2.override_kernel_check=true"]
}
重启Docker使配置生效:sudo systemctl daemon-reload
sudo systemctl restart docker
注:
overlay2.size需配合XFS文件系统(需开启ftype=1)和pquota特性使用,否则可能不生效。
/etc/config/fstab调整挂载参数(如将新增分区挂载为overlay)。/var/lib/docker)。overlay2.size需XFS文件系统(ftype=1)支持,ext4需开启pquota特性。/etc/config)。通过以上步骤,可根据实际场景完成Linux Overlay的大小调整。若问题仍存在,建议检查系统日志(dmesg、journalctl)排查具体错误。