Introdução

No mundo real, nenhuma aplicação é uma ilha. Você vai precisar de um banco de dados, um broker de mensagens ou um cache. Tentar gerenciar tudo isso manualmente é pedir para ter dor de cabeça com rede e dependência de serviços.

O Docker Compose chega para ser o maestro dessa orquestra. Em vez de você explicar para o Docker como rodar cada peça, você declara o que você quer em um arquivo docker-compose.yml e ele se vira para montar o cenário.

A Stack: Flask + Redis

Nesse exemplo, temos uma API simples que conta visitas. O pulo do gato aqui é que a aplicação não precisa saber o IP do banco; ela simplesmente chama pelo nome do serviço: redis.

O arquivo mágico (docker-compose.yml)

Dá um ligue na simplicidade desse arquivo para subir uma infra que, antigamente, levaria horas configurando o SO:

YAML

version: '3.8'
services:
  web:
    build: . # Dockerfile tá na mesma pasta
    ports:
      - "5000:5000"
    volumes:
      - .:/code # Mapeia seu código local pra dentro do container
    depends_on:
      - redis # Só sobe a web depois que o redis estiver de pé
  
  redis:
    image: "redis:alpine" # Imagem leve e direta ao ponto

Por que isso é "coisa de profissional"?

  1. Service Discovery Nativo: O Docker cria uma rede interna onde o serviço web consegue pingar o redis pelo nome. Nada de IPs variáveis ou gambiarras no /etc/hosts.

  2. Desenvolvimento Ágil: Com a linha de volumes, você altera o código no seu VS Code e a mudança reflete na hora dentro do container. É o famoso hot reload sem complicação.

  3. Gerenciamento de Ciclo de Vida: Com um comando você sobe tudo (up), e com outro limpa a casa (down).

Comandos que você vai usar todo dia

Aqui é onde a produtividade acontece. Decora esses quatro e você já é 50% mais rápido que a média:

Bash

# Sobe a stack toda em background (o 'd' é de detached)
docker-compose up -d

# Deu erro? Acompanha o log da aplicação em tempo real
docker-compose logs -f web

# Precisa reiniciar só o banco?
docker-compose restart redis

# Terminou o dia? Derruba tudo e limpa os recursos
docker-compose down

Conclusão

Usar Docker Compose não é luxo, é sobrevivência. Ele garante que o seu ambiente de desenvolvimento seja um espelho fiel (ou muito próximo) do que vai rodar em homologação e produção.

Se você ainda está subindo container por container, pare agora. Centralize sua stack num YAML e gaste seu tempo com o que importa: código e café.


Dúvidas sobre como conectar outros bancos? Me chama no LinkedIn ou deixa um comentário.