ANÚNCIO

~/questoes/devops

Qual instrução Dockerfile especifica qual porta a aplicação irá escutar?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

Instrução EXPOSE no Dockerfile: Documentando Portas de Containers

Conceito central

A instrução EXPOSE no Dockerfile documenta qual porta a aplicação dentro do container irá escutar, facilitando a comunicação entre o container e o mundo externo. Essa instrução não expõe a porta automaticamente, mas serve como uma forma de documentação e boas práticas na containerização de aplicações.

Por que essa resposta faz sentido

EXPOSE 80 é a sintaxe correta do Dockerfile. Essa instrução informa que o container escutará na porta 80, que é a porta padrão para tráfego HTTP. Quando você executa o container, precisa mapear essa porta usando a flag -p no comando docker run.

Armadilhas comuns

  • Confundir EXPOSE com o mapeamento de portas real - EXPOSE apenas documenta, você precisa usar -p no docker run para expor a porta
  • Achar que EXPOSE sozinho torna a porta acessível - na verdade, é necessário mapear a porta explicitamente ao executar o container
  • Tentar usar sintaxes como LISTEN, PORT ou RUN expose pensando que são variações válidas da instrução

Entenda as alternativas

A

EXPOSE 80 é a instrução correta do Dockerfile. Ela declara que o container escutará requisições na porta 80, permitindo que você mapeie essa porta para a máquina host quando executar o container com docker run -p 80:80.

B

LISTEN não é uma instrução válida do Dockerfile. Docker não reconhece esse comando, portanto o build falhará com um erro de sintaxe inválida.

C

RUN expose 80 mistura duas coisas diferentes. RUN é para executar comandos shell, mas 'expose' não é um comando disponível no shell. A instrução correta é EXPOSE, não RUN expose.

D

PORT não é uma instrução válida do Dockerfile. Docker não reconhece esse comando. A instrução correta para declarar portas é EXPOSE, não PORT.

Dica prática: Ao criar um Dockerfile para sua aplicação React servida com Nginx, declare EXPOSE 80 no arquivo. Depois, ao rodar o container, use o comando: docker run -p 8080:80 sua-imagem. Assim você mapeia a porta 80 do container para 8080 da sua máquina.

Revise pensando: Se você tem EXPOSE 80 no Dockerfile e executa docker run -p 3000:80, em qual porta você acessará a aplicação pelo navegador?