Questão de Sistemas Operacionais — Virtualização — CESPE / CEBRASPE 2025
- Código
- ce208475
- Banca
- CESPE / CEBRASPE
- Órgão
- MPE-CE
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista Ministerial - Especialidade: Ciências da Computação

- CCerto
- EErrado

GabaritoC — Certo
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.
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.
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