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
重启容器!
-----------------------------------
作者:怒吼的萝卜
链接:http://www.cnblogs.com/nhdlb/
-----------------------------------