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配置。
发表评论