docker挂载目录失败/权限拒绝 解决方案

把宿主机的一个目录挂载到容器中的一个目录,当访问容器中的这个目录时,出现如下问题:

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
一般都推荐使用这种方式。

你可能感兴趣的:(docker)