Docker容器启动时报错:container init caused “write /proc/self/attr/keycreate: permission denied““: unknown

一、报错详情

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused “process_linux.go:449: container init caused “write /proc/self/attr/keycreate: permission denied””: unknown.

二、原因

permission denied” 表示文件没有写入权限,被拒绝访问了

selinux是linux为了系统安全性做的控制,会控制用户可以访问、读取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件没有权限,就是被selinux限制了。

selinux有三种模式:
enforcing 强制
permissive 宽容的
diabled 禁止的,
限制程度由高到低。

三、解决办法:

1.永久修改(慎重!!!)
(1)cat /etc/selinux/config,更改SELINUX=disable
(2)重启生效

2.临时修改,不重启生效,重启后恢复
(1)/usr/sbin/setenforce 0 立刻关闭 SELINUX【还原:/usr/sbin/setenforce 1 立刻启用 SELINUX】
(2)加到系统默认启动里面:echo "/usr/sbin/setenforce 0" >> /etc/rc.local