我使用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>
我做错了什么?
答案 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的答案,但我还没有足够的代表!)