Introdução ao Docker

Imagine que você trabalha com um projeto complexo, que é dependente de várias bibliotecas e pacotes, e você precisa fazer uma demonstração em um outro computador, ou mesmo enviar o projeto a um colega, a fim de que ele realize teste, por exemplo. Existe uma maneira de você enviar todo o seu trabalho configurado de forma correta sem gastar tempo e com garantia de boa performance: basta utilizar o docker.

O que é o Docker?

O Docker é uma ferramenta desenvolvida para auxiliar a criação, distribuição e funcionamento de aplicações utilizando contêiners. Ele garante isolamento entre a aplicação e o resto do sistema de forma semelhante a máquinas virtuais, que permitem a existência de um segundo sistema operacional (SO) sem particionamento do disco rígido. Utilizando-se o Docker, evita-se problemas como conflitos entre programas, falta de dependências e ele ainda garante a portabilidade da aplicação entre computadores.

Como funciona o Docker?

O Docker usa funcionalidades do kernel linux – a parte do sistema operacional que gerencia o hardware – como namespaces e grupos de controle para criar contêineres (ambiente virtualizado com seu próprio usuário). Embora ele não seja uma Máquina Virtual, a sua estrutura é semelhante.

Estrutura de uma Máquina Virtual

Estrutura Máquina Virtual (Software Emulation)

Uma das principais funções de um sistema operacional é a alocação de recursos para programas. Por exemplo, ao ser inicializado, o Matlab faz uma requisição de recursos ao kernel do SO (memória RAM, processamento) e este aloca os recursos necessários para o funcionamento correto do programa. O trabalho do Hipervisor é fazer essa requisição ao sistema operacional nativo para que a Máquina Virtual possa funcionar.

Para a criação e testes de aplicações de software, utilizar-se de Máquinas Virtuais é ineficaz. Além de ocupar muito espaço no disco rígido, já que são necessários dois sistemas operacionais inteiros, o uso do Hipervisor deixa as aplicações mais lentas.

Estrutura Docker

O Docker funciona de forma parecida a uma Máquina Virtual, mas há duas diferenças importantes:

  • A comunicação do Docker Engine (análogo ao Hipervisor) é feita diretamente com o kernel do sistema operacional nativo. Isso aumenta a velocidade da comunicação e possibilita um controle maior sobre o uso de recursos dos contêineres.
  • SOs contidos nos contêineres não precisam de kernels próprios, permitindo as aplicações serem bem mais leves que um sistema operacional padrão.

Links úteis:


Deixe um comentário

O seu endereço de e-mail não será publicado.