Docker 1

henrique westphal alves
ProJurisTech
Published in
3 min readJun 18, 2019

Você já deve ter ouvido falar sobre docker, containers, dockerfile, docker compose, swarm, kubernetes, e todas essas ferramentas/serviços que envolvem o docker, certo? Mas você realmente sabe o que elas são? Continue lendo essa primeira parte introdutória da série sobre docker, que eu vou lhe explicar todo esse universo do docker de uma forma simples.

O docker é uma Ferramenta desenvolvida na linguagem Go, que surgiu lá em 2008 pela dotCloud, mas que ficou realmente famosa em 2013 quando decidiram torná-la open source, após isso grandes players do mercado como Google, Spotify e a Red Hat começaram a usá-la e investir forte nela.

O Docker facilita a criação e administração de ambientes isolados, garantindo a rápida disponibilização de uma aplicação, utilizando os tão famosos containers, que você verá logo abaixo.

Então containers e VMs são a mesma coisa?

Os Containers são ambientes isolados, dá sim, para se dizer que um container é como se fosse uma máquina virtual, mas isso não está 100% correto, pois além do tamanho de um container ser bem menor, ele é mais integrado ao sistema operacional da máquina host, pois eles dividem o mesmo kernel (um assunto para um próximo post). Um container consiste basicamente na aplicação em si, e em todas as suas dependências e bibliotecas.

Mas então qual a diferença do container para a máquina virtual?

A principal diferença é o seu tamanho, e o baixo uso de recurso da máquina, no caso da utilização de containers. Pois para subir uma aplicação utilizando uma máquina virtual, é necessário instalar e configurar um segundo sistema operacional, instalando todas as dependências e configurando o ambiente, para daí sim, colocar a aplicação para rodar.

Quando se utiliza containers você já economiza pelo menos uns 15Gb de espaço em disco ( levando em consideração que o sistema operacional usado seja linux) sem falar nos outros recursos que ao invés de ter dois sistemas operacionais rodando, dividindo a quantidade de memória, rede e processador da máquina, só terá o sistema operacional da máquina host e o container que contempla a aplicação e suas dependências.

Você pode ver na imagem abaixo um desenho explicando as duas arquiteturas:

Sem falar no tempo de setup da aplicação, pois para subir uma aplicação utilizando VMs, é necessário esperar a máquina virtual ligar, para daí sim startar a aplicação, já em containers, basta subir o container que em poucos segundos a aplicação já ficará disponível.

Ficou curioso com relação ao tamanho de um container?

Para exemplificar melhor a questão do tamanho de um container, uma imagem docker (que veremos melhor em um próximo post) do OpenJDK tem 470MB o que já é considerada grande, mas temos versões do mesmo com 100MB. Outro exemplo é o Nginx que sua imagem oficial é de 109MB e existem versões que chega a ter apenas 15MB. Então realmente, a diferença de tamanho de um container para uma maquina virtual, é realmente gritante.

Conclusão

Agora você sabe o que é docker e o que são contêiners, e quais as principais diferenças entre contêiners e máquinas virtuais. Fique ligado nos próximos posts sobre o assunto onde falaremos mais sobre Docker e o que é Dockerfile e imagens Docker.

De acordo com que vamos avançando nos próximos posts vamos nos aprofundando mais nesse mundo e pegando assuntos mais técnicos, e a ideia dessa série de posts é realmente isso, algo simples nada maçante e com a dose certa de conteúdo, espero que tenham gostado.

--

--