ANÚNCIO

~/questoes/devops

Como você mapeia a porta 3000 do container para a porta 8080 do host?

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

Mapeamento de Portas em Docker: Conectando Host e Container

Conceito central

O mapeamento de portas permite que você acesse uma aplicação rodando dentro de um container através de uma porta no seu computador (host). A sintaxe correta é -p portahost:portacontainer, onde você especifica primeiro a porta do host e depois a porta do container.

Por que essa resposta faz sentido

A alternativa D está correta porque segue o formato exato -p 8080:3000, mapeando a porta 8080 do host para a porta 3000 do container. Isso significa que quando você acessar localhost:8080 no seu navegador, a requisição será encaminhada para a porta 3000 dentro do container onde a API está rodando.

Armadilhas comuns

  • Inverter a ordem das portas, colocando portacontainer:portahost ao invés de portahost:portacontainer
  • Confundir a flag -p (porta) com -e (variável de ambiente) ou outras flags como -expose
  • Esquecer que -p deve ser usado com docker run, não com docker build ou outras variações

Entenda as alternativas

A

O comando docker expose não existe. A flag correta para mapear portas é -p, e ela deve estar associada ao comando docker run. Além disso, a sintaxe 3000 8080 inverte a ordem esperada.

B

A flag -e é usada para definir variáveis de ambiente (como PORT=3000), não para mapear portas. O mapeamento de portas requer a flag -p, não -e. Variáveis de ambiente são configurações internas, não conexões entre host e container.

C

Embora use a flag correta -p, a ordem das portas está invertida. Este comando mapearia a porta 3000 do host para a porta 8080 do container, o oposto do que a questão pede. Lembre-se sempre: host:container.

D

Este é o formato correto. -p 8080:3000 mapeia a porta 8080 do seu computador para a porta 3000 do container. Você acessará a API através de localhost:8080, mas internamente ela responde na porta 3000.

Dica prática: Para memorizar a ordem, pense assim: você está sentado no host e quer acessar o container. Escreva sua porta primeiro (-p 8080), depois aponta para a porta interna do container (:3000). Na prática, teste com docker run -p 8080:3000 meunomeimagem e acesse http://localhost:8080 no navegador.

Revise pensando: Se sua API Node.js roda na porta 3000 dentro do container e você quer acessá-la pela porta 5000 do seu computador, qual seria o comando correto com a flag -p?