Centos7 docker启动报错不支持 overlay2

容器2022-04-12
Centos7 docker启动报错不支持 overlay2-下一朵云

报错内容:

/usr/bin/docker-current: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/8c4e909f7bd85dd94ac3483b209643dd02b4e45adfc0b8e909565214903a5c8/merged: invalid argument.
See ‘/usr/bin/docker-current run –help’.

*一般情况下,关闭selinux后,reboot重启系统后,重启docker服务可以解决此问题,不需要其他操作。

参考《docker 运行出错 Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/007》

如重启系统、docker服务后,仍未解决则按照如下解决,推荐使用方法二,使用xfs文件系统,并且让docker挂在overlay2的驱动

方法一:

修改docker容器为overlay文件系统

systemctl stop docker  
# 停用docker服务
rm -rf /var/lib/docker 
# 删除docker镜像
vi /etc/sysconfig/docker-storage
# 编辑配置文件
# 找到下面的参数,做如下修改:
DOCKER_STORAGE_OPTIONS="--storage-driver overlay "
# 保存
$ !wq
systemctl start docker
#启动docker
#再次创建、启动容器即可

方法二:

修改centos文件系统类型,让其支持overlay2

目前kernel在3.10.0-514以上自动支持overlay2存储驱动

1)创建XFS文件系统

fdisk /dev/sdb
pvcreate /dev/sdb1
vgextend centos /dev/sdb1
lvcreate -L 5G -n lv_docker centos
mkfs.xfs -n ftype=1 /dev/mapper/centos-lv_docker
mkdir /usr/lib/docker
mount /dev/mapper/centos-lv_docker /usr/lib/docker

2)配置Docker overlay2存储驱动并启动

vim /etc/docker/daemon.json
{
  "storage-driver": "overlay2",
    "storage-opts": ["overlay2.override_kernel_check=true"]
}
systemctl daemon-reload
systemctl start docker
docker info