Docker
O que é? Onde vive? O que come?
O Docker é simplesmente um software container. – Mas… o que é isso? Pra que serve? Como usa? – Para falarmos mais sobre Docker, precisamos primeiro entender o que é um container no mundo da tecnologia.
Containers
Containers são tecnologias que permitem isolar totalmente aplicações e assim, fazem com que elas sejam facilmente executadas em outros ambientes, sem necessitar de muitas configurações extras, como instalar um sistema operacional específico, softwares, dependências e etc. Tudo ocorre isoladamente dentro do container, – como se fosse uma máquina virtual… certo? – Errado!
Como podemos ver na imagem abaixo, o computador funciona em camadas, desde o Hardware, que é a parte física do computador, até a sua aplicação, que a parte de mais alto nível.

Dessa forma, todas as suas dependências e sistema operacional precisam estar de acordo com o necessário para rodar aquela aplicação, o que torna bastante trabalhoso.
Com isso, foi desenvolvido um software de máquina virtual, ela roda na camada acima do sistema operacional, adicionando novas camadas e isolando a aplicação totalmente do resto do sistema, como podemos ver na imagem abaixo.

Como a imagem mostra, a máquina virtual tem seu próprio sistema operacional, e suas dependências e aplicações rodam em cima dele, e não do sistema operacional do Host, assim isolando completamente a aplicação.
Então… qual a diferença entre uma máquina virtual e um container Docker? A diferença está em qual parte da camada cada um está sendo rodado.
Enquanto a máquina virtual roda em cima de todo o sistema operacional do Host, o container roda apenas em cima do Kernel do sistema operacional. – Ker…o quê!?
O sistema operacional pode ser dividido em duas partes:
- O Kernel, que é a interface entre o hardware e os softwares que usarão aquele hardware.
- Outros softwares de interface, segurança, sistema de arquivos e etc.

O container Docker rodando apenas em cima do Kernel do sistema operacional e não todo o sistema operacional, o torna muito mais leve e rápido, facilitando bastante na hora de baixar suas imagens e de dar deploy nas suas aplicações.
Os containers Docker são instâncias de uma imagem Docker, – e… oque são essas imagens?
Pense numa forma de bolo, todos os bolos assados nela, terão exatamente o mesmo formato, apesar de serem bolos diferentes. Uma imagem é como se fosse uma forma de bolo, onde os containers são os bolos. Então, uma imagem é o que usamos para instanciar um novo container.
Bom pessoal, por essa semana é isso. Caso tenham gostado e quiserem aprender mais sobre Docker, não deixem de avaliar o post positivamente e entrar na documentação oficial http://docs.docker.com/!
5 comentários
Alvaro H. Beckerig · 05/02/2020 às 16:55
Que orgulho dessas postagens técnicas!
Diogo · 05/02/2020 às 17:19
Muito Bom Alan! Tirou minha dúvida pq não poderiamos considerar docker como uma vm mais leve!
Rômulo Bastos · 05/02/2020 às 19:26
Ótimo artigo! Seria legal termos meetups sobre Docker e assuntos relacionados na Garagem! 😀
Alvaro H. Beckerig · 06/02/2020 às 14:51
Vamos fazer um Talk sobre o assunto e depois podemos evoluir para um meetup. Vamos juntos!
Vinicius · 06/02/2020 às 16:32
Sensacionalité