ANÚNCIO

#08 – O que é́ o Docker Compose e como utilizá-lo? | Thi Code

Aprenda o que é Docker Compose e como utilizá-lo para orquestrar containers de forma simples e eficiente.

⏱ 17min 👁 5.586 visualizações 📅 novembro 6, 2023

Resumo

O que é Docker Compose

Docker Compose é uma ferramenta que permite definir e executar aplicações multi-container de forma declarativa e simplificada. Em vez de executar múltiplos comandos Docker para iniciar containers individualmente, o Docker Compose utiliza um arquivo de configuração em YAML para descrever todos os serviços, redes e volumes necessários para uma aplicação completa. Essa abordagem reduz significativamente a complexidade operacional, especialmente em ambientes de desenvolvimento e testes onde múltiplos containers precisam trabalhar juntos de forma coordenada.

Estrutura e sintaxe básica

O arquivo docker-compose.yml é o coração da ferramenta, funcionando como uma receita que descreve como cada serviço deve ser configurado. Nele, é possível específicar a imagem Docker a ser utilizada, variáveis de ambiente, mapeamento de portas, volumes, dependências entre serviços e configurações de rede. A sintaxe YAML permite que até desenvolvedores menos experientes entendam rapidamente como a aplicação está estruturada, tornando o onboarding de novos membros do time muito mais eficiente. Cada serviço definido no arquivo é tratado como um container separado, mas todos funcionam de forma integrada quando iniciados através do Compose.

Instalação e configuração inicial

Docker Compose geralmente vem incluído nas instalações modernas do Docker Desktop em Windows e macOS. Em sistemas Linux, a instalação é um processo simples que envolve fazer download do binário ou utilizar um gerenciador de pacotes. Após instalado, a ferramenta fica disponível via linha de comando através do comando docker-compose ou docker compose (versão mais recente). A verificação da instalação é trivial: executar docker-compose --version mostra a versão instalada e confirma que tudo está pronto para ser utilizado em projetos reais.

Exemplo prático com aplicação real

No contexto do projeto ThiCodeWallet demonstrado no vídeo, o Docker Compose permite definir múltiplos serviços como banco de dados, API backend e frontend em um único arquivo de configuração. Ao invés de iniciar cada container manualmente, o desenvolvedor executa docker-compose up uma única vez, e todos os serviços são iniciados na ordem correta com as configurações específicadas. Esse fluxo elimina erros manuais e garante que o ambiente local seja idêntico ao ambiente de produção, reduzindo drasticamente problemas causados por diferenças de configuração entre máquinas de diferentes desenvolvedores.

Comandos essenciais e operação

Os comandos principais do Docker Compose são intuitivos e seguem padrões consistentes. O comando docker-compose up inicia todos os serviços definidos no arquivo, enquanto docker-compose down interrompe e remove todos os containers associados. Para visualizar o status dos serviços em execução, usa-se docker-compose ps. Comandos como docker-compose logs permitem visualizar mensagens de saída dos containers, facilitando debugging quando algo não funciona como esperado. Para executar operações únicas em um serviço já em execução, docker-compose exec possibilita rodar comandos dentro de um container específico sem interromper os demais.

Gerenciamento de volumes e dados persistentes

Volumes são uma parte crucial da configuração do Docker Compose, permitindo que dados gerados por containers sejam persistidos mesmo quando o container é interrompido ou removido. O arquivo de configuração pode declarar volumes nomeados ou volumes baseados em diretórios da máquina host, garantindo que informações importantes como dados de banco de dados ou arquivos de configuração não sejam perdidos durante operações de manutenção. Essa característica é especialmente importante em ambientes de desenvolvimento onde é necessário manter o estado da aplicação entre diferentes ciclos de inicialização e parada dos containers.

Redes e comunicação entre containers

Docker Compose cria automaticamente uma rede interna que permite que containers se comuniquem entre si usando o nome do serviço como hostname. Essa funcionalidade elimina a necessidade de configurar manualmente endereços IP ou portas internas, simplificando drasticamente o processo de conexão entre serviços. Por exemplo, uma aplicação Python pode conectar-se a um banco de dados PostgreSQL simplesmente usando o nome do serviço PostgreSQL na string de conexão, sem necessidade de conhecer o endereço IP do container. Essa abstração de rede torna o arquivo de configuração mais legível e portável entre diferentes ambientes.

Casos de uso e benefícios práticos

Docker Compose é ideal para ambientes de desenvolvimento local, testes automatizados, ambientes de staging e prototipagem rápida de aplicações complexas. A capacidade de definir uma aplicação inteira em um único arquivo YAML torna extremamente fácil compartilhar o setup com outros desenvolvedores ou com sistemas de CI/CD. Equipes podem colaborar de forma mais eficiente, sabendo que todos estão trabalhando com exatamente a mesma configuração de serviços. Além disso, a facilidade de iniciar e parar ambientes completos em segundos permite que desenvolvedores testem diferentes cenários rapidamente, acelerando significativamente o ciclo de desenvolvimento de software.

O que você vai aprender

  • Entender a estrutura e sintaxe do arquivo docker-compose.yml
  • Instalar e configurar Docker Compose em diferentes sistemas operacionais
  • Executar aplicações multi-container com um único comando
  • Gerenciar volumes para persistência de dados
  • Configurar redes internas para comunicação entre containers
  • Utilizar variáveis de ambiente e otimizar configurações de serviços

Conceitos abordados

Tecnologias utilizadas

Capítulos 9 marcações

  1. Introdução ao Docker Compose
  2. O que é Docker Compose e por quê usar
  3. Instalação e verificação
  4. Estrutura do arquivo docker-compose.yml
  5. Configuração de serviços e imagens
  6. Variáveis de ambiente e portas
  7. Volumes e persistência de dados
  8. Executando a aplicação com docker-compose up
  9. Comandos essenciais e debugging

Próximo vídeo sugerido

Avaliações

Avaliação dos alunos 0.0
0 avaliações
Avalie esta aula

Ajude outros alunos a entenderem se esta aula foi útil.

Ainda não há avaliações. Seja o primeiro a avaliar esta aula.