1
resposta

[Dúvida] sistema operacional imagem docker

Pelo que entendi da diferença entre VMs e Containers, um dos principais pontos era o fato de uma VM rodar em cima de um sistema operacional próprio, o que a deixaria mais pesada que um Container, que poderia compartilhar o sistema operacional do host. No exemplo dessa aula usamos um container Ubuntu Bash, nesse caso ele não funcionaria de forma parecida com uma VM já que precisa trazer as informações do sistema operacional? Nesse caso, quais seriam as diferenças entre um Container desse tipo (que traz um sistema operacional) e uma máquina virtual?

1 resposta

Olá, Dener

Você fez uma ótima observação sobre a relação entre contêineres e máquinas virtuais (VMs).

A diferença principal entre um contêiner e uma VM é que uma VM é uma abstração completa de uma máquina, incluindo o sistema operacional (SO), enquanto um contêiner é uma abstração mais leve que compartilha o SO do host. Quando você cria um contêiner Ubuntu, por exemplo, o que está acontecendo é que você está criando um ambiente isolado que pode rodar aplicativos como se estivessem em um sistema Ubuntu, mas sem a necessidade de ter todo o SO Ubuntu instalado.

No caso do Docker, a imagem Ubuntu é apenas uma série de camadas de arquivos que representam o estado do sistema de arquivos de um sistema Ubuntu. Ela não contém um kernel do Linux, drivers de dispositivo ou outros componentes de baixo nível do SO. Esses são fornecidos pelo SO do host. Isso é o que torna os contêineres tão leves em comparação com as VMs.

No exemplo da aula, quando você executa um contêiner Ubuntu Bash, você está criando um ambiente que tem acesso a um shell Bash e a outras ferramentas e bibliotecas comuns em um sistema Ubuntu. No entanto, ele ainda usa o kernel e outros componentes do SO do host.

A diferença entre um contêiner que "traz um sistema operacional" e uma VM é que a VM tem seu próprio kernel e outros componentes de baixo nível, enquanto o contêiner compartilha esses componentes com o host. Isso torna os contêineres mais eficientes em termos de recursos do que as VMs, mas também significa que eles são menos isolados do host e uns dos outros do que as VMs.

Espero ter ajudado e bons estudos!