Feb 04, 2026
Bruno S.
6min Ler
O Docker Compose é uma ferramenta criada para definir e executar projetos com múltiplos containers. Ele é muito usado por desenvolvedores para simplificar a gestão de serviços que dependem uns dos outros — como uma aplicação front-end conectada a um banco de dados — permitindo administrar toda a stack de forma centralizada.
Em termos simples, quando falamos o que é Docker Compose, estamos falando de uma forma prática de organizar e rodar vários containers ao mesmo tempo, sem precisar gerenciar cada um separadamente.
Usando um único arquivo YAML, o Docker Compose permite definir toda a infraestrutura necessária para a aplicação, incluindo a imagem dos containers, a configuração de rede interna e os volumes persistentes. Depois disso, basta executar o comando docker compose up para criar e iniciar todos os containers com base nessa configuração.
Ao longo do ciclo de vida do projeto, você pode gerenciar os containers com outros comandos do Compose. Por exemplo, docker compose down encerra e remove todos os serviços, enquanto docker compose ps lista os containers em execução definidos no arquivo YAML.
Para usar o Docker Compose, é necessário ter o Docker Engine e a Docker CLI instalados. Em seguida, você pode configurar o Compose baixando o plugin pelo gerenciador de pacotes do seu sistema ou pelo Homebrew. Se você usa o Docker Desktop, o Docker Compose já vem incluído por padrão.
Continue explorando para entender melhor o que é Docker Compose e como ele pode facilitar o gerenciamento de aplicações baseadas em múltiplos containers.
O Docker Compose é uma ferramenta que permite definir e executar aplicações Docker com múltiplos containers de forma simples. Seu principal objetivo é centralizar e padronizar o gerenciamento de vários serviços que fazem parte da mesma aplicação.
De forma prática, quando alguém pergunta o que é Docker Compose, a resposta é: uma maneira eficiente de organizar como os containers de uma aplicação funcionam juntos. Ele usa um único arquivo YAML, onde você define tudo sobre os serviços — qual imagem cada um usa, como eles se comunicam entre si e onde os dados persistentes são armazenados. Com essa configuração, fica muito mais fácil criar, iniciar e gerenciar os containers.
O Docker Compose funciona definindo três componentes principais de aplicações com múltiplos containers em um arquivo YAML: services (serviços), networks (redes) e volumes.
Quando você faz o deploy de uma aplicação a partir desse arquivo, o Docker Compose faz o pull ou o build da imagem necessária para criar cada serviço — que, na prática, é um container em execução.
Em seguida, o Docker Compose cria uma rede interna para permitir que os serviços se comuniquem entre si e inicializa os volumes, usados para armazenar dados persistentes que podem ser compartilhados entre containers. Ele também configura as variáveis de ambiente de cada serviço, facilitando a troca de informações sem precisar “hardcodar” dados sensíveis dentro das imagens.
Todas essas definições — qual imagem usar, como a rede será configurada, onde os volumes persistentes serão montados e quais variáveis de ambiente incluir — ficam centralizadas no arquivo YAML. Isso significa que você consegue criar, iniciar e gerenciar toda a aplicação a partir de um único arquivo.
Abaixo está um exemplo real de um arquivo YAML do Docker Compose que define um projeto com dois serviços interligados: uma aplicação web simples e uma instância de cache Redis.
Para facilitar o entendimento, os comentários explicam o que cada linha faz:
services:
web: # Serviço da aplicação web
build: . # Cria a imagem a partir do Dockerfile no diretório atual
ports:
- "8000:5000" # Mapeia a porta 8000 do host para a porta 5000 do container
depends_on:
- redis # Garante que o serviço 'redis' seja iniciado antes do 'web'
volumes:
- ./:/app # Monta o diretório atual no container em /app (bind mount)
environment:
REDIS_HOST: ${REDIS_HOST:-redis} # Define REDIS_HOST via variável de ambiente ou usa 'redis' como padrão
redis: # Serviço do cache Redis
image: redis:6 # Usa a imagem oficial do Redis (versão 6)
expose:
- "6379" # Expõe a porta 6379 apenas para outros serviços na rede Docker
volumes:
- redis_data:/data # Persiste os dados do Redis em um volume nomeado
volumes:
redis_data: {} # Declara o volume nomeado para persistência dos dados do RedisVale notar que, dependendo da sua aplicação, dos serviços usados e da configuração necessária, o conteúdo do arquivo YAML pode variar bastante.
Os passos para instalar o Docker Compose variam de acordo com o tipo de instalação do Docker e com o sistema operacional que você usa.
Se você utiliza o Docker Desktop, o Compose já vem configurado por padrão. Já no Docker CLI, é possível instalar o plugin do Compose pelo repositório oficial ou manualmente. Aqui, vamos mostrar o método pelo repositório oficial, que facilita atualizações futuras.
Antes de continuar, certifique-se de que o Docker Engine e a Docker CLI já estão configurados. Caso ainda não estejam, vale conferir nosso guia de instalação do Docker no Ubuntu para ver o passo a passo completo.
Depois de configurar o Engine e a CLI, instale o Docker Compose conforme o seu sistema operacional. No Linux, a instalação pode ser feita usando o gerenciador de pacotes do sistema. Em distribuições baseadas em Debian, como Ubuntu, use os comandos abaixo:
sudo apt update
sudo apt install docker-compose-plugin
Se você estiver usando uma distribuição que não seja baseada em Debian, basta substituir o apt pelo gerenciador de pacotes correspondente. Por exemplo, em distribuições baseadas em RHEL, use dnf.
No macOS, você pode instalar o Docker Compose via Homebrew com o comando:
brew install docker-compose
Tanto no Linux quanto no macOS, dá para verificar se o Docker Compose foi instalado corretamente executando:
docker compose version
Se tudo estiver configurado corretamente, o terminal exibirá a versão do Docker Compose instalada no sistema.

Usar o Docker Compose permite definir a configuração da aplicação, executar toda a stack e gerenciar seu ciclo de vida usando uma única ferramenta.
Para mostrar o que é Docker Compose na prática e como ele funciona em um cenário real, vamos imaginar que você queira rodar o WordPress no Ubuntu usando Docker. O fluxo básico seria assim:
docker compose up
docker compose down
Você pode alterar o comportamento do comando docker compose usando flags. Por exemplo, se o arquivo de configuração não tiver o nome padrão, use a flag -f ou –file para indicar qual arquivo o Docker deve ler:
docker compose -f seu-arquivo-do-compose.yaml up
Por padrão, o Docker Compose cria os containers no diretório atual. Para fazer o deploy a partir de outro local, use a flag –project-directory:
docker compose --project-directory /full/deployment/path up
Por padrão, o Docker Compose executa a aplicação diretamente na sessão principal do terminal. Se você quiser rodar tudo em segundo plano, adicione a flag -d ou –detach.
Também é possível combinar várias flags usando uma barra invertida. Por exemplo, para fazer o deploy a partir de um arquivo YAML com nome específico e em outro diretório:
docker compose -f /path/to/my-docker-compose.yaml --project-directory /path/to up
Ao remover containers, os dados continuam preservados porque ficam armazenados em volumes persistentes. Se você quiser remover os volumes também, use a flag –volumes:
docker compose down --volumes
Além dos comandos up e down, o Docker Compose oferece várias opções para gerenciar toda a stack da aplicação. Os mais usados são:
O Docker reúne vários conceitos, termos e ferramentas, cada um com uma função específica dentro do ecossistema de containers. Entender essas diferenças ajuda a usar a plataforma de forma mais eficiente.
O Docker Compose faz parte desse ecossistema e costuma ser confundido com o Docker CLI. Ambos são ferramentas de linha de comando usadas para gerenciar recursos no Docker, mas têm propósitos diferentes.
A seguir, veja uma comparação direta entre Docker CLI e Docker Compose:
| Aspecto | Docker CLI | Docker Compose |
|---|---|---|
| Caso de uso | Mais indicado para configurações com um único container | Criado para aplicações com múltiplos containers |
| Orquestração | Manual – é preciso iniciar cada container separadamente | Automatizada – todos os serviços são gerenciados a partir de um único arquivo YAML |
| Formato de configuração | Definida diretamente no comando, usando flags | Declarada dentro de um arquivo YAML |
| Reutilização e portabilidade | Difícil de compartilhar e reproduzir setups complexos, já que a configuração fica no comando | Fácil de versionar e reutilizar, pois toda a configuração fica em um arquivo único |
| Ambiente de testes e desenvolvimento | Trabalhoso em ambientes com vários serviços | Ideal para desenvolvimento local, com todos os serviços centralizados |
| Uso em produção | Adequado para projetos simples | Pode ser usado em produção, mas costuma ser substituído por Docker Swarm ou Kuber |
Depois de aprender o que é Docker Compose e como usá-lo, você já consegue gerenciar projetos com vários serviços de forma prática e eficiente. No entanto, em cenários reais, é comum precisar trabalhar com containers individuais — seja para adicionar um novo serviço, ajustar configurações específicas ou resolver problemas pontuais da aplicação.
Vale lembrar que, embora o Docker Compose e os containers sejam conceitos centrais da plataforma, projetos maiores costumam exigir outras ferramentas. À medida que sua aplicação cresce, pode fazer sentido migrar para soluções como Kubernetes ou Docker Swarm, que oferecem mais controle e confiabilidade no gerenciamento de múltiplos containers em escala.
Se você quiser fazer o deploy de uma aplicação em containers usando um VPS da Hostinger, pode usar o Docker Compose Manager. Ele oferece um painel de gerenciamento integrado ao hPanel, facilitando tanto a implantação quanto a administração de aplicações baseadas em Docker.

Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.