3

Pequena introdução a Docker para desenvolvedores

#Docker
D
Daniel Bicalho
Crédito da imagem "Containers" by tsuna72 is licensed under CC BY 2.0

Introdução

Dando sequência ao artigo anterior, onde falei um pouco sobre a criação de ambientes virtuais para isolar a criação de um ambiente de desenvolvimento, nestes artigo falarei um pouco mais sobre outra forma de isolamento de ambiente, utilizando o conceito de contêineres.


O que é Docker?

Segundo a página do próprio Docker: “Docker é uma plataforma aberta para desenvolver, embarcar e executar aplicações”(em tradução livre).

Ele permite você criar e executar aplicações independentes da sua infraestrutura, organizando em contêineres.


Mas o que diabos é um contêiner?


Um contêiner Linux é uma camada isolada do sistema que contém um conjunto de processos que permite executar uma aplicação de forma isolada.

Essa camada é portátil, dessa forma você consegue executar um contêiner independente da plataforma que esteja executando. O conceito de contêiner e isolamento é um tanto antigo, mas ganhou notoriedade ultimamente.


Como funciona esse tal de contêiner?


O contêineres fornecem uma camada de aplicação acima do sistema que a hospeda. Essa camada contém apenas o suficiente para a execução portátil da aplicação. Contem algumas aplicações para o bom funcionamento. Algumas contém o gerenciador de pacotes para poder instalar dependências para executar.

Para se ter uma ideia, uma imagem Alpine, criada para ser executada em contêineres, tem aproximadamente 5MB de tamanho.


E qual a diferença de contêiner para virtualização?


A ideia aqui não é aprofundar muito, mas precisamos entender rapidinho a diferença aqui.

Quando falamos de virtualização entendemos que existe dois conceitos maiores: host e guest.

O sistema host, vai ser aquele que vai dividir a sua infraestrutura. Ele executará um Hypervisor, que seria uma plataforma que vai fornecer e simular a parte física do computador.


O sistema guest, vai usar a infraestrutura virtual cedida pelo host. Você vai instalar todo o sistema operacional com as suas dependências para executá-lo. Ou seja, você terá uma máquina “completa” virtualizada.


O sistema de contêineres não necessita a criação de uma infraestrutura virtual. Ele utiliza uma fração da estrutura do sistema host, que pode ser limitada ou não na configuração. E aplica camada de software para poder executar.

Para se ter uma pequena ideia, uma imagem Alpine, que é um pequeno sistema Linux para aplicações em contêineres possui aproximadamente 6MB


Pra que serve?


No fim das contas o sistema de contêineres funciona para acabar com a desculpa do desenvolvedor: “Na minha máquina funciona!” Haha. Mas vai além disso. Permite trazer portabilidade, escalabilidade, além de auxiliar em outras boas práticas para desenvolvimento e gerenciamento de fluxo de desenvolvimento.



E como eu começo no docker?


Não tenho a intenção de exaurir todas as opções e configurações do Docker, caso queiram um tutorial de instalação, me falem aqui, caso não, a documentação disponível em https://docs.docker.com/get-docker/ cobre várias formas de instalação de acordo do sistema operacional.


Em breve, escreverei mais artigos considerando aspectos mais práticos da utilização desses conceitos no desenvolvimento de aplicações.


Me sigam aqui e no meu Linkedin, estou tentando criar o hábito de escrever para compartilhar meu conhecimento e minha trilha de aprendizado


Referências

1. https://docs.docker.com/get-started/overview/

2. https://www.redhat.com/pt-br/topics/containers/whats-a-linux-container

1
31

Comentários (1)

0
Alessandra Campos

Alessandra Campos

24/03/2021 20:56

Obrigada por compartilhar:)

Pai de dois filhos e casado. Entusiasta de tecnologia. Gosto de sistema opensource e tento trabalhar com tecnologias abertas.

Brasil