Conhecendo Container com Docker

Docker é uma plataforma que possui a finalidade de criar ambientes isolados para aplicações e serviços. Com esse isolamento o docker garante que cada container tenha tudo que um serviço/aplicação precisam para ser executado.

O Docker utiliza o processo de virtualização, através de containers. Resumidamente, a tecnologia de containers permite que você execute processos isolados dentro do mesmo sistema operacional, porém em SOs diferentes. Imagine só a possibilidade de um container ter o SO Ubuntu Server, um outro container rodando em um SO Fedora, porém todos estão sendo executados de fato em um host com Debian instalado.

A seguir, veja a diferença entre as duas abordagens.

A diferença principal, é que no caso das máquinas virtuais existe o papel do Hypervisor, que virtualiza o hardware e entrega um sistema completo, com seu próprio sistema operacional, recursos de rede própria, sistemas de arquivo, etc. Desta forma, a máquina é isolada por inteiro.

Já no modelo de containers, o isolamento é feito a nível do sistema operacional, e assim todos os ambiente compartilham o mesmo kernel, ou seja, são utilizados os mesmos recursos de rede e outros dispositivos de hardware. Ao contrário do modelo de máquinas virtuais, o produto entregue para uso não é uma máquina completa e sim um processo em execução isolado virtualmente.

Atualmente o Docker é muito utilizado para criar vários ambientes (containers). Algumas vantagens da utilização desta ferramenta são:

  • Pode trabalhar em vários projetos sem ter que levantar uma Maquina Virtual inteira, somente para isso.
  • Acabar com a história do “na minha máquina funciona”, pois permite a simulação de vários ambientes de teste.
  • Criar o container necessário para determinado serviço rodar.

Fontes:

  • docker.com
  • mundodocker.com.br
  • Containers com Docker – Do desenvolvimento à produção | Daniel Romero | Casa do Código (www.casadocodigo.com.br/products/livro-docker)