如何通过Dockerfile更改nginx的默认主页,然后通过运行容器

时间:2018-04-16 19:20:21

标签: docker nginx containers

我有一个非常简单的HTML文件输出' Container with HTML file'。

我有这个Dockerfile,我复制了我的welcome.html(我的简单HTML页面):

FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY welcome.html welcome.html

然后我在包含此HTML页面的目录中创建一个图像:

docker image build -t html_nginx .

使用以下命令运行容器:

docker container run -p 80:80 --rm html_nginx

但是当容器在端口80上运行时,我会得到默认的' Welcome Page' nginx而不是HTML文件中我想要的输出(' Container with HTML file')。

我尝试了多少,我从来没有能够在浏览器上打印我的信息。

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

默认的nginx配置将从index.html目录加载/usr/share/nginx/html文件。

此默认设置在/etc/nginx/conf.d/default.conf中设置了

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
}

要解决此问题,您可以将welcome.html复制到/usr/share/nginx/html目录中index.html,或将上面的index行更改为引用welcome.html并重新加载。要使此更改更加永久,您可能希望创建一个dockerfile,用于定义一个docker镜像,覆盖已在您已设置此值的位置复制的配置。

或者,您应该只能在访问服务器时访问/welcome.html,例如http://localhost:80/welcome.html