我在多台机器(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到此端口显示请求已通过,但立即断开连接。这与根本没有收听端口的情况不同。
答案 0 :(得分:3)
该列表中有两个端口。第一个端口是一个docker在主机上发布,您可以远程连接。第二个端口是在容器中发送该流量的位置。 Docker不会修改应用程序,因此应用程序本身需要侦听该第二个端口。默认情况下,nginx侦听端口80.因此,您可以运行:
docker run -d -p 8099:80 --name webserver nginx
在端口8099上发布,并将该流量发送到容器内的应用程序,侦听端口80。