Não use --net=host
. Parece que você está pedindo ao docker para publicar a porta, pois forneceu a opção -p 27017:27017
, mas --net=host
solicita ao Docker que desligue todos os recursos de isolamento da rede, incluindo a publicação de porta.
O Docker-for-windows configura uma pequena VM em hyperv onde o Docker é executado. Seu contêiner --net=host
acaba escutando as interfaces dessa VM. O encaminhamento de porta de rede do Docker-for-windows presta atenção apenas a portas publicadas, e é por isso que nenhum encaminhamento está acontecendo.
Se você executar o mesmo comando sem --net=host
, deverá obter um resultado diferente.
Às vezes, se você tentar executar um processo em contêiner e a porta publicada não estiver funcionando, é porque o processo está escutando na interface lo0
do contêiner e não na interface eth0
.
Aqui está um bom contêiner de teste de benchmark para testar as portas de publicação:
docker run --name testweb -d -p 8989:80 nginx:alpine
Você deve então se conectar ao link e ver uma página de boas-vindas do nginx.