把宿主机的一个目录挂载到容器中的一个目录,当访问容器中的这个目录时,出现如下问题:
ls: cannot open directory .: Permission denied
无法访问目录,权限拒绝。
该问题通常在centos7下出现。或者一个容器启动成功后,里面的服务无法成功访问,这是因为centos7中的安全模块selinux把权限禁掉了,一般的解决方案有以下两种:
(1)临时关闭selinux
直接在centos服务器上执行以下命令即可。执行完成以后建议重新docker run
。 setenforce 0
(2)给容器加权限
在docker run
时给该容器加权限,加上以下参数即可:
--privileged=true
一般都推荐使用这种方式。
按上述方法修改后, 如果执行下面命令失败
docker run --name rookie-nginx-test -d -p 8082:80 -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx -v ~/nginx/conf/conf.d:/etc/nginx/conf.d --link php7-fpm:php nginx
则是因为~/nginx/www/
目录下没有index 文件导致. 手动创建index.php
文件解决