把宿主机的一个目录挂载到容器中的一个目录,当访问容器中的这个目录时,出现如下问题:
2018/06/29 02:13:42 [emerg] 1#1: mkdir() "/data/nginx/tmp-test" failed (13: Permission denied)
nginx: [emerg] mkdir() "/data/nginx/tmp-test" failed (13: Permission denied)
2018/06/29 02:17:48 [emerg] 1#1: chown("/data/nginx/tmp-test", 101) failed (13: Permission denied)
nginx: [emerg] chown("/data/nginx/tmp-test", 101) failed (13: Permission denied)
无法访问目录,权限拒绝。该问题通常在centos7下出现。或者一个容器启动成功后,里面的服务无法成功访问,这是因为centos7中的安全模块selinux把权限禁掉了,一般的解决方案有以下两种:
(1)临时关闭selinux
直接在centos服务器上执行以下命令即可。执行完成以后建议重新docker run。
setenforce 0
(2)给容器加权限
在docker run时给该容器加权限,加上以下参数即可:
--privileged=true
一般都推荐使用这种方式。