Ubuntu的nginx容器403禁止

我用nginx websever构build了一个Ubuntu容器。 docker文件如下所示:

FROM ubuntu:14.04 MAINTAINER James Turnbull "james@example.com" ENV REFRESHED_AT 2014-06-01 RUN apt-get -yqq update && apt-get -yqq install nginx RUN mkdir -p /var/www/html/website ADD nginx/global.conf /etc/nginx/conf.d/ ADD nginx/nginx.conf /etc/nginx/nginx.conf EXPOSE 80 

文件结构如下所示:

 xxxxxx@xxxxx:~/sample$ ls Dockerfile nginx website 

在声明中运行容器之后:

 sudo docker run -d -p 80 --name website \-v $PWD\website:/var/www/html/website \kostonstyle/nginx nginx 

nginx服务器按预期工作,但是当我请求一个网页,我只有

 curl 0.0.0.0:32769 <html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx/1.4.6 (Ubuntu)</center> </body> </html> 

我究竟做错了什么?

403错误可能是由于提供了一个空目录,而目录列表被禁用(默认)。 有关如何解决此问题的一些提示,请参阅解决403错误 。

如果网站目录不包含index.html ,请添加此文件

如果网站目录确实包含index.html ,则可能是卷没有正确安装。 如果使用boot2docker,请确保您的网站目录位于c:\users (Windows)或/Users (OS X)目录下,因为只有那些目录才能被docker访问(默认情况下)

作为thaJeztah答案的补充评论,请注意,Windows上的映射区分大小写,所以如果您想要映射到“c:\ users”目录下的“Sites”文件夹,则需要指定映射右壳:

 docker run --name website -p 80 -d -v /c/Users/username/Sites:/var/www/html/website nginx 

(我会发表评论thaJeztah的答案,但我没有足够的代表!)