docker运行报错 Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/007884cb4f8ac19387c73939/merged: invalid argument

文章2022-08-24
docker运行报错 Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/007884cb4f8ac19387c73939/merged: invalid argument-下一朵云

docker运行报错 Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/007884cb4f8ac19387c73939/merged: invalid argument

在某次关机之后,开机后启动docker容器时报错误

Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/007884cb4f8ac19387c73939/merged: invalid argument

网上好多解决办法都是把overlay2改成overlay1,对于docker中有一大堆镜像的机器来说,这个解决办法并不现实。

这个问题的是由于selinux造成的

CentOS的selinux是关闭的,而docker上的selinux却是开启的,因此docker运行时会产生如上错误。

解决办法:

解决方案无非是SELINUX要么都关闭,要么都开启。参看https://github.com/coreos/bugs/issues/2340

推荐修改CentOS下的/etc/selinux/config 将SELINUX=disabled 改成 SELINUX=permissive

vi /etc/selinux/config
# 找到SELINUX=enable修改为SELINUX=permissive
SELINUX=permissive
# 保存
:wq

或者修改docker关闭selinux

vi /etc/sysconfig/docker
# 找到OPTIONS="--selinux-enabled --log-driver=journald --signature-verification=false"
# 删除 --selinux-enabled
OPTIONS="--log-driver=journald --signature-verification=false"
# 保存
:wq

另外docker 18.09已经废弃使用overlay1了,overlay2存储才是今后所支持的,因此不建议按照网上某文章的教程那样将docker的存储驱动改回overlay1。改回overlay1的方式只是治标不治本,正解是修改selinux配置。