Estudo de contêineres

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Conceitos gerais

Contêiner

  • Ambiente isolado que empacota a aplicação e suas dependências;
  • Compartilham o kernel do sistema operacional de gerência;
  • Inicia instantaneamente e usa menos CPU e memória RAM que uma máquina virtual;
  • O foco é a aplicação que se deseja rodar;
  • É portátil pois contém a aplicação com tudo que a mesma necessita para funcionar;
  • Pode ser facilmente replicado;
  • Permite a execução de diversos ambientes em um mesmo sistema, não necessitando ter diversos sistemas operacionais completos para isso;

Máquina Virtual

  • Abstrai (virtualiza) o hardware;
  • O hypervisor permite que múltiplas máquinas virtuais sejam executadas em uma máquina física;
  • Cada máquina virtual contém uma cópia completa do sistema operacional, binários e bibliotecas, consumindo giga bytes em espaço em armazenamento, além de memória RAM e CPU;
  • O foco está na virtualização completa de um ambiente físico;
  • Tende a ser mais lento em decorrência da virtualização de hardware;

Contêiner versus Máquina Virtual

Conteiner-vs-mv2.png

Sistemas Operacionais

Logo-SOs4.png

Com relação aos sistemas operacionais, destacam-se o Container Linux by CoreOS e o RancherOS, ambos com enfoque em contêineres. Há também o Atomic OS, que é um projeto que usa o CentOS como base. Outros sistemas Linux como o Debian, Ubuntu, Fedora, ArchLinux também são ótimos sistemas para desktop que possam servir como hospedeiro de contêineres. No entanto, o Docker pode ser instalado em sistemas Microsoft Windows® e MacOS®, sendo que os contêineres a serem utilizados nesses sistemas deve possuir aplicações que executem nesses sistemas, ou seja, um contêiner para Microsoft Windows® deve conter os binários compilados para o sistema. A situação no MacOS® é análoga.
Aqui o foco será nos sistemas operacionais CoreOS e RancherOS, visto que ambos são otimizados para trabalharem com contêineres e também em cluster.

O CoreOS

O Container Linux by CoreOS, o simplesmente CoreOS, é um sistema operacional focado na execução de contêineres.