Probé esto en varias máquinas (Win10 y servidor 2016), el mismo resultado usando este tutorial: https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell
Esto funciona
docker run -d -p 80:80 --name webserver nginxCualquier otro puerto, falla con
docker run -d -p 8099:8099 --name webserver nginx --> ERR_EMPTY_RESPONSEParece que Docker/nginx está escuchando fallando en este puerto, pero fallando. Hacer telnet a este puerto muestra que la solicitud se realiza, pero se desconecta de inmediato. Esto es diferente de cuando un puerto no se escucha en absoluto.
Hay dos puertos en esa lista. El primer puerto es el que Docker publica en el host para que pueda conectarse de forma remota. El segundo puerto es donde enviar ese tráfico en el contenedor. Docker no modifica la aplicación, por lo que la propia aplicación debe estar escuchando en ese segundo puerto. De forma predeterminada, nginx escucha en el puerto 80. Por lo tanto, podría ejecutar:
docker run -d -p 8099:80 --name webserver nginxPara publicar en el puerto 8099 y enviar ese tráfico a una aplicación dentro del contenedor que escucha en el puerto 80.