欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ls: cannot open directory '.': Permission denied

程序员文章站 2022-05-14 20:43:34
...

在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
[email protected]:/# cd /var/test/
[email protected]:/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中的具体作用,资料太少,求大神解答:)