ls: cannot open directory '.': Permission denied

在Rethat上使用docker挂载一个卷的时候,发现在该容器中无法查看该挂载目录内容Permission denied
具体操作如下:

docker run -dti -v /root/test:/var/test:rw ppc64le/ubuntu:16.04 /bin/bash
e1a26fbfd56e155e1c4a1c5e096b4f3f93df9ce87b7adf0444acc2d361571922
docker ps
CONTAINER ID        IMAGE                  COMMAND             CREATED              STATUS              PORTS               NAMES
e1a26fbfd56e        ppc64le/ubuntu:16.04   "/bin/bash"         4 seconds ago        Up 2 seconds                            thirsty_euclid
docker exec -ti e1a26fbfd56e /bin/bash
root@e1a26fbfd56e:/# cd /var/test/
root@e1a26fbfd56e:/var/test# ls
ls: cannot open directory '.': Permission denied

首先想到的是文件权限,没有问题,挂载权限也没有问题,最后发现在
Rethat系统中docker的默认开启了--selinux-enabled 选项,(ubutun中是没有开启的)

ps -elf | grep docker
4 S root      2590 27391  0  80   0 - 19272 futex_ 03:34 pts/0    00:00:01 /usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald

然后,在docker的启动参数中去掉--selinux-enabled,重新启动docker,问题解决。
关于--selinux-enabled在docker中的具体作用,资料太少,求大神解答:)

    原文作者:Mark_Zhang
    原文地址: https://www.jianshu.com/p/4a681869bd3e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞