Buscar

Ferramentas

Docker Compose

Ferramenta oficial do Docker para descrever vários contêineres num arquivo YAML e subir tudo com um comando. Para devs e times de infraestrutura.

  • DevOps e Infraestrutura
Docker Compose

Quem roda uma aplicação com banco, cache e servidor web em contêineres separados logo cansa de digitar um docker run para cada peça. O Docker Compose resolve isso com um arquivo compose.yaml, onde você declara serviços, redes e volumes. Um único docker compose up cria e liga todos os serviços de uma vez.

Para que serve

  • Subir o ambiente de desenvolvimento completo de um projeto, igual na máquina de cada pessoa do time.
  • Ligar, parar e reconstruir serviços, ver o status de cada um e acompanhar os logs juntos.
  • Rodar um comando avulso dentro de um serviço, como uma migração de banco.
  • Repetir o mesmo stack em staging, produção, testes e pipelines de CI, ambientes que a documentação oficial cita.

Como começar

No Windows e no macOS, o Compose já vem no Docker Desktop. No Ubuntu ou Debian com o repositório do Docker configurado, a documentação manda instalar o plugin:

sudo apt-get install docker-compose-plugin
docker compose version

O README resume o fluxo em três passos: descrever o ambiente do app num Dockerfile, declarar os serviços no compose.yaml e rodar docker compose up. O exemplo do repositório tem um serviço web, construído a partir da pasta atual, e um redis, puxado de imagem pronta. Se você ainda está começando, o guia Docker para Iniciantes explica imagens e contêineres antes do Compose.

Licença e custo

O Compose usa Apache 2.0. Ela permite usar, alterar e redistribuir o código em qualquer projeto, com duas condições: manter o aviso de licença nas cópias e marcar nos arquivos modificados o que mudou. O plugin não tem cobrança. A versão antiga em Python fica no branch v1 do repositório.

Quando vale a pena

Para quem tem dois ou mais contêineres que dependem um do outro, o Compose costuma ser o primeiro passo depois do Docker puro, porque a configuração vira um arquivo versionado junto do código. O README avisa que o Docker Swarm não suporta por completo a especificação atual do Compose. Para orquestrar muitos servidores, o caminho comum é Kubernetes. Para gerenciar os stacks por interface gráfica, o Portainer lê arquivos Compose.