O que é Docker Compose e como usar

O que é Docker Compose e como usar

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 que é Docker Compose?

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.

Como o Docker Compose funciona?

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.

Exemplo de arquivo YAML do Docker Compose

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 Redis

Vale 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.

Como instalar o Docker Compose

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.

Como usar o Docker Compose

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:

  1. Use um editor de texto, como o nano, para criar um arquivo de configuração YAML ou YML. Você pode usar qualquer nome, mas o ideal é manter os padrões docker-compose.yml ou compose.yaml, pois isso facilita o gerenciamento.
  2. Dentro do arquivo YAML, defina as imagens do WordPress e do MySQL, junto com suas configurações — como rede, volumes persistentes e dependências entre serviços.
  3. Use o Docker Compose para criar e iniciar todos os serviços com base no arquivo de configuração:
docker compose up
  1. Ao longo do projeto, pode ser necessário parar e remover todos os containers para manutenção ou atualizações. Para isso, execute:
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

Executando containers em segundo plano 📦

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

Comandos mais usados do Docker Compose

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:

  • docker compose ps – lista os containers em execução gerenciados pelo Docker Compose, incluindo nome, imagem, serviço, status e portas.
  • docker compose logs – exibe os logs de todos os serviços. Com a flag -f, os logs são mostrados em tempo real.
  • docker compose start – inicia containers existentes que estavam parados.
  • docker compose stop – para containers em execução sem removê-los.
  • docker compose restart – reinicia imediatamente os containers.
  • docker compose build – força a reconstrução das imagens definidas com build no arquivo YAML. Use –no-cache para um rebuild limpo.
  • docker compose push – envia todas as imagens criadas para seus registries remotos.
  • docker compose pull – baixa todas as imagens necessárias para a stack sem iniciar os containers.

Qual é a diferença entre Docker e Docker Compose?

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:

AspectoDocker CLIDocker Compose
Caso de usoMais indicado para configurações com um único containerCriado para aplicações com múltiplos containers
OrquestraçãoManual – é preciso iniciar cada container separadamenteAutomatizada – todos os serviços são gerenciados a partir de um único arquivo YAML
Formato de configuraçãoDefinida diretamente no comando, usando flagsDeclarada dentro de um arquivo YAML
Reutilização e portabilidadeDifícil de compartilhar e reproduzir setups complexos, já que a configuração fica no comandoFácil de versionar e reutilizar, pois toda a configuração fica em um arquivo único
Ambiente de testes e desenvolvimentoTrabalhoso em ambientes com vários serviçosIdeal para desenvolvimento local, com todos os serviços centralizados
Uso em produçãoAdequado para projetos simplesPode ser usado em produção, mas costuma ser substituído por Docker Swarm ou Kuber

Qual é o próximo passo depois de usar o Docker Compose?

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.

Author
O autor

Bruno Santana

Jornalista formado pela Universidade Federal da Bahia e Especialista em Marketing de Conteúdo na Hostinger, onde atuo na criação e otimização de artigos úteis, envolventes e criativos em áreas como desenvolvimento web e, marketing. Além disso, sou colaborador eventual do site MacMagazine e da editoria de cultura do Jornal A Tarde, fascinado por arte, culinária e tecnologia.

O que dizem nossos clientes

Deixe uma resposta

Por favor, preencha os campos obrigatórios.Por favor, aceite os termos de privacidade.Por favor, preencha os campos obrigatórios e aceite a seleção dos termos de privacidade.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.