由于前面是离线安装的docker服务,所以我所有的服务镜像都是打成tar包进来的。在启动mysql镜像的时候,出现以下问题:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:430: container init caused “write /proc/self/attr/keycreate: permission denied””: unknown.

场景如下:我使用命令创建并启动mysql容器,出错:

[root@localhost /]# docker run -d \
> -p 3306:3306 \
> --name mysql \
> -v /data/mysql:/data/mysql \
> -v /data/mysql/conf:/etc/mysql/conf.d \
> -v /data/mysql/logs:/logs \
> -v /data/mysql/data:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=root \
> mysql:5.6
e17ddb51ce7e8ef2d9cb32a8f3427ee49533f1b33772464e599e54603516d748
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: 
starting container process caused "process_linux.go:430: 
container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.
 
原因:

“write /proc/self/attr/keycreate: permission denied” 表示文件没有写入权限,被拒绝访问了

selinux是linux为了系统安全性做的控制,会控制用户可以访问、读取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件没有权限,就是被selinux控制了。
selinux有三种模式:enforcing 强制 permissive 宽容的 diabled 禁止的,顾名思义,权限限制,从高到低。


解决方法:

将/etc/selinux下的config文件中的SELINUX属性改为disabled
步骤:

vi /etc/selinux/config

可以看到里面的属性为:enforcing强制性的

按I键进入编辑模式,将SELINUX属性改为disabled,保存退出:wq,重启liunx系统即可

再运行容器即可:

docker start mysql
1
参考博客:

https://blog.csdn/qq_25112523/article/details/99822130 

更多推荐

【亲测好使】Docker问题starting container process caused process_linux.go:430