Contêineres versus máquinas virtuais
Aplica-se a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
Este tópico discute algumas das principais semelhanças e diferenças entre contêineres e VMs (máquinas virtuais) e quando talvez você queira usar cada um. Contêineres e VMs têm seus usos– na verdade, muitas implantações de contêineres usam VMs como o sistema operacional host em vez de serem executadas diretamente no hardware, especialmente ao executar contêineres na nuvem.
Para obter uma visão geral dos contêineres, confira Windows e contêineres.
Arquitetura de contêiner
Um contêiner é um silo leve e isolado para executar um aplicativo no sistema operacional host. Os contêineres se baseiam no kernel do sistema operacional host (que pode ser considerado como o encanamento enterrado do sistema operacional) e contêm apenas aplicativos e algumas APIs e serviços leves do sistema operacional executados no modo de usuário, conforme mostrado neste diagrama.
Arquitetura da máquina virtual
Em contraste com contêineres, as VMs executam um sistema operacional completo, incluindo seu próprio kernel, conforme mostrado neste diagrama.
Contêineres versus máquinas virtuais
A tabela a seguir mostra algumas das semelhanças e diferenças dessas tecnologias complementares.
Característica | Máquina virtual | Conteiner |
---|---|---|
Isolamento | Fornece isolamento completo do sistema operacional host e de outras VMs. Isso é útil quando um limite de segurança forte é crítico, como hospedar aplicativos de empresas concorrentes no mesmo servidor ou cluster. | Normalmente, fornece isolamento leve do host e de outros contêineres, mas não fornece um limite de segurança tão forte quanto uma VM. (Você pode aumentar a segurança usando Hyper-V modo de isolamento para isolar cada contêiner em uma VM leve). |
Sistema Operacional | Executa um sistema operacional completo, incluindo o kernel, exigindo assim mais recursos do sistema (CPU, memória e armazenamento). | Executa a parte do modo de usuário de um sistema operacional e pode ser adaptada para conter apenas os serviços necessários para seu aplicativo, usando menos recursos do sistema. |
Compatibilidade com convidado | Executa praticamente qualquer sistema operacional dentro da máquina virtual. | É executado na mesma versão do sistema operacional que o host (o isolamento do Hyper-V permite executar versões anteriores do mesmo sistema operacional em um ambiente de VM leve). |
Implantação | Implantar VMs individuais usando o Windows Admin Center ou Hyper-V Manager; implantar várias VMs usando o PowerShell ou o System Center Virtual Machine Manager. | Implantar contêineres individuais usando o Docker por meio da linha de comando; implantar vários contêineres usando um orquestrador, como o Serviço de Kubernetes do Azure. |
Atualizações e melhorias do sistema operacional | Baixe e instale atualizações do sistema operacional em cada VM. A instalação de uma nova versão do sistema operacional requer a atualização ou, muitas vezes, apenas a criação de uma VM totalmente nova. Isso pode ser demorado, especialmente se você tiver muitas VMs. | Atualizar ou fazer upgrade dos arquivos do sistema operacional em um contêiner é a mesma coisa.
|
Armazenamento persistente | Use um VHD (disco rígido virtual) para armazenamento local para uma única VM ou um compartilhamento de arquivos SMB para armazenamento compartilhado por vários servidores. | Use os Discos do Azure para armazenamento local para um único nó, ou os Arquivos do Azure (compartilhamentos SMB) para armazenamento compartilhado por vários nós ou servidores. |
Balanceamento de carga | O balanceamento de carga das VMs move máquinas virtuais em execução para outros servidores em um cluster de failover. | Os próprios contêineres não se movem; Em vez disso, um orquestrador pode iniciar ou parar automaticamente contêineres em nós de cluster para gerenciar alterações na carga e disponibilidade. |
Tolerância a falhas | As VMs podem fazer failover para outro servidor em um cluster, com o sistema operacional da VM reiniciando no novo servidor. | Se um nó de cluster falhar, todos os contêineres em execução nele serão recriados rapidamente pelo orquestrador em outro nó de cluster. |
Rede | Usa adaptadores de rede virtual. | Usa uma exibição isolada de um adaptador de rede virtual, fornecendo um pouco menos de virtualização – o firewall do host é compartilhado com contêineres – enquanto usa menos recursos. Para mais informações, confira Rede de contêineres do Windows. |