Voltar ao blog

Tecnologia

Docker e Docker Compose: entenda como funcionam e aprenda a subir seus primeiros containers

Docker permite empacotar aplicações com tudo o que elas precisam para funcionar. Com Docker Compose, vários serviços podem ser executados juntos usando apenas alguns comandos.

Omi Tecnologia10 de setembro de 2026 4 min de leitura
Capa do artigo Docker e Docker Compose: entenda como funcionam e aprenda a subir seus primeiros containers

Quem trabalha com desenvolvimento provavelmente já encontrou frases como:

docker build
docker run
docker compose up

Para quem está começando, esses comandos podem parecer apenas mais uma camada de complexidade.

Na prática, Docker resolve um dos problemas mais antigos do desenvolvimento de software: garantir que uma aplicação funcione de maneira semelhante em diferentes ambientes.

O que é Docker?

Docker é uma plataforma utilizada para executar aplicações dentro de containers.

Um container reúne a aplicação e suas dependências em um ambiente isolado.

Isso permite que o desenvolvedor defina exatamente quais versões de bibliotecas, linguagens e ferramentas serão utilizadas.

Imagine uma aplicação Django que precisa de:

Python 3.12
Django
PostgreSQL
Redis

Em vez de configurar tudo manualmente em cada servidor, o projeto pode definir essas dependências dentro da estrutura Docker.

O mesmo ambiente pode então ser executado no computador do desenvolvedor, em um servidor ou em uma infraestrutura de nuvem.

O que é uma imagem Docker?

Antes de criar um container, normalmente criamos uma imagem.

A imagem funciona como uma espécie de modelo da aplicação.

Ela contém instruções sobre como aquele ambiente deve ser construído.

Essas instruções ficam geralmente em um arquivo chamado:

Dockerfile

Um Dockerfile simples para uma aplicação Python poderia ser:

FROM python:3.12

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Cada linha descreve uma etapa necessária para preparar o ambiente.

Como criar uma imagem Docker?

Dentro da pasta onde está o Dockerfile, execute:

docker build -t minha-aplicacao .

O parâmetro:

-t minha-aplicacao

define o nome da imagem.

O ponto no final:

.

indica que o Docker deve utilizar o diretório atual como contexto para a construção.

Depois disso, você pode verificar as imagens disponíveis:

docker images

Como subir um container?

Com a imagem criada, execute:

docker run minha-aplicacao

Esse comando cria e inicia um container utilizando aquela imagem.

Para executar em segundo plano:

docker run -d minha-aplicacao

O -d significa detached mode.

Como liberar uma porta?

Imagine que sua aplicação funciona na porta 8000 dentro do container.

Você pode expor essa porta para o computador utilizando:

docker run -d -p 8000:8000 minha-aplicacao

A estrutura é:

porta_do_computador:porta_do_container

Nesse caso:

8000:8000

significa que acessar:

localhost:8000

direcionará a requisição para a porta 8000 do container.

Como ver os containers em execução?

Use:

docker ps

Para visualizar também containers que já foram encerrados:

docker ps -a

Como parar um container?

Primeiro encontre o ID ou nome:

docker ps

Depois execute:

docker stop nome-do-container

Também é possível utilizar o ID:

docker stop 7fd41abc1234

E onde entra o Docker Compose?

Projetos reais raramente possuem apenas um serviço.

Uma aplicação web pode precisar de:

Backend
Banco de dados
Redis
Nginx
Worker

Executar cada container manualmente seria trabalhoso.

Docker Compose permite definir todos esses serviços em um único arquivo:

docker-compose.yml

ou, em projetos mais recentes:

compose.yaml

Um exemplo simples:

services:

  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_DB: app
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres

Aqui temos dois containers.

O serviço web executa a aplicação.

O serviço db executa PostgreSQL.

O Compose cuida da criação e comunicação entre os serviços.

Como subir tudo com Docker Compose?

Na pasta onde está o arquivo Compose, execute:

docker compose up

Para executar em segundo plano:

docker compose up -d

Esse é provavelmente um dos comandos mais utilizados no dia a dia com Docker.

Como reconstruir a aplicação?

Se houve alteração no Dockerfile ou nas dependências, pode ser necessário reconstruir a imagem.

Use:

docker compose up -d --build

O Docker recria as imagens necessárias e inicia novamente os serviços.

Como visualizar os containers do Compose?

Execute:

docker compose ps

Você verá os serviços definidos no projeto e o estado atual de cada container.

Como acompanhar os logs?

Para visualizar logs de todos os serviços:

docker compose logs

Para acompanhar em tempo real:

docker compose logs -f

Também é possível visualizar apenas um serviço:

docker compose logs -f web

Esse comando costuma ser essencial para encontrar erros durante deploys e desenvolvimento.

Como entrar dentro de um container?

Imagine que você precisa executar um comando diretamente no container da aplicação.

Use:

docker compose exec web bash

Se a imagem não possuir Bash:

docker compose exec web sh

Em uma aplicação Django, também poderíamos executar:

docker compose exec web python manage.py migrate

Ou:

docker compose exec web python manage.py createsuperuser

Como parar os serviços?

Para encerrar os containers:

docker compose down

Isso remove os containers criados pelo Compose, mas normalmente preserva imagens e volumes.

Se quiser apenas parar:

docker compose stop

E iniciar novamente:

docker compose start

Os comandos essenciais

Para começar, estes são os comandos que você provavelmente mais utilizará:

docker build -t minha-aplicacao .

docker images

docker ps

docker ps -a

docker run -d -p 8000:8000 minha-aplicacao

docker stop nome-do-container

docker compose up -d

docker compose up -d --build

docker compose ps

docker compose logs -f

docker compose exec web bash

docker compose down

Com esses comandos já é possível construir imagens, subir containers, acompanhar aplicações e gerenciar boa parte de um ambiente Docker básico.

Por que Docker se tornou tão comum?

Containers ajudam a padronizar ambientes de desenvolvimento e produção.

Uma equipe pode definir a infraestrutura necessária dentro do próprio projeto e compartilhar essa configuração entre desenvolvedores.

Também facilita deploys em serviços de nuvem, servidores Linux e plataformas de containers.

Para projetos que possuem backend, banco de dados, cache e outros serviços, Docker Compose torna essa estrutura ainda mais simples de reproduzir.

Com poucos comandos, uma infraestrutura inteira pode ser iniciada.

E esse é um dos principais motivos pelos quais Docker se tornou uma ferramenta tão presente no desenvolvimento moderno.