Ao acrescentar a linha EXPOSE 3000 e buildar a imagem, a porta não foi atribuída por algum motivo. Alguém sabe o que pode ter acontecido? Percebam que no processo do build o EXPOSE 3000 não é executado.
Ao acrescentar a linha EXPOSE 3000 e buildar a imagem, a porta não foi atribuída por algum motivo. Alguém sabe o que pode ter acontecido? Percebam que no processo do build o EXPOSE 3000 não é executado.
Oi, Jonas. Tudo bem?
Se você olhar na documentação oficial do Docker neste link, poderá ver que a instrução EXPOSE não publica de fato a porta, serve mais como documentação entre quem escreveu o dockerfile e quem vai executar o container para saber qual porta deve ser publicada. Para de fato publicar a porta, você deve usar o -p PORTA-HOST:PORTA-CONTAINER
. No caso que você executou deveria ser docker run -d -p 8080:3000 jonascesar/app-node:1.2
(ou qualquer porta que você queira mapear na sua máquina física).
Espero ter ajudado. Bons estudos!
Oi Vitor, tudo certo e você?
Acontece que, se você reparar na aula "Incrementando a imagem" do capítulo "3 - Criando e compreendendo imagens", o Daniel acrescenta no Dockerfile a linha "EXPOSE 3000" e builda a imagem novamente. Depois que ele sobe o container dessa imagem e faz o "docker ps" é possível ver que na coluna "PORTS" do "docker ps" dele aparece a porta 3000 do novo container. E isso não ocorreu comigo mesmo fazendo exatamente como ele fez (como mostrei nas imagens do post). Deu pra entender agora?
Oi, Jonas. Tudo tranquilo aqui também.
Não consegui reproduzir esse comportamente aqui, nem achei informações sobre possíveis motivos para a instrução EXPOSE não estar sendo executada. Você pode tentar adicionar outras instruções no Dockerfile para ver se a EXPOSE vai ser a única que não será executada?
De toda forma, como é uma instrução voltada mais para documentação que para agir de fato na publicação de uma porta no container, eu não me preocuparia. Acredito que se você rodar o comando docker run -d -p 8080:3000 jonascesar/app-node:1.2
vai continuar funcionando como esperado.