Pular para o conteúdo principal

Questão de Sistemas Operacionais — Virtualização — CESPE / CEBRASPE 2025

Sistemas OperacionaisVirtualização
Código
ce208475
Banca
CESPE / CEBRASPE
Órgão
MPE-CE
Ano
2025
Nível
Superior
Cargo
Analista Ministerial - Especialidade: Ciências da Computação
A respeito de gerência de contêineres e segurança com Docker, julgue o item a seguir.Para executar duas instâncias do PostgreSQL em contêineres separados, é correto utilizar os seguintes comandos, mapeando-se portas diferentes do host para a porta padrão do PostgreSQL (5432) no contêiner.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Gerência de contêineres e segurança com Docker: mapeamento de portas

Gabarito: letra C (CERTO). Para executar duas instâncias do PostgreSQL em contêineres separados, é correto mapear portas diferentes do host para a porta padrão do PostgreSQL (5432) no contêiner, pois cada contêiner possui seu próprio namespace de rede e, portanto, sua própria interface de rede virtual e endereço IP. O mapeamento de portas (-p) é a forma de expor o serviço do contêiner para o host, e portas diferentes do host evitam conflito entre as duas instâncias.

O Docker é um framework para construção e gestão de contêineres, que são ambientes isolados que compartilham o kernel do sistema operacional hospedeiro. Cada contêiner tem seu próprio espaço de usuário, com sua própria interface de rede virtual e endereço de rede, o que garante o isolamento entre eles. Quando você executa um contêiner com o PostgreSQL, ele escuta na porta 5432 dentro do contêiner. Para acessar esse serviço a partir do host, você precisa mapear uma porta do host para a porta 5432 do contêiner, usando a opção -p do comando docker run.

Se você executar dois contêineres do PostgreSQL sem mapear portas, ambos escutarão na porta 5432 dentro de seus respectivos namespaces de rede, sem conflito, pois estão isolados. No entanto, para acessá-los a partir do host, você precisa mapear portas diferentes do host para a porta 5432 de cada contêiner. Por exemplo, você pode mapear a porta 5432 do host para o primeiro contêiner e a porta 5433 do host para o segundo contêiner. Assim, você pode acessar o primeiro PostgreSQL em localhost:5432 e o segundo em localhost:5433.

A alternativa está correta porque o mapeamento de portas diferentes do host para a porta padrão do PostgreSQL (5432) no contêiner é exatamente o procedimento correto para executar duas instâncias do PostgreSQL em contêineres separados e acessá-las a partir do host. A pegadinha aqui é que, sem o mapeamento de portas, os contêineres ficam isolados e inacessíveis a partir do host, a menos que você use a rede do host ou outras configurações avançadas.

NÃO CAIA NESSA!

A banca pode tentar confundir o candidato fazendo-o pensar que, como os contêineres são isolados, não é necessário mapear portas diferentes. No entanto, o isolamento de rede entre contêineres não impede que eles usem a mesma porta interna (5432); o conflito só ocorreria se você tentasse mapear a mesma porta do host para dois contêineres diferentes. O mapeamento de portas diferentes do host é essencial para acessar os serviços a partir do host.

Item — ✅ CERTO

A afirmação está correta. Para executar duas instâncias do PostgreSQL em contêineres separados, é necessário mapear portas diferentes do host para a porta padrão do PostgreSQL (5432) no contêiner. Isso é feito com a opção -p do comando docker run, por exemplo: docker run -p 5432:5432 postgres e docker run -p 5433:5432 postgres. Dessa forma, cada contêiner expõe o serviço PostgreSQL em uma porta diferente do host, permitindo o acesso a ambos sem conflito.

Gabarito: letra C (CERTO).

Link permanente: /questoes/ce208475