运行 docker 特定端口上的图像

Run docker image on specific port

我是 Docker 的新手。

我正在尝试使用 nginx 基础映像对一个简单的静态网站进行 docker 化。 当我 运行.

时,应用程序 运行 在本地服务器上正常

docker run -d -P <container-name> 因此,这里的应用程序 运行s 在某个随机端口上,我可以在该端口上看到我的应用程序 运行ning。 而当我尝试使用以下命令指定端口时:

docker run -d -p 5000:5000 --restart=always --name app mkd63/leo-electricals

localhost:5000 的页面显示无法访问站点。

我的 Docker 文件是:

FROM nginx:alpine
COPY . /usr/share/nginx/html
EXPOSE 5000

默认情况下,nginx镜像监听容器内的80端口。

发布端口会创建一个从主机转发到容器的端口。这不会修改应用程序在容器内侦听的端口,因此如果您转发到一个未使用的端口,您将不会连接到任何东西。

在 Dockerfile 中公开端口是映像创建者对那些 运行 映像的文档,但不会修改容器网络或对容器内的应用程序 运行 有任何控制是在做。对于 docker,-P 标志使用该文档来发布每个暴露的端口。

要将主机上的端口 5000 映射到容器内侦听端口 80 的 nginx,请使用:

docker run -d -p 5000:80 --restart=always --name app mkd63/leo-electric