avatar

Docker用-v挂载本地目录到容器后出现Permission
script
1
docker run -d -p 80:80 --name nginx -v $PWD/a:/usr/share/nginx/html nginx
  1. 挂载本地目录到容器后,进入容器操作所挂载的目录时出现权限拒绝问题:
    1

  2. 解决问题

    经过排查,发现是我由于我本地的selinux引起的权限拒绝,解决方案如下:

2.1 关闭selinux

script
1
2
3
4

vi /etc/sysconfig/selinux
将SELINUX=enforcing替换为disabled
保存并重启 shutdown -r now

临时关闭selinux:

setenforce 0

2.2 运行容器加上参数–privileged=true

script
1
2
3
4
5
6
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。

docker run -d -p 80:80 --name nginx -v $PWD/a:/usr/share/nginx/html --privileged=true nginx

评论