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
  • 4.添加selinux规则,改变要挂载的目录的安全性文本。

欢迎访问我的个人博客:Lemon - 万事顺遂

Logo

更多推荐