Article image
Daniel Bicalho
Daniel Bicalho24/03/2021 08:54
Compartilhe

Pequena introdução a Docker para desenvolvedores

  • #Docker
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

Compartilhe
Comentários (2)
Jean Souza
Jean Souza - 03/05/2022 13:58

Obrigado pelo conhecimento! Já faz algum tempo que ando querendo estudar Docker e esse artigo é uma ótima introdução para compreender melhor o que vem pela frente! Parabéns!

Alessandra Campos
Alessandra Campos - 24/03/2021 20:56

Obrigada por compartilhar:)