Docker:离线安装运行容器报错:container_linux.go:345: starting container process caused "process_linux.go:430

1. 运行容器的报错信息

[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.

2. 报错原因

“write /proc/self/attr/keycreate: permission denied” 

翻译:表示文件没有写入权限,访问被拒绝。

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

3. selinux三种模式

1. enforcing :强制模式; 代表SELinux在运行中, 且已经开始限制domain/type之间的验证关系。

2. permissive :宽容模式; 代表SELinux在运行中, 不过不会限制domain/type之间的验证关系, 即使验证不正确, 进程仍可以对文件进行操作, 不过如果验证不正确会发出警告。

3. disables :关闭模式; SELinux并没有实际运行。

4. 解决方法

修改/etc/selinux下的config文件中的SELINUX属性改为disabled

# 修改文件
vi /etc/selinux/config

# 将 SELINUX=enforcing 改成 SELINUX=disabled

重启容器!

 

文章转载至:https://www.it610.com/article/1278617798582484992.htm

posted @ 2022-08-05 15:59  怒吼的萝卜  阅读(1108)  评论(0编辑  收藏  举报