一 docker容器启动报错
报错内容如下
Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/e6472f6c7675054284c3a62f6388b52d3d34bd99e492a351dd5a28b724634f/merged: invalid argument
Error: failed to start containers: spug
原因分析
网上搜索一下解决方法,千篇一律,都是清除docker 镜像,更换文件系统。由于昨天还能启动容器,想必不是文件系统的问题。其实又是selinux造成的,昨天把selinux永久关闭导致的。Fedora的selinux是关闭的,而docker上的selinux却是开启的,因此docker运行时会产生如上错误。
另外docker 18.09已经废弃使用overlay1了,overlay2存储才是今后所支持的,因此不建议按照网上某文章的教程那样将docker的存储驱动改回overlay1。改回overlay1的方式只是治标不治本,正解是修改selinux配置。
解决方法1
修改Fedora下的/etc/selinux/config 将SELINUX=disabled 改成 SELINUX=permissive(宽容模式)
保存重启
修改完保存退出(按esc ,输入:wq回车), 重启linux(reboot)即可启动容器。
解决方法2
由于开启宽容模式后,setroubleshootd进程占用过多CPU,导致硬解卡顿,建议使用如下方法:
【建议】修改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