Docker容器未显示卷装 – 访问问题

root@centdev01$ grep -e CMD -e RUN Dockerfile RUN apt-get update RUN apt-get -y install ruby ruby-dev build-essential redis-tools RUN gem install --no-rdoc --no-ri sinatra json redis RUN mkdir -p /opt/webapp RUN chmod 777 /opt/webapp CMD ["/opt/webapp/bin/webapp"] root@centdev01$ docker build -t "alok87/sinatra" . root@centdev01$ docker run -d -p 80 --name ubunsin10 -v $PWD/webapp:/opt/webapp alok87/sinatra 25ekgjalgjal25rkg root@centdev01$ docker logs ubunsin10 /opt/webapp/bin/webapp: Permission Denied - /opt/webapp/bin/webapp ( Errno:EACCESS) 

问题是卷正在安装到容器,但从容器中没有任何权限到已安装的卷。 我可以cd到/ opt / webapp / bin但我不能ls / opt / webapp / bin。

请build议如何解决。 主机装载具有777权限的所有文件。

Docker进程具有svirt_lxc_net_t默认types。 默认情况下,这些进程不允许访问/ var/ root/ home中的内容

您已经为主机文件夹指定了合适的types标签,以允许容器进程访问内容。 您可以通过给$ PWD / webapp文件夹inputtypes标签svirt_sandbox_file_t来做到这一点

 chcon -Rt svirt_sandbox_file_t $PWD/webapp 

在此之后,您可以从容器内访问该文件夹。 在Dan Walsh的文章中阅读更多关于它的信息 – 为Docker带来新的安全function