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

Ven*_*ana 5 containers nginx docker

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

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

FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY welcome.html welcome.html
Run Code Online (Sandbox Code Playgroud)

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

docker image build -t html_nginx .
Run Code Online (Sandbox Code Playgroud)

并使用以下命令运行容器:

docker container run -p 80:80 --rm html_nginx
Run Code Online (Sandbox Code Playgroud)

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

无论我尝试多少次,我都无法在浏览器上打印我的消息。

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

Pet*_*eid 5

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

/etc/nginx/conf.d/default.conf此默认设置是通过以下行设置的

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
}
Run Code Online (Sandbox Code Playgroud)

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

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