vitorvsv
(usa Fedora)
Enviado em 29/09/2017 - 20:40h
O Docker é um software capaz de virtualizar serviços/sistemas dentro do sistema operacional, o Docker faz uma virtualização conhecida como containerização (que é a virtualização, mas usando containers).Os containers podem ser comparados a VMs da virtualização com algumas diferenças que detalharemos agora.
O Docker utiliza conceitos já existentes no linux há algum tempo, como por exemplo o uso de LXC (Linux Containers) que permite a virtualização de diversas distros linux em um mesmo host compartilhando o mesmo kernel, além disso o Docker utiliza o cgroups para buscar e isolar recursos da máquina (CPU, memória...), namespaces para isolar o uso de processos na máquina e regras de iptables para gerar a rede docker, ou seja é uma junção de diversas funcionalidades já existentes no Linux para gerar um software completo de virtualização.
As principais vantagens do Docker são:
A grande
escalabilidade que ele permite, caso seja necessário adicionar mais recursos ou seja necessário adicionar algum recurso novo, isso pode ser facilmente resolvido pela adição de um novo container.
Ambiente homogêneo como o docker é muito usado por desenvolvedores, ele permite um sistema homogêneo entre o ambiente de desenvolvimento e o ambiente de produção, pois o mesmo ambiente pode ser utilizado em ambos locais. Resumindo, o docker acaba com a famosa desculpa dos desenvolvedores "Na minha máquina ta funcionando", pois os ambientes são os mesmos.
A facilidade de
substituir serviços e aplicações, caso seja necessário substituir algum serviço rodando em containers, facilmente pode-se matar/derrubar esse container e subir um novo com o novo serviço, por exemplo, supondo que você utilize um banco de dados do tipo mysql e deseja trocar para o mariadb, teoricamente seria apenas matar o container com mysql e subir um novo com o mariadb (obviamente será necessário algumas configurações dependendo do caso).
Mais leve que a virtualização comum, como os containers compartilham o mesmo kernel com os demais containers, cada container contém apenas e somente aquilo que ele necessita para a sua aplicação e/ou serviço.
Portabilidade você consegue muito facilmente exportar todo o seu ambiente configurado com o docker e importar em outra máquina, sendo que tudo estará funcionando corretamente e igualmente a máquina anterior.
Conclusão
O Docker é um software de virtualização que veio pra ficar, a sua forma simples e única de trabalhar e de distribuir serviços, tornou a vida principalmente dos desenvolvedores mais rápida e eficiente, a containerização é uma tecnologia que vai ganhando espaço a cada dia e saber e dominar essa tecnologia nos permite sermos profissionais melhores e mais qualificados.
O que mais?
Em próximos tópicos vamos explorar como criar containers, o que são images, rede docker, Dockerfile, docker-compose e outras coisas a mais relacionadas a docker.