【发布时间】:2016-05-05 22:14:00
【问题描述】:
我已经用 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>
我做错了什么?
【问题讨论】:
-
检查您在容器中的文件夹
website权限。并将其发送至www-data -
不知道你为什么 curl 端口 32769 ?
-
与您的问题无关,但您构建的 Dockerfile 是文档的一部分,但基本上仅用于说明目的。该示例中有各种未正确设置的内容(例如,正确的 logging 用于 docker)。最好使用 official NGINX 镜像作为基础镜像,因为这些镜像是为 docker 积极维护的、更小且正确设置的(例如 github.com/nginxinc/docker-nginx/blob/…)