Diferença entre uma máquina virtual e um contentor Docker
Isolamento, velocidade de arranque, uso de recursos e quando usar cada um.
| Máquina virtual | Contentor Docker | |
|---|---|---|
| Inclui o seu próprio sistema operativo completo | Sim | Não, partilha o do anfitrião |
| Tempo de arranque | Minutos | Segundos |
| Uso de recursos | Maior | Muito menor |
| Isolamento | Total (sistema completo separado) | Parcial (partilha o kernel do sistema) |
| Executar Windows dentro do Linux | Sim | Não |
A diferença chave numa frase
Uma máquina virtual simula um computador completo, com o seu próprio sistema operativo construído do zero. Um contentor Docker partilha o kernel do sistema operativo anfitrião, empacotando só a aplicação e o que ela precisa — por isso arranca em segundos, não minutos.
Quando usar cada um?
Use uma máquina virtual se precisar de um sistema operativo completamente diferente (Windows dentro de Linux, por exemplo), ou isolamento total garantido. Use o Docker se quiser implementar aplicações de forma rápida e consistente, sem precisar de um sistema operativo completo separado para cada uma.
Dica: não são mutuamente exclusivos — é habitual executar o Docker DENTRO de uma máquina virtual, combinando ambas as camadas de isolamento consoante o que precisar em cada caso.
Perguntas frequentes
Porque é que os contentores Docker arrancam tão depressa?
Porque não precisam de carregar um sistema operativo completo — partilham o kernel do sistema anfitrião, arrancando só a aplicação e as suas dependências específicas em segundos.
Posso executar Windows num contentor Docker?
Não, o Docker partilha o kernel do sistema anfitrião — para executar um sistema operativo completamente diferente (como Windows dentro de Linux), precisa de uma máquina virtual.