Docker容器仅在端口80上工作

时间:2017-04-25 18:24:46

标签: node.js windows nginx docker

我在多台机器(Win10和服务器2016)上试过这个,结果相同 使用本教程: https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell

这有效

docker run -d -p 80:80 --name webserver nginx

任何其他端口,

失败
docker run -d -p 8099:8099 --name webserver nginx --> ERR_EMPTY_RESPONSE

看起来Docker / nginx正在侦听此端口上的失败,但失败了。 Telneting到此端口显示请求已通过,但立即断开连接。这与根本没有收听端口的情况不同。

1 个答案:

答案 0 :(得分:3)

该列表中有两个端口。第一个端口是一个docker在主机上发布,您可以远程连接。第二个端口是在容器中发送该流量的位置。 Docker不会修改应用程序,因此应用程序本身需要侦听该第二个端口。默认情况下,nginx侦听端口80.因此,您可以运行:

docker run -d -p 8099:80 --name webserver nginx

在端口8099上发布,并将该流量发送到容器内的应用程序,侦听端口80。