Ir para o conteúdo

Lab 5.1: O que é Docker

O docker é um software utilizado para executar aplicativos e outros softwares dentro de contêineres virtuais. Com ele podemos criar ambientes desde o mais simples como para executar um script em terminal até o mais complexo, utilizar interfaces gráficas para os sistemas.

Os contêineres trazem a facilidade de recriar ambientes específicos, minimizando a divergência entre os ambientes de desenvolvimento, teste e produção, por exemplo.

O que são contêineres?

Contêineres são como "caixinhas" que empacotam tudo o que um aplicativo precisa para executar: código, bibliotecas, dependências, entre outros. Eles trazem a facilidade de recriar esses ambientes específicos, minimizando a divergência entre ambientes de desenvolvimento, teste ou produção; seja no seu computador, em um servidor ou na nuvem.

Principais utilidades do Docker

a) Portabilidade: Você pode mover contêineres entre diferentes ambientes sem se preocupar com problemas de compatibilidade.

b) Isolamento: Cada contêiner é isolado, o que evita conflitos entre aplicativos, versionamento de dependências e afins.

c) Eficiência: Contêineres são leves e iniciam rapidamente, economizando recursos.

d) Facilidade de Deploy: Simplifica o processo de colocar aplicativos em produção.

O Docker é muito útil para desenvolvedores e equipes de TI que buscam agilidade e consistência no desenvolvimento e na implantação de software. Por ser Open Source, é fortemente utilizado na indústria e tem ampla comunidade de usuários.

Ele pode ser utilizado no contexto de automações inteligentes, ou seja, criamos uma imagem docker definindo todos os requisitos necessários para a execução da automação, dentro do contêiner, então pode ser carregado “transportado”, replicando o mesmo ambiente em diversas máquinas.

Imagens Docker

Dentro do Docker, encontraremos o conceito de Imagem.

A imagem é um arquivo compilado com as instruções necessárias para criar um ambiente em conteiner.

Por exemplo, uma imagem pode definir: sistema operacional, variáveis de ambiente, linguagem de programação, bibliotecas necessárias, etc.

A BotCity possui algumas imagens prontas para uso. As imagens disponibilizadas já possuem os recursos básicos necessários para execução de automações diversas.

Saiba Mais

Veja na documentação da BotCity as imagens disponíveis e suas respectivas funcionalidades. Também é possivel customizar alguma dessas imagens prontas com recursos adicionais necessários para um processo.

Docker Compose

Outro conceito que encontraremos é o Docker Compose que é uma ferramenta que permite gerenciar múltiplos contêineres Docker de forma fácil e organizada. Ele usa um arquivo chamado docker-compose.yml, onde se define todos os serviços, redes e volumes necessários para executar sua aplicação.

As vantagens de utilizar o Docker compose são:

  • Simplificar o gerenciamento, pois, em vez de rodar vários comandos Docker manualmente, você usa um único comando docker-compose up para iniciar todos os contêineres, e centraliza as configurações dos contêineres em um único arquivo.

  • Facilitar a configuração de aplicações com múltiplos serviços (ex.: banco de dados, backend, frontend) que precisam trabalhar juntos.

  • Ambientes consistentes: Garante que todos os desenvolvedores usem a mesma configuração, evitando problema de "funciona na minha máquina".