禁止使用Ubuntu nginx容器403

时间:2016-01-18 21:03:54

标签: 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.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>

我做错了什么?

2 个答案:

答案 0 :(得分:4)

403错误可能是服务空目录和禁用目录列表(默认值)的结果。有关如何解决此问题的一些提示,请参阅resolving 403 errors

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

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

答案 1 :(得分:0)

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

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

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