Pular para o conteúdo principal

Questão de Sistemas Operacionais — Contêineres (Docker, Kubernetes, etc.) — CESPE / CEBRASPE 2023

Sistemas OperacionaisContêineres (Docker, Kubernetes, etc.)
Código
ce398139
Banca
CESPE / CEBRASPE
Órgão
TC DF
Ano
2023
Cargo
ACE ( )
Julgue o próximo item, relativo a desenvolvimento web em Java e a desenvolvimento com contêiner. Um contêiner Docker encapsula a aplicação e o ambiente de execução, o sistema operacional e as bibliotecas, então, no mesmo servidor Docker, podem existir contêineres com sistemas operacionais diferentes.
  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”.

Contêineres Docker: compartilhamento do kernel e isolamento

Gabarito: letra C (CERTO). A afirmação está correta: um contêiner Docker encapsula a aplicação, suas bibliotecas e dependências, mas não o sistema operacional completo — todos os contêineres em um mesmo host compartilham o kernel do sistema operacional hospedeiro. Por isso, é possível executar contêineres baseados em diferentes distribuições Linux (como Ubuntu, Alpine, CentOS) no mesmo servidor Docker, desde que sejam compatíveis com o kernel do host. Essa é a essência da virtualização em nível de sistema operacional, que difere das máquinas virtuais tradicionais.

Para entender por que a afirmação é verdadeira, é preciso compreender a arquitetura do Docker. Diferentemente de uma máquina virtual, que virtualiza o hardware e executa um sistema operacional convidado completo (com seu próprio kernel), o Docker utiliza os recursos de isolamento do kernel Linux — como namespaces e cgroups — para criar ambientes isolados chamados contêineres. Cada contêiner tem seu próprio sistema de arquivos, processos, rede e usuários, mas todos compartilham o mesmo kernel do host. Isso significa que o contêiner não inclui um sistema operacional completo; ele inclui apenas a aplicação e as bibliotecas necessárias para executá-la, além de arquivos de configuração.

O texto de apoio sobre Docker confirma essa visão: "Todos os contêineres são executados por um único kernel do sistema operacional e, portanto, usam menos recursos do que as máquinas virtuais." E ainda: "O Docker é uma alternativa de virtualização em que o kernel da máquina hospedeira é compartilhado com a máquina virtualizada ou o software em operação." Essa é a característica central que permite que contêineres com diferentes distribuições Linux coexistam no mesmo host: como o kernel é compartilhado, o que varia entre os contêineres é apenas o espaço de usuário (bibliotecas, binários, configurações).

A pegadinha da questão está em afirmar que o contêiner encapsula "o sistema operacional". Se isso fosse verdade, cada contêiner teria seu próprio kernel, o que não ocorre. O que o contêiner encapsula é o ambiente de execução — ou seja, as bibliotecas e dependências da aplicação — mas não o kernel. Essa distinção é fundamental e frequentemente cobrada em concursos. A banca explora exatamente essa confusão entre contêiner e máquina virtual: enquanto a VM inclui um SO completo, o contêiner compartilha o kernel do host.

Na prática, imagine um servidor rodando Linux. Nele, você pode executar um contêiner baseado em Ubuntu, outro baseado em Alpine e outro baseado em CentOS, todos simultaneamente. Isso é possível porque todos usam o mesmo kernel Linux do host. Se o host fosse Windows, por exemplo, não seria possível rodar contêineres Linux nativamente (sem uma camada de virtualização adicional), justamente porque o kernel seria incompatível. Essa é a razão pela qual a afirmação do enunciado está correta: no mesmo servidor Docker, podem existir contêineres com sistemas operacionais diferentes (desde que todos sejam compatíveis com o kernel do host).

NÃO CAIA NESSA!

A banca tenta fazer você acreditar que o contêiner encapsula o sistema operacional completo, como uma máquina virtual. Mas o contêiner não inclui o kernel — ele compartilha o kernel do host. A confusão entre contêiner e VM é clássica: a VM tem SO próprio; o contêiner não. Lembre-se: contêiner = aplicação + bibliotecas; VM = SO completo + aplicação.

1Encapsula
Aplicação
Bibliotecas e dependências
Ambiente de execução
2Não encapsula
Sistema operacional completo
Kernel próprio
3Compartilha o kernel do host
Namespaces e cgroups
Diferentes distribuições Linux no mesmo host
4Diferença da VM
VM: SO completo + kernel próprio
Contêiner: aplicação + bibliotecas
Contêiner Docker
LEVELsoulevel.com.br
Contêiner Docker: Encapsula (Aplicação, Bibliotecas e dependências, Ambiente de execução); Não encapsula (Sistema operacional completo, Kernel próprio); Compartilha o kernel do host (Namespaces e cgroups, Diferentes distribuições Linux no mesmo host); Diferença da VM (VM: SO completo + kernel próprio, Contêiner: aplicação + bibliotecas)

Alternativa C — ✅ CERTOGABARITO

A afirmação está correta. O contêiner Docker encapsula a aplicação e o ambiente de execução (bibliotecas, dependências, arquivos de configuração), mas não o sistema operacional completo. Todos os contêineres em um mesmo host compartilham o kernel do sistema operacional hospedeiro. Por isso, é possível ter contêineres com diferentes distribuições Linux (sistemas operacionais diferentes) rodando no mesmo servidor Docker, desde que sejam compatíveis com o kernel do host. Essa é a característica da virtualização em nível de sistema operacional, que permite maior eficiência e menor uso de recursos em comparação com máquinas virtuais.

Alternativa E — ❌ ERRADO

A alternativa E afirma que o item está errado, mas isso não procede. O erro estaria se a afirmação dissesse que o contêiner encapsula o sistema operacional completo (com kernel próprio), o que não é o caso. Como o contêiner compartilha o kernel do host, é perfeitamente possível executar contêineres com diferentes sistemas operacionais (distribuições Linux) no mesmo servidor Docker. Portanto, a alternativa E está incorreta.

Gabarito: letra C (CERTO).

Link permanente: /questoes/ce398139