Descomplicando Docker

Postado por DBC Company Em: Capacitação, Desenvolvimento, Tecnologia Sem comentarios

Eaí, tudo bem?! Há alguns dias rolou o Workshop de Docker aqui na DBC, do Projeto DBC Impact. Esse projeto reforça o propósito da nossa empresa de ajudar na construção de um futuro cada vez mais digital através de conteúdo. Acesse o site DBC Impact para conferir o cronograma e os temas que vamos discutir ao longo do ano. Como participei do Workshop, me inspirei para falar um pouco sobre esse tal de Docker e explicar alguns conceitos. Vamos lá?!

O que é Docker?

Docker é uma plataforma open source voltada para facilitar a criação e administração de ambientes. Possibilitando o empacotamento de aplicações ou ambientes dentro de um container, sendo portátil para qualquer outro host que contenha o Docker instalado, assim, sendo possível criar e migrar de um ambiente para outra como maior flexibilidade.

A ideia do Docker é construirmos nossas aplicações em container que trafegam em qualquer rede e rodam em qualquer servidor linux.

Porque utilizar Docker?

Docker nos traz algumas vantagens de sua utilização, como:

  • Padronização e Replicação;
  • Ambientes Similares;
  • Economia de Recursos;
  • Melhor Disponibilidade do Sistema (compartilhamento do SO);
  • Possibilidades de Compartilhamento;
  • Simplicidade de Criação;
  • Possibilidade de Configurar Diferentes Ambientes de Forma Rápida;
  • Manutenção Simplificada;
  • Comunidade.

Mas afinal, o que são Containers?

De uma forma simplificada, podemos dizer que um container é um ambiente isolado dentro de um servidor, dividindo um único host de controle.

O isolamento dos containers permite um uso limitado de disco rígido, memória RAM e CPU. Utilizando um tipo de compartilhamento de kernel, eles conseguem poupar muito mais recursos que outros métodos de virtualização como uma VM (Virtual Machine).

Sendo assim, containers são um encapsulamento para um aplicativo com suas dependências. O container mantém uma instância de um sistema operacional isolada, a qual pode ser usada na execução de aplicações.

Imagens

Todo container é baseado em uma imagem, que fornece toda a base que você irá precisar para implementar e executar seu container.

Toda imagem consiste em uma ou mais camadas do filesystem, que ficam uma sobre a outra. Sendo a nossa base para a construção de aplicações.

Então, todo container é iniciado a partir de uma imagem, e ele só pode ser iniciado a partir de uma única imagem.

Docker Hub

É um repositório de imagens (tipo o github), que conta com imagens de aplicações e até mesmo distribuições Linux oficiais como: Debian, Fedora e Ubuntu. Também permite que você hospede suas imagens criadas publicamente ou privadas (através de planos pagos).

Portanto, através do Docker Hub podemos utilizar imagens já existentes e até mesmo oficiais (como citado acima), como nossas próprias imagens criadas e publicadas na plataforma.

Dockerfile

É um arquivo com instruções de como construir um container, é nele que iremos definir a imagem base que será utilizada no ambiente, instalar as dependências, realizar todas as configurações necessárias e executar comandos.

docker-compose

É o orquestrador de containers do Docker utilizado para gerenciar sistemas multicontainers.

Sendo um arquivo (.yml) que contém as instruções necessárias para o funcionamento do nosso ambiente, é nele que devemos declarar todos os nossos containers com os respectivos atributos, volumes, relacionamentos, dependências e configurações necessários.

Concluindo

Podemos ver um pouco dos conceitos do Docker e saber o que são algumas coisas e para que servem. Nós próximos artigos iremos ver melhor como o Docker funciona, além de pôr em prática os conceitos apresentados neste artigo e conhecer algumas ferramentas importantes deste ecossistema.

 

Por Igor Santos, Desenvolvedor de Sistemas na DBC Company.

igor.santos@dbccompany.com.br

18 Likes