Pular para o conteúdo

Docker

containers
Comando O que faz
docker build -t nome:tag . Build no diretório atual
docker build --pull --no-cache -t nome:tag . Ignora cache e atualiza a base
docker build --target build -t nome:build . Para em um estágio do multi-stage
docker build --build-arg VERSAO=1.2 . Passa argumento de build
docker buildx build --platform linux/amd64,linux/arm64 --push -t nome:tag . Multiplataforma
docker tag nome:tag registry.exemplo.com/nome:tag Cria outra referência
docker push registry.exemplo.com/nome:tag Envia para o registry
docker history nome:tag --no-trunc Tamanho por camada
Janela do terminal
# cache remoto no CI
docker buildx build \
--cache-from type=registry,ref=registry.exemplo.com/nome:buildcache \
--cache-to type=registry,ref=registry.exemplo.com/nome:buildcache,mode=max \
-t registry.exemplo.com/nome:$SHA --push .
Comando O que faz
docker run --rm -it nome:tag Executa e remove ao sair
docker run -d --name app -p 8080:80 nome:tag Em segundo plano, com porta
docker run --rm -it --entrypoint sh nome:tag Sobrescreve o entrypoint
docker run --env-file .env nome:tag Variáveis de um arquivo
docker run -v "$PWD":/app -w /app nome:tag Monta diretório atual
docker run --memory=512m --cpus=1 nome:tag Limita recursos
docker run --network host nome:tag Usa a rede do host (Linux)
docker run --user 10001:10001 nome:tag Executa como usuário específico
Comando O que faz
docker ps -a Containers, inclusive parados
docker logs -f --tail 100 <ct> Logs, seguindo
docker exec -it <ct> sh Shell no container em execução
docker inspect <ct> JSON completo
docker inspect <ct> --format '{{.State.ExitCode}} {{.State.OOMKilled}}' Saída e OOM
docker inspect <ct> --format '{{json .Config.Env}}' | jq Variáveis
docker stats Uso de recursos em tempo real
docker top <ct> Processos dentro do container
docker diff <ct> Arquivos alterados desde a imagem
docker cp <ct>:/caminho ./local Copia arquivo para fora
Comando O que faz
docker volume ls / inspect <vol> Lista e detalha volumes
docker volume create dados Cria volume nomeado
docker run -v dados:/var/lib/dados nome:tag Monta volume nomeado
docker network ls Lista redes
docker network create minha-rede Cria rede bridge
docker network connect minha-rede <ct> Conecta container à rede

Containers na mesma rede nomeada resolvem uns aos outros pelo nome; na rede bridge padrão, não.

Comando O que faz
docker system df Onde o espaço está
docker system prune Remove parados, redes órfãs, cache dangling
docker system prune -a --volumes Destrutivo: remove tudo que não está em uso
docker image prune -a --filter "until=168h" Imagens não usadas há 7 dias
docker builder prune --keep-storage 10GB Limita o cache de build
docker container prune Remove containers parados

--volumes apaga dados. Confirme antes de rodar em máquina de trabalho.

Comando O que faz
docker login registry.exemplo.com Autentica
docker pull nome@sha256:... Baixa por digest (imutável)
docker buildx imagetools inspect nome:tag Manifest e plataformas
docker manifest inspect nome:tag Manifest bruto
docker save nome:tag | gzip > img.tar.gz Exporta imagem
docker load < img.tar.gz Importa imagem
Comando O que faz
docker compose up -d Sobe os serviços
docker compose up --build Reconstrói antes de subir
docker compose logs -f <svc> Logs de um serviço
docker compose exec <svc> sh Shell no serviço
docker compose ps Estado dos serviços
docker compose down -v Destrutivo: derruba e apaga volumes
Código Significado
0 Terminou normalmente
1 Erro da aplicação
125 Erro do próprio Docker (flag inválida)
126 Comando encontrado, sem permissão de execução
127 Comando não encontrado
137 SIGKILL — em geral OOM
139 Segfault (arquitetura ou libc incompatível)
143 SIGTERM
  • Apagar arquivo em uma camada seguinte não reduz a imagem: limpe na mesma instrução.
  • latest é apenas uma tag comum, sem semântica de “mais recente” garantida.
  • Dados em container sem volume somem ao removê-lo.
  • --network host não funciona igual no Docker Desktop (macOS/Windows).
  • Imagem arm64 em host amd64 dá exec format error.
  • Segredo em ARG fica na imagem; use --mount=type=secret.