Ubuntu nginx容器403禁止

Ubuntu nginx容器403禁止,ubuntu,nginx,docker,Ubuntu,Nginx,Docker,我用nginx websever构建了一个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.

我用nginx websever构建了一个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
文件结构如下所示:

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>
curl 0.0.0.0:32769
403禁止
403禁止
nginx/1.4.6(Ubuntu)

我做错了什么

403错误可能是由于为空目录提供服务,并且禁用了目录列表(默认设置)。有关如何解决此问题的提示,请参阅

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


如果网站目录中确实包含
index.html
,则卷可能未正确装入。如果您使用的是boot2docker,请确保您的网站目录位于
c:\users
(Windows)或
/users
(OS X)目录下,因为docker(默认情况下)只能访问这些目录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的答案发表评论,但我还没有足够的代表!)

作为对thaJeztah答案的补充评论,请注意Windows上的映射区分大小写,因此如果您希望映射到“c:\users”目录下的“Sites”文件夹,则需要使用正确的大小写指定映射:

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

(我想就thaJeztah的回答发表评论,但我还没有足够的代表!)

检查您的文件夹
网站
在容器中的权限。然后将其转到
www-data
不确定为什么要卷曲端口32769?与您的问题无关,但您构建的Dockerfile是文档的一部分,但基本上只是为了说明目的。在该示例中,有很多东西没有正确设置(例如,docker的正确日志记录)。最好将这些图像用作基本图像,因为它们是主动维护的、较小的,并且为docker正确设置的(例如,检查您的文件夹
网站
在容器中的权限)。然后将其转到
www-data
不确定为什么要卷曲端口32769?与您的问题无关,但您构建的Dockerfile是文档的一部分,但基本上只是为了说明目的。在该示例中,有很多东西没有正确设置(例如,docker的正确日志记录)。最好将这些图像用作基础图像,因为它们是主动维护的、较小的,并且为docker正确设置的(例如)