Docker容器内挂载目录无权限 ls cannot open directory Permission denied

docker运行一个容器,将主机中当前目录下的文件夹挂载到容器的文件夹后,进入到docker容器内对应的挂载目录中,运行命令ls后提示:

ls: cannot open directory .: Permission denied

问题原因及解决办法

原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:

1.在运行容器的时候,给容器加特权,及加上--privileged=true参数:

docker run -d -t --privileged=true xxx

2.如果使用的是docker-compose,则在配置文件中加上-privileged=true环境变量:

environment:

- TZ=Asia/Shanghai

- privileged=true

3.临时关闭selinux:

setenforce 0