在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中的具体作用,资料太少,求大神解答:)