Skip to content
Latchkey

O Que É Docker Compose? Aplicações Multi-Container Explicadas

O Docker Compose define e executa aplicações multi-container a partir de um único arquivo YAML, de modo que uma aplicação e suas dependências iniciam juntas com um único comando.

Aplicações reais precisam de mais de um container: um serviço web, um banco de dados, um cache. O Docker Compose permite declarar todos eles, suas redes e sua configuração em um único arquivo, e então subir ou derrubar a stack inteira com um único comando, o que é inestimável para dev local e CI.

O que é Docker Compose

Docker Compose é uma ferramenta para definir e executar aplicações Docker multi-container. Um arquivo compose.yaml lista serviços (containers), redes e volumes com sua configuração. O comando "docker compose" o lê e gerencia todo o conjunto como uma unidade.

Como funciona

Cada serviço no arquivo mapeia para um container, construído a partir de um Dockerfile ou obtido como uma image, com portas, variáveis de ambiente e dependências declaradas. O Compose cria uma rede compartilhada para que os serviços possam se alcançar pelo nome. "docker compose up" inicia tudo; "down" desmonta de forma limpa.

Um exemplo de compose

Dois serviços conectados em um único arquivo.

A minimal compose.yaml
services:
  web:
    build: .
    ports: ["3000:3000"]
    depends_on: [db]
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret

Papel em CI/CD

Em CI, o Compose é ideal para testes de integração que precisam de dependências reais: levante a aplicação junto com um banco de dados e um cache, execute os testes contra eles e depois desmonte tudo. "docker compose up -d" inicia a stack em segundo plano, os testes rodam e "down" faz a limpeza. Iniciar stacks completas consome muitos recursos, então runners gerenciados mais rápidos com caches de image aquecidos mantêm esses jobs ágeis.

Alternativas

O Testcontainers gerencia containers programaticamente de dentro do código de teste, o que muitas equipes preferem para testes de integração. Kubernetes com kind ou k3d executa um cluster local para configurações mais próximas de produção. O Compose continua sendo a forma mais simples de declarar e executar uma aplicação multi-container para desenvolvimento e CI.

Principais conclusões

  • O Docker Compose executa aplicações multi-container a partir de um arquivo YAML.
  • Ele conecta serviços em rede e os gerencia como uma unidade.
  • Em CI, é ideal para levantar dependências reais para testes de integração.

Guias relacionados