Docker Compose simplifica aplicações com múltiplos containers. Defina toda sua stack (app, database, cache) em um arquivo YAML e suba tudo com um comando.
Conceitos Principais
docker-compose.yml
Arquivo de configuração YAML que define services, networks e volumes. Cada service é um container. Compose cria network privada automática.
Services
Containers da aplicação. Define imagem ou build, portas, volumes, env vars. Services se comunicam pelo nome (ex: postgres:5432).
Networks
Isolamento entre stacks. Compose cria network padrão. Services na mesma network se descobrem por DNS. Pode criar networks customizadas.
Volumes
Persistência de dados. Named volumes para databases. Bind mounts para hot reload em dev. Volumes sobrevivem a `docker-compose down`.
Passo a Passo
Boas Praticas
Recomendacoes
• Use .env file para secrets e configs
• Defina healthchecks para depends_on correto
• Named volumes para dados importantes
• docker-compose.override.yml para dev local
Erros Comuns
Evite estes erros
• Não versionar docker-compose.yml
• Hardcodar senhas no YAML (use .env)
• Esquecer depends_on (app sobe antes do DB)