Cheat Sheet Docker — Comandos e Compose

Os comandos do Docker e Docker Compose que você usa toda semana, explicados em uma linha. Defina sua imagem, container, portas e serviço uma vez — todos os comandos são atualizados e prontos para copiar.

Atualizado em
Seus valoresTodos os exemplos abaixo são atualizados enquanto você digita

Imagens

10
docker pull node:22-alpine

Baixe uma imagem de um registro.

docker image ls

Liste as imagens locais com seus tamanhos.

docker build -t myapp:1.0 .

Crie uma imagem a partir do Dockerfile da pasta atual.

docker build -t myapp:1.0 -f Dockerfile.prod .

Faça o build com outro Dockerfile.

docker build --no-cache -t myapp:1.0 .

Refaça todas as camadas do zero.

docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/acme/myapp:1.0 --push .

Faça o build para Intel e ARM (ex.: Apple Silicon, Graviton) e envie as duas versões.

docker tag myapp:1.0 ghcr.io/acme/myapp:1.0

Dê um nome de registro à imagem antes de enviar.

docker push ghcr.io/acme/myapp:1.0

Envie uma imagem para um registro.

docker history myapp:1.0

Mostre as camadas de uma imagem e o tamanho de cada uma.

docker rmi myapp:1.0

destrutivo Apague uma imagem local.

Executar containers

8
docker run -d --name web -p 8080:3000 myapp:1.0

Execute em segundo plano e publique a porta {{cport}} do container na porta {{hport}} do host.

docker run --rm -it node:22-alpine sh

Abra um shell interativo descartável; o container é removido ao sair.

docker run -d --restart unless-stopped --name web myapp:1.0

Reinicie automaticamente após falhas e reinicializações.

docker run --env-file .env -e NODE_ENV=production myapp:1.0

Passe variáveis de ambiente de um arquivo e pela linha de comando.

docker run -v app-data:/data myapp:1.0

Monte um volume nomeado para que os dados sobrevivam à remoção do container.

docker run --rm -v "$(pwd)":/app -w /app node:22-alpine npm test

Monte a pasta atual e execute um comando dentro dela.

docker run --memory 512m --cpus 1.5 myapp:1.0

Limite memória e CPU.

docker run -d --network app-net --name web myapp:1.0

Conecte-se a uma rede definida pelo usuário para que os containers se encontrem pelo nome.

Gerenciar containers

10
docker ps -a

Liste todos os containers, inclusive os parados.

docker logs -f --tail 100 web

Acompanhe as últimas 100 linhas de log.

docker exec -it web sh

Abra um shell em um container em execução (use bash se a imagem tiver).

docker stop web

Pare com segurança (SIGTERM e, após 10 s, SIGKILL).

docker restart web

Reinicie um container.

docker cp web:/app/logs ./logs

Copie arquivos para fora de um container (inverta os argumentos para copiar para dentro).

docker stats

Uso ao vivo de CPU, memória, rede e disco dos containers em execução.

docker inspect -f '{{.State.Health.Status}}' web

Leia um campo dos detalhes do container — aqui, o status do health check.

docker port web

Mostre quais portas do host estão mapeadas para o container.

docker rm -f web

destrutivo Pare e apague um container.

Docker Compose

12
docker compose up -d

Inicie todos os serviços em segundo plano.

docker compose up -d --build

Refaça as imagens e depois inicie.

docker compose ps

Liste os serviços e seus estados.

docker compose logs -f api

Acompanhe os logs de um serviço.

docker compose exec api sh

Abra um shell em um serviço em execução.

docker compose run --rm api npm run migrate

Execute um comando único em um novo container de um serviço.

docker compose restart api

Reinicie um serviço.

docker compose pull

Baixe as imagens mais recentes de todos os serviços.

docker compose config

Valide o arquivo e mostre a configuração final combinada.

docker compose -f compose.yml -f compose.prod.yml up -d

Sobreponha um arquivo de override sobre o arquivo base.

docker compose down

Pare e remova containers e redes (os volumes são mantidos).

docker compose down -v

destrutivo Também apaga os volumes — seus bancos de dados serão perdidos.

Volumes & redes

6
docker volume ls

Liste os volumes.

docker volume inspect app-data

Mostre onde um volume fica no host.

docker run --rm -v app-data:/data -v "$(pwd)":/backup alpine tar czf /backup/app-data.tar.gz -C /data .

Faça backup de um volume em um .tar.gz na pasta atual.

docker network create app-net

Crie uma rede para containers que precisam se comunicar.

docker network connect app-net web

Conecte um container em execução a uma rede.

docker volume rm app-data

destrutivo Apague um volume e seus dados.

Liberar espaço em disco

5
docker system df

Mostre quanto espaço ocupam imagens, containers, volumes e cache de build.

docker builder prune

Remova o cache de build não utilizado.

docker image prune -a

destrutivo Remova todas as imagens não usadas por nenhum container.

docker system prune

destrutivo Remova containers parados, redes não usadas, imagens órfãs e cache de build.

docker system prune -a --volumes

destrutivo Remova tudo que não está em uso, inclusive volumes. Último recurso.

Depuração

5
docker run --rm -it --entrypoint sh myapp:1.0

Inicie uma imagem com um shell em vez do comando normal — útil para imagens que falham ao iniciar.

docker logs web 2>&1 | grep -i error

Pesquise nos logs de um container (stdout e stderr).

docker exec web env

Mostre as variáveis de ambiente que o container realmente enxerga.

docker compose exec api wget -qO- localhost:3000/health

Chame um endpoint de health check de dentro do serviço.

docker events --since 10m

Acompanhe os eventos recentes do Docker: inícios, paradas, encerramentos por OOM e mudanças de saúde.

Seus dados nunca saem do seu computador. Todo o processamento acontece localmente no navegador.

Como usar: Cheat Sheet Docker

  1. Digite seus próprios valores (imagem, container, portas, serviço) nos campos do topo — todos os exemplos da página são atualizados na hora.
  2. Pesquise ou pule para uma seção para encontrar o comando que você precisa.
  3. Clique em Copiar para copiar uma linha pronta para executar, ou em Copiar seção para um bloco comentado.
  4. Comandos marcados como destrutivos apagam ou sobrescrevem dados — leia a nota antes de executá-los.

Imagens, containers, volumes e redes

Uma imagem é um sistema de arquivos empacotado com o comando de inicialização, criada a partir de um Dockerfile. Um container é uma cópia em execução de uma imagem. Tudo o que um container grava desaparece quando ele é removido, a menos que vá para um volume. Containers na mesma rede definida pelo usuário se encontram pelo nome, e é assim que os serviços do Compose conversam com o banco de dados.

Entendendo -p e -v

As duas flags seguem o formato host:container. -p 8080:3000 significa “requisições na porta 8080 da minha máquina vão para a porta 3000 do container”. -v app-data:/data monta o volume nomeado app-data em /data; já -v "$(pwd)":/app monta a pasta atual, e é assim que você consegue recarregar o código em tempo real no desenvolvimento.

Imagens menores e builds mais rápidos

  • Comece com bases enxutas como -alpine ou -slim, e use builds em múltiplos estágios para que compiladores não vão para produção.
  • Copie os arquivos de dependências e instale antes de copiar o restante do código, para que a camada de instalação continue em cache.
  • Adicione um .dockerignore para node_modules, .git e a saída do build.

Escreva arquivos Compose com o gerador de Docker Compose, e configure o CI com o gerador de GitHub Actions.

Também pesquisado como: comandos docker, comandos docker compose, lista de comandos docker, docker run, docker exec, docker prune, referência docker.

Ferramentas que combinam com: Cheat Sheet Docker

  • Cheat Sheet de Comandos Linux — Os comandos Linux e bash que desenvolvedores usam em servidores e notebooks: arquivos, busca, permissões, processos, logs, rede e SSH.
  • Cheat Sheet do Git — Todos os comandos do Git que você usa no dia a dia — e os que precisa quando algo dá errado — explicados em uma linha.
  • Gerador de configuração do Nginx — Escolha o que o Nginx deve fazer — servir um site estático ou um SPA, atuar como proxy para um aplicativo Node/Python ou executar PHP — e marque os recursos extras.
  • Prompts de IA para Devs — Prompts testados na prática para as tarefas de código que você faz todo dia — debug, revisões, testes, refatoração, SQL, mensagens de commit e documentação.

Perguntas frequentes

Qual a diferença entre imagem e container?
Uma imagem é um template somente leitura criado a partir de um Dockerfile. Um container é uma instância em execução (ou parada) de uma imagem, com sua própria camada gravável. Uma mesma imagem pode rodar como vários containers.
Como liberar espaço em disco usado pelo Docker?
Verifique o uso com docker system df, depois remova o cache de build com docker builder prune e as imagens não usadas com docker image prune -a. docker system prune remove mais de uma vez — leia antes o que ele vai apagar.
É docker compose ou docker-compose?
Use docker compose (com espaço). É o Compose v2, embutido na CLI do Docker. A ferramenta separada docker-compose v1 está descontinuada.
Por que meus containers não se encontram?
Containers na rede bridge padrão não conseguem resolver o nome uns dos outros. Coloque-os em uma rede definida pelo usuário (docker network create) ou no mesmo projeto Compose, e use o nome do serviço ou do container como hostname.
Posso instalar o Cheat Sheet Docker como um aplicativo da web e usá-lo offline?
Sim. O Cheat Sheet Docker é um aplicativo da web instalável (PWA) — instalado a partir do seu navegador, não baixado de uma loja de aplicativos. Clique em “Instalar aplicativo” na parte superior desta página no Chrome ou no Edge (Windows, macOS, Linux, ChromeOS) ou, no Android, use “Compartilhar” → “Adicionar à tela inicial” no iPhone e no iPad, ou “Arquivo” → “Adicionar ao Dock” no Safari 17+ em um Mac. Em seguida, ela se abre em uma janela própria com seu próprio ícone e, como é executada inteiramente no seu navegador, continua funcionando offline. O Firefox no desktop não permite a instalação de aplicativos da web. Como funciona a instalação.

Ferramentas relacionadas