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

如何更改nginx';通过Dockerfile创建默认主页,然后通过运行容器启动它,docker,nginx,containers,Docker,Nginx,Containers,我有一个非常简单的HTML文件,它输出带有HTML文件的容器 我有一个Dockerfile,在这里我复制了我的welcome.html(我的简单html页面): 然后在包含此HTML页面的目录中创建一个图像: FROM nginx:latest WORKDIR /usr/share/nginx/html COPY welcome.html welcome.html docker image build -t html_nginx . 并使用以下命令运行容器: docker container

我有一个非常简单的HTML文件,它输出带有HTML文件的容器

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

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

FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY welcome.html welcome.html
docker image build -t html_nginx .
并使用以下命令运行容器:

docker container run -p 80:80 --rm html_nginx
但是,当容器在端口80上运行时,我会得到nginx的默认“
欢迎页面”
,而不是从HTML文件(“
带有HTML文件的容器”
”)获得所需的输出

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


有人能告诉我正确的方向吗?

默认的nginx配置将从
/usr/share/nginx/html
目录加载
index.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
行更改为reference
welcome.html
,然后重新加载。要使此更改更持久,您可能需要创建一个docker文件,该文件定义了一个docker映像,该映像将覆盖在您已设置此值的位置复制的配置


或者,当点击服务器时,您应该能够访问
/welcome.html
,例如
http://localhost:80/welcome.html

将我的HTML文件名更改为index.HTML成功了!我能够获得我想要的主页我对Docker很陌生,我真的不知道在哪里指定“location”块以使更改更持久我在Windows 10上使用Docker Quick Start Terminal,并且在配置文件中指定location块会在运行配置文件时出错:(你真的不能那么容易地更改配置。它会在容器启动时返回到默认配置。)