A respeito de contêineres Docker, é correto afirmar que
Acada contêiner é executado em sua própria máquina virtual com seu próprio sistema operacional convidado.
Brestringem-se ao ambiente Linux, não sendo possível utilizar o Docker em ambientes Windows.
Csão executados por hipervisores tipo 1, os quais possuem melhor desempenho que hipervisores tipo 2.
Dos aplicativos baseados em contêiner, durante sua execução, compartilham o mesmo kernel do sistema operacional do host.
Epor segurança, ainda que múltiplos contêineres sejam executados no mesmo host Docker, eles não podem se comunicar entre si via TCP/IP.
Revelar gabarito e comentário▾
GabaritoD — os aplicativos baseados em contêiner, durante sua execução, compartilham o mesmo kernel do sistema operacional do host.
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 do host
Gabarito: letra D. Contêineres Docker são uma forma de virtualização em nível de sistema operacional: todos os contêineres em execução em um mesmo host compartilham o kernel do sistema operacional do host, diferentemente das máquinas virtuais, que possuem um sistema operacional convidado completo. Essa é a característica central que define a arquitetura de contêineres e que a alternativa D corretamente descreve.
Para entender por que a alternativa D é a correta, é preciso compreender a diferença fundamental entre contêineres e máquinas virtuais. Uma máquina virtual (VM) é uma emulação completa de um computador, com seu próprio sistema operacional convidado (guest OS), que roda sobre um hipervisor. O hipervisor pode ser de tipo 1 (nativo, que executa diretamente sobre o hardware, como o VMware ESXi e o Xen) ou de tipo 2 (convidado, que roda como um processo de um sistema operacional host, como o VMware Workstation e o VirtualBox). Cada VM é fortemente isolada e consome muitos recursos, pois precisa de um sistema operacional inteiro para funcionar.
Os contêineres, por outro lado, não virtualizam o hardware. Eles virtualizam o sistema operacional: em vez de cada aplicação ter seu próprio SO, todas as aplicações em contêineres compartilham o kernel do host. O Docker, por exemplo, utiliza tecnologias do núcleo Linux como namespaces (para isolar processos, rede, sistema de arquivos, etc.) e cgroups (para limitar e gerenciar recursos como CPU, memória e I/O). Isso torna os contêineres muito mais leves e rápidos de iniciar do que as VMs, pois não há um sistema operacional inteiro para bootar.
Na prática, imagine que você tem um servidor Linux rodando o Docker. Você pode executar um contêiner com um servidor web Nginx e outro com um banco de dados PostgreSQL. Ambos os contêineres usam o mesmo kernel Linux do servidor, mas cada um tem seu próprio sistema de arquivos, bibliotecas e processos isolados. Eles podem se comunicar entre si via rede (TCP/IP), mas não enxergam os processos um do outro diretamente, a menos que isso seja configurado.
A pegadinha desta questão está em confundir contêineres com máquinas virtuais. A banca explora exatamente essa confusão: quem não domina o conceito pode achar que contêineres são como VMs (alternativa A), que dependem de hipervisores (alternativa C), ou que são limitados a um único sistema operacional (alternativa B). A alternativa E também é uma pegadinha, pois sugere que contêineres não podem se comunicar, o que é falso — eles se comunicam via rede normalmente.
Guarde a distinção central: máquina virtual = virtualização de hardware (cada VM tem seu próprio SO convidado); contêiner = virtualização de sistema operacional (todos compartilham o kernel do host). É exatamente nessa fronteira que as alternativas se dividem.
Contêineres Docker: Virtualização de SO (Compartilham kernel do host, Isolamento por namespaces, Limite de recursos por cgroups); vs. Máquina virtual (Virtualização de hardware, SO convidado próprio, Executa sobre hipervisor); Comunicação (Via TCP/IP (rede bridge), Docker em Windows/macOS)
Alternativa A — ❌ Incorreta
Afirma que cada contêiner é executado em sua própria máquina virtual com seu próprio sistema operacional convidado. Isso é exatamente o oposto da arquitetura de contêineres. Contêineres não são máquinas virtuais: eles não possuem um sistema operacional convidado próprio. Todos os contêineres em um host compartilham o kernel do sistema operacional do host. A alternativa descreve o funcionamento de uma máquina virtual, não de um contêiner.
Alternativa B — ❌ Incorreta
Afirma que os contêineres se restringem ao ambiente Linux, não sendo possível usar o Docker em ambientes Windows. Isso é falso. Embora o Docker tenha sido originalmente criado para Linux, hoje é possível executar o Docker em ambientes Windows (e macOS) de duas formas principais: usando uma máquina virtual Linux subjacente (como o Docker Desktop faz, executando um VM Linux leve) ou usando contêineres nativos do Windows (com imagens baseadas em Windows). Portanto, o Docker não se restringe ao Linux.
Alternativa C — ❌ Incorreta
Afirma que os contêineres são executados por hipervisores tipo 1, que possuem melhor desempenho que hipervisores tipo 2. Há dois erros aqui. Primeiro, contêineres não são executados por hipervisores — eles são executados diretamente sobre o kernel do host, usando namespaces e cgroups. Segundo, embora seja verdade que hipervisores tipo 1 (nativos) tenham melhor desempenho que hipervisores tipo 2 (convidados), isso é irrelevante para contêineres, que não usam hipervisores. A alternativa mistura conceitos de virtualização de hardware com virtualização de sistema operacional.
Alternativa D — ✅ Correta ⟵ GABARITO
Afirma que os aplicativos baseados em contêiner, durante sua execução, compartilham o mesmo kernel do sistema operacional do host. Isso é exatamente a definição de contêineres. O Docker, por exemplo, usa o kernel do host para executar todos os contêineres, isolando-os com namespaces e limitando recursos com cgroups. Essa é a característica que diferencia contêineres de máquinas virtuais e que torna os contêineres mais leves e eficientes.
Alternativa E — ❌ Incorreta
Afirma que, por segurança, múltiplos contêineres no mesmo host não podem se comunicar entre si via TCP/IP. Isso é falso. Contêineres podem e devem se comunicar via rede. O Docker, por padrão, cria uma rede bridge que permite que contêineres se comuniquem entre si via TCP/IP. A segurança é uma preocupação, mas não impede a comunicação — ela é gerenciada por políticas de rede e isolamento, não pela proibição de comunicação.