Cheatsheet

← Voltar para página principal
🐳 Docker Cheatsheet

Comandos essenciais para gerenciamento de containers e imagens

🐳 O que é Docker?

📖 Definição

Docker é uma plataforma de contêineres que permite criar, implantar e executar aplicações em ambientes isolados chamados contêineres. Ele utiliza virtualização no nível do sistema operacional para entregar software em pacotes chamados imagens.

💪 Por que aprender?

• Portabilidade entre ambientes
• Isolamento de aplicações
• Eficiência de recursos
• Deploy consistente
• Ecossistema rico de ferramentas

🚀 O que você pode fazer?

• Desenvolvimento web e APIs
• Microserviços
• CI/CD e DevOps
• Testes automatizados
• Cloud Native

💡 Onde você vai usar:
🐳 Containers
Apps, Microserviços
🔧 DevOps
CI/CD, Deploy
☁️ Cloud
AWS, Azure, GCP
Modern
Kubernetes, Orquestração
Filtro ativo:Todos
Total: 9 categoriasBásico: 3Intermediário: 4Avançado: 2

ℹ️ Informações Básicas

Use quando: Precisa verificar status do Docker, versões ou informações do sistema

📋Versão e Sistema

Básico
docker --version

# Versão Docker

Básico
docker info

# Informações do sistema

Básico
docker system info

# Info detalhada

Básico
docker system df

# Uso de espaço

📋Verificação

Básico
docker version

# Versão client/server

Básico
docker system events

# Eventos em tempo real

Básico
docker system events --since 1h

# Eventos última hora

Básico
docker system prune --filter until=24h

# Limpa recentes

📦 Containers

Use quando: Gerenciando ciclo de vida de containers, deploy ou debugging

📋Listar Containers

Básico
docker ps

# Containers rodando

Básico
docker ps -a

# Todos containers

Básico
docker ps -q

# Apenas IDs

Básico
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

# Formatado

📋Executar Containers

Básico
docker run -p 3001:3001 blueprint-backend

# Mapear porta

Básico
docker run -d --name backend -p 3001:3001 blueprint-backend

# Detached

Básico
docker run -it --rm alpine sh

# Interativo + remove

Básico
docker run -e NODE_ENV=production app

# Com variáveis

Básico
docker run -v $(pwd):/app -w /app node npm install

# Com volume

Básico
docker run --restart unless-stopped app

# Reinicia automático

Básico
docker run --memory="256m" app

# Limita memória

Básico
docker run --cpus="0.5" app

# Limita CPU

📋Gerenciar Containers

Básico
docker stop container_name

# Parar container

Básico
docker stop $(docker ps -q)

# Parar todos

Básico
docker rm container_name

# Remover container

Básico
docker rm $(docker ps -aq)

# Remover todos

Básico
docker restart container_name

# Reiniciar

Básico
docker pause container_name

# Pausa container

Básico
docker unpause container_name

# Despausa container

Básico
docker kill container_name

# Força parada

🖼️ Imagens

Use quando: Criando, gerenciando ou limpando imagens Docker

📋Listar Imagens

Básico
docker images

# Listar imagens

Básico
docker images -a

# Incluir intermediárias

Básico
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

# Formatado

📋Build de Imagens

Básico
docker build -t blueprint-backend ./backend

# Build básico

Básico
docker build -t blueprint-frontend ./frontend

# Build frontend

Básico
docker build --no-cache -t app:latest .

# Sem cache

Básico
docker build --target production -t app:prod .

# Multi-stage

Básico
docker build --build-arg NODE_ENV=production -t app .

# Com args

Básico
docker build --progress=plain -t app .

# Build detalhado

Básico
docker build --squash -t app .

# Squash layers

Básico
docker build --label version=1.0 -t app .

# Com labels

📋Gerenciar Imagens

Básico
docker rmi image_name

# Remover imagem

Básico
docker rmi $(docker images -q)

# Remover todas

Básico
docker image prune

# Imagens não usadas

Básico
docker image prune -a

# Todas órfãs

Básico
docker tag source:latest target:1.0

# Renomeia imagem

Básico
docker push registry.com/app:latest

# Push registry

Básico
docker pull registry.com/app:latest

# Pull registry

📊 Logs e Monitoramento

Use quando: Debugging, monitoramento ou análise de problemas

📋Logs de Containers

Intermediário
docker logs container_name

# Ver logs

Intermediário
docker logs -f container_name

# Follow logs

Intermediário
docker logs --tail 50 container_name

# Últimas 50 linhas

Intermediário
docker logs --since="2h" container_name

# Últimas 2 horas

Intermediário
docker logs --timestamps container_name

# Com timestamps

📋Monitoramento

Intermediário
docker stats

# Estatísticas em tempo real

Intermediário
docker stats container_name

# Container específico

Intermediário
docker top container_name

# Processos no container

Intermediário
docker stats --no-stream

# Estatísticas estáticas

Intermediário
docker stats --format "table {{.Container}}\t{{.CPUPerc}}"

# Formatado

Intermediário
docker events

# Eventos Docker

📋Inspeção

Intermediário
docker inspect container_name

# Detalhes container

Intermediário
docker inspect image_name

# Detalhes imagem

⚡ Execução e Interação

Use quando: Precisa interagir com containers em execução ou transferir arquivos

📋Executar Comandos

Intermediário
docker exec -it container_name bash

# Shell no container

Intermediário
docker exec -it container_name sh

# Shell básico

Intermediário
docker exec container_name ls -la /app

# Comando específico

📋Copiar Arquivos

Intermediário
docker cp file.txt container_name:/app/

# Host → Container

Intermediário
docker cp container_name:/app/logs ./logs

# Container → Host

📋Portas e Rede

Intermediário
docker port container_name

# Portas mapeadas

Intermediário
docker run -p 8080:80 nginx

# Mapear porta

Intermediário
docker run -P nginx

# Mapear automático

Intermediário
docker exec -u root container bash

# Como root

Intermediário
docker exec -d container sleep 60

# Background

Intermediário
docker exec -it container --env VAR=value cmd

# Com variáveis

🧹 Limpeza e Manutenção

Use quando: Precisa liberar espaço em disco ou limpar ambiente Docker

⚠️ ⚠️ ATENÇÃO: O comando docker system prune -a --volumes removerá TODOS os dados não utilizados, incluindo volumes. Use com extrema cautela!

📋Limpeza Geral

Intermediário
docker system prune

# Remove dados não usados

Intermediário
docker system prune -a

# Remove tudo não usado

Intermediário
docker system prune --volumes

# Inclui volumes

📋Limpeza Específica

Intermediário
docker container prune

# Containers parados

Intermediário
docker image prune

# Imagens órfãs

Intermediário
docker volume prune

# Volumes não usados

Intermediário
docker network prune

# Redes não usadas

Intermediário
docker system df -v

# Detalhado

Intermediário
docker system events --filter type=container

# Filtra eventos

Intermediário
docker builder prune

# Limpa cache build

📋Verificar Espaço

Intermediário
docker system df

# Uso de espaço

Intermediário
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

# Tamanho imagens

🔧 Docker Compose

Use quando: Trabalhando com aplicações multi-container ou ambientes de desenvolvimento

📋Comandos Básicos

Intermediário
docker-compose --version

# Versão Compose

Intermediário
docker-compose up

# Subir serviços (foreground)

Intermediário
docker-compose up -d

# Subir (background)

Intermediário
docker-compose up backend

# Serviço específico

Intermediário
docker-compose up --build

# Rebuild antes

Intermediário
docker-compose up --force-recreate

# Recriar containers

Intermediário
docker-compose up --remove-orphans

# Remove órfãos

Intermediário
docker-compose up --no-deps

# Sem dependências

Intermediário
docker-compose up --timeout 30

# Timeout customizado

📋Parar e Remover

Intermediário
docker-compose down

# Para e remove containers

Intermediário
docker-compose down -v

# Inclui volumes

Intermediário
docker-compose stop

# Apenas para

Intermediário
docker-compose stop backend

# Serviço específico

Intermediário
docker-compose down --rmi all

# Remove imagens

Intermediário
docker-compose down --timeout 10

# Timeout customizado

Intermediário
docker-compose rm -f

# Força remoção

Intermediário
docker-compose down --remove-orphans

# Remove órfãos

📋Logs e Execução

Intermediário
docker-compose logs

# Logs todos serviços

Intermediário
docker-compose logs -f

# Follow logs

Intermediário
docker-compose logs backend

# Serviço específico

Intermediário
docker-compose exec backend bash

# Shell no container

Intermediário
docker-compose exec backend cargo build

# Comando específico

Intermediário
docker-compose logs --tail 50 backend

# Últimas 50 linhas

Intermediário
docker-compose logs --since="1h" backend

# Última hora

Intermediário
docker-compose exec -T backend ls -la

# Sem TTY

Intermediário
docker-compose exec -u root backend bash

# Como usuário específico

📋Build e Scale

Intermediário
docker-compose build

# Build todos serviços

Intermediário
docker-compose build backend

# Build específico

Intermediário
docker-compose build --no-cache

# Sem cache

Intermediário
docker-compose up -d --scale backend=3

# 3 instâncias

Intermediário
docker-compose pull

# Atualiza imagens

Intermediário
docker-compose config

# Valida configuração

Intermediário
docker-compose ps

# Status serviços

Intermediário
docker-compose build --parallel

# Build paralelo

Intermediário
docker-compose build --progress=plain

# Build detalhado

Intermediário
docker-compose up --scale web=2 --scale db=1

# Múltiplos serviços

📋Variáveis de Ambiente

Intermediário
docker-compose run --env VAR=value backend

# Variável inline

Intermediário
docker-compose run --env-file .env backend

# Arquivo .env

Intermediário
docker-compose config --services

# Ver configuração

Intermediário
docker-compose --env-file prod.env up

# Ambiente específico

Intermediário
docker-compose run --rm backend env

# Ver variáveis

Intermediário
docker-compose exec backend printenv

# Variáveis no container

Intermediário
docker-compose --project-name projeto up

# Nome do projeto

📋Volumes e Redes

Intermediário
docker-compose up -d --volume-driver local

# Driver de volume

Intermediário
docker-compose exec backend ls /data

# Listar volume

Intermediário
docker-compose run --rm backend ls /shared

# Volume compartilhado

Intermediário
docker-compose up --network-alias web

# Alias na rede

Intermediário
docker-compose exec backend ping database

# Conectividade

Intermediário
docker-compose down --volumes

# Remove volumes

Intermediário
docker volume ls | grep projeto

# Volumes do projeto

Intermediário
docker network ls | grep projeto

# Redes do projeto

📋Dependências e Serviços

Intermediário
docker-compose up --no-deps backend

# Sem dependências

Intermediário
docker-compose up --force-recreate --no-deps

# Recriar sem deps

Intermediário
docker-compose restart backend

# Reiniciar serviço

Intermediário
docker-compose restart

# Reiniciar todos

Intermediário
docker-compose pause backend

# Pausar serviço

Intermediário
docker-compose unpause backend

# Despausar serviço

Intermediário
docker-compose kill backend

# Matar serviço

Intermediário
docker-compose up --scale backend=0

# Escala para zero

📋Configuração Avançada

Intermediário
docker-compose -f docker-compose.prod.yml up

# Arquivo específico

Intermediário
docker-compose -f docker-compose.yml -f docker-compose.override.yml up

# Múltiplos arquivos

Intermediário
docker-compose --compatibility up

# Modo compatibilidade

Intermediário
docker-compose --verbose up

# Output detalhado

Intermediário
docker-compose --no-ansi up

# Sem cores

Intermediário
docker-compose --profile dev up

# Perfil específico

Intermediário
docker-compose --profile dev --profile test up

# Múltiplos perfis

Intermediário
docker-compose config --resolve-env-vars

# Resolver variáveis

📋Integração e CI/CD

Intermediário
docker-compose -f docker-compose.test.yml up --abort-on-container-exit

# Testes automatizados

Intermediário
docker-compose -f docker-compose.ci.yml up --build

# Ambiente CI

Intermediário
docker-compose run --rm backend npm test

# Executar testes

Intermediário
docker-compose run --rm backend flake8 .

# Lint de código

Intermediário
docker-compose run --rm backend python manage.py migrate

# Migrations Django

Intermediário
docker-compose exec backend python manage.py collectstatic

# Arquivos estáticos

Intermediário
docker-compose down && docker-compose up --build

# Reciclar ambiente

📋Docker Compose V2

Intermediário
docker compose version

# Versão V2

Intermediário
docker compose up

# Comando V2

Intermediário
docker compose watch

# Modo watch

Intermediário
docker compose alpha convert

# Converter para V2

Intermediário
docker compose config --format json

# Config JSON

Intermediário
docker compose run --rm backend bash

# Executar V2

Intermediário
docker compose up --wait

# Esperar saúde

Intermediário
docker compose up --attach dependencies

# Anexar dependências

Intermediário
docker compose cp backend:/app ./local

# Copiar arquivos V2

Intermediário
docker compose down --timeout 30

# Timeout V2

🌐 Redes e Volumes

Use quando: Configurando comunicação entre containers ou persistência de dados

📋Gerenciar Redes

Avançado
docker network ls

# Listar redes

Avançado
docker network inspect bridge

# Inspecionar rede

Avançado
docker network create --driver bridge blueprint-net

# Criar rede

Avançado
docker network rm network_name

# Remover rede

📋Gerenciar Volumes

Avançado
docker volume ls

# Listar volumes

Avançado
docker volume inspect volume_name

# Inspecionar volume

Avançado
docker volume rm volume_name

# Remover volume

Avançado
docker run -v nome_volume:/data alpine

# Usar volume

📋Conectividade

Avançado
docker exec -it container1 ping container2

# Testar conexão

Avançado
docker exec frontend curl http://backend:3001/health

# Testar API

Avançado
docker network connect bridge container

# Conecta rede

Avançado
docker network disconnect bridge container

# Desconecta rede

Avançado
docker volume create --name data

# Cria volume

🔧 Troubleshooting

Use quando: Encontrando problemas com containers, redes ou instalação Docker

💡 💡 DICA: Se um container não inicia, verifique os logs com docker logs container_name e inspecione com docker inspect container_name

📋Verificar Status

Avançado
docker version

# Verificar instalação

Avançado
systemctl status docker

# Status serviço (Linux)

Avançado
Get-Service docker

# Status serviço (Windows)

📋Problemas Comuns

Avançado
sudo usermod -aG docker $USER

# Permissão Docker

Avançado
newgrp docker

# Aplicar grupo

📋Problemas de Espaço

Avançado
docker system df

# Ver uso espaço

Avançado
docker system prune -a

# Limpar tudo

📋Problemas de Rede

Avançado
docker network ls

# Listar redes

Avançado
docker network inspect bridge

# Inspecionar rede

📋Logs do Docker

Avançado
journalctl -u docker.service

# Logs Docker (Linux)

Avançado
Get-EventLog -LogName Application -Source Docker

# Logs (Windows)

Avançado
docker context ls

# Lista contextos

Avançado
docker context use my-context

# Muda contexto

Avançado
docker trust inspect image:tag

# Verifica assinatura

🤝 Contribuindo

Encontrou um erro? Quer melhorar um cheatsheet? Tem uma sugestão? Adoraríamos suas contribuições! Abra uma issue ou submeta um PR.

Gostou do projeto? Apoie o desenvolvimento com um café e ajude a manter tudo open source ☕