一、内核版本过低不支持Overlay
yum --enablerepo=extras install kernel-latest
安装最新内核);/etc/docker/daemon.json
,添加"storage-driver": "overlay2"
和"storage-opts": ["overlay2.override_kernel_check=true"]
;systemctl daemon-reload && systemctl start docker
)。二、SELinux阻止Overlay操作
setenforce 0
),若问题解决则调整策略;semanage fcontext
添加SELinux上下文(如semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/docker(/.*)?"
),并通过restorecon -Rv /var/lib/docker
恢复上下文;/etc/selinux/config
将SELINUX=enforcing
改为SELINUX=permissive
(需重启系统)。三、内核模块未加载
overlay
内核模块,导致挂载Overlay文件系统时报错“mount: unknown filesystem type ‘overlay’”或“missing module overlay”。echo "overlay" | sudo tee /etc/modules-load.d/overlay.conf
;modprobe overlay
)。四、Docker存储驱动配置错误
/etc/docker/daemon.json
配置错误(如缺少storage-driver
字段、拼写错误),导致Docker无法使用Overlay2驱动(如“Cannot start service: error initializing graphdriver”)。/etc/docker/daemon.json
,确保内容为:{"storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"]}
(若已有其他配置,需合并);systemctl daemon-reload && systemctl restart docker
)。五、文件系统不支持或参数错误
ftype=1
(Overlay2要求XFS的ftype=1
);df -Th
),若为XFS且ftype=0
,需重新格式化(mkfs.xfs -n ftype=1 /dev/sdXY
,注意:格式化会清除数据);rw,noatime,data=writeback
),可通过/etc/fstab
永久生效。六、挂载参数或路径错误
lowerdir
、upperdir
、workdir
路径不存在或非绝对路径;overlay
写成overaly
)。ls -ld /path/to/lower /path/to/upper /path/to/work
),并使用绝对路径;mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /mnt/overlay
;/etc/fstab
中的挂载配置(若有),确保参数正确。七、磁盘空间不足
/var/lib/docker/overlay2
目录占满(如容器镜像过多),导致无法创建新容器(报错“no space left on device”)。df -h
检查磁盘空间,du -sh /var/lib/docker/overlay2/*
定位大目录;docker rmi $(docker images -q -f "dangling=true")
)、停止的容器(docker rm $(docker ps -aq)
);/var/lib/docker
挂载到单独的大容量磁盘(如/dev/sdb1
),修改/etc/fstab
实现永久挂载。八、OverlayFS层数过多导致性能下降
docker build
时逐层复制耗时久)。RUN
命令(如将RUN apt-get update && apt-get install -y curl
合并为一条);FROM
多个阶段,仅复制必要文件到最终镜像);echo 128 > /proc/sys/fs/overlayfs/max_layers
,临时生效;需写入/etc/sysctl.conf
永久生效)。