Conteúdo
Tutorial de comandos Docker: consulte os principais comandos e o que eles fazem
Esta página reúne os comandos Docker mais usados no dia a dia, com base no Docker 29. Para ver detalhes e saídas reais de cada comando, acesse os links dos capítulos. A última seção reúne armadilhas comuns encontradas durante os testes práticos deste tutorial.
Contêineres
| Comando | Descrição |
|---|---|
docker run -d --name web -p 8080:80 nginx:1.30 | Executa o contêiner em segundo plano e mapeia a porta |
docker run -it --rm ubuntu:26.04 bash | Executa em modo interativo e remove o contêiner ao terminar |
docker ps | Lista os contêineres em execução |
docker ps -a | Lista todos os contêineres |
docker stop web | Para o contêiner |
docker start web | Inicia um contêiner parado |
docker restart web | Reinicia o contêiner |
docker rm web | Remove um contêiner parado |
docker rm -f web | Remove à força um contêiner em execução |
docker logs -f web | Acompanha os logs do contêiner |
docker logs --tail 100 web | Mostra as últimas 100 linhas dos logs |
docker exec -it web sh | Abre um shell dentro do contêiner |
docker cp web:/path/file . | Copia um arquivo do contêiner para o host |
docker inspect web | Mostra detalhes do contêiner |
docker stats | Mostra o uso de recursos em tempo real |
docker top web | Mostra os processos dentro do contêiner |
docker port web | Mostra o mapeamento de portas |
docker update --restart unless-stopped web | Altera a política de reinicialização |
docker run --init ... | Usa um init pequeno como PID 1 para encaminhar corretamente o sinal de parada |
Leia também: Opções de docker run, Ciclo de vida do contêiner, Como ver logs e depurar
Imagens
| Comando | Descrição |
|---|---|
docker images | Lista as imagens locais |
docker images --tree | Mostra as plataformas incluídas nas imagens multiplataforma |
docker pull nginx:1.30 | Baixa uma imagem |
docker tag myapp user/myapp:1.0 | Adiciona um novo nome ou tag |
docker push user/myapp:1.0 | Envia a imagem para um Registry |
docker rmi nginx:1.30 | Remove uma imagem |
docker history nginx:1.30 | Mostra as camadas |
docker buildx imagetools inspect nginx:1.30-alpine | Mostra as plataformas compatíveis com a imagem remota |
docker save -o img.tar myapp | Exporta para um arquivo |
docker load -i img.tar | Importa de um arquivo |
docker login / docker logout | Entra / sai do Registry |
Leia também: Imagens, Envio para o Docker Hub
Build
| Comando | Descrição |
|---|---|
docker build -t myapp . | Constrói a imagem com o Dockerfile da pasta atual |
docker build -f Dockerfile.prod -t myapp . | Especifica o Dockerfile |
docker build --no-cache -t myapp . | Não usa o cache |
docker build --pull -t myapp . | Baixa novamente a imagem base |
docker build --target dev -t myapp:dev . | Constrói somente até uma etapa específica |
docker build --build-arg VERSION=1.2 . | Passa um argumento de build (não use para passar senhas) |
docker build --secret id=token,env=TOKEN . | Passa um segredo para o build, sem deixá-lo na imagem |
docker build --progress plain . | Mostra a saída completa do build |
docker buildx build --platform linux/amd64,linux/arm64 -t user/app --push . | Constrói para várias plataformas e envia a imagem |
Leia também: Referência de instruções do Dockerfile, Cache de build e otimização, Builds em várias etapas, Imagens multiplataforma
Volume
| Comando | Descrição |
|---|---|
docker volume create data | Cria um Volume |
docker volume ls | Lista os Volumes |
docker volume inspect data | Mostra detalhes do Volume |
docker volume rm data | Remove um Volume |
docker run -v data:/app/data myapp | Monta um Volume nomeado |
docker run -v "$(pwd):/app" myapp | Monta a pasta atual |
Leia também: Volume e persistência de dados
Rede
| Comando | Descrição |
|---|---|
docker network create appnet | Cria uma rede personalizada |
docker network ls | Lista as redes |
docker network inspect appnet | Mostra os contêineres na rede |
docker run --network appnet --name db postgres:18 | Conecta o contêiner à rede |
docker network connect appnet web | Conecta um contêiner em execução à rede |
docker network rm appnet | Remove uma rede |
Leia também: Rede e comunicação entre contêineres
Docker Compose
| Comando | Descrição |
|---|---|
docker compose up -d | Inicia todos os serviços em segundo plano |
docker compose up -d --build | Reconstrói as imagens e inicia os serviços |
docker compose up -d --wait | Retorna quando todos os serviços estiverem healthy |
docker compose up -d app | Atualiza ou reconstrói somente um serviço |
docker compose down | Para e remove os contêineres e a rede |
docker compose down -v | Remove também os Volumes |
docker compose ps | Mostra o estado dos serviços |
docker compose logs -f app | Acompanha os logs de um serviço |
docker compose exec app sh | Abre um shell no contêiner do serviço |
docker compose run --rm app npm test | Executa um comando pontual |
docker compose pull | Baixa as imagens mais recentes |
docker compose restart app | Reinicia o serviço (não aplica configurações alteradas) |
docker compose watch | Sincroniza ou reconstrói automaticamente quando os arquivos mudam (para desenvolvimento) |
docker compose --profile tools up -d | Inicia também os serviços do profile |
docker compose config | Verifica a configuração final |
Leia também: Introdução ao Docker Compose, Comandos do docker compose
Limpeza
| Comando | Descrição |
|---|---|
docker system df | Mostra o uso de espaço |
docker container prune | Remove contêineres parados |
docker image prune -a | Remove imagens não utilizadas |
docker builder prune | Limpa o cache de build |
docker builder prune --filter until=168h | Limpa somente o cache de build sem uso há mais de 7 dias |
docker volume prune | Remove Volumes anônimos não utilizados |
docker volume prune -a | Remove todos os Volumes não utilizados, incluindo dados de bancos de dados em Volumes nomeados |
docker system prune | Faz uma limpeza geral (sem incluir Volumes) |
docker system prune --volumes | Faz uma limpeza geral e remove Volumes anônimos (a partir do Docker 23, não inclui Volumes nomeados) |
Leia também: Liberar espaço em disco
Informações do sistema
| Comando | Descrição |
|---|---|
docker version | Mostra as versões do cliente e do servidor |
docker info | Mostra informações do sistema Docker |
docker events | Mostra eventos em tempo real |
docker context ls | Lista os ambientes Docker disponíveis para conexão |
Resumo das opções mais usadas
| Opção | Significado |
|---|---|
-d | Executar em segundo plano |
-it | Modo interativo + terminal |
-p host:container | Mapeamento de portas |
-v origem:caminho-no-contêiner | Montagem |
-e KEY=VALUE | Variável de ambiente |
--name | Nome do contêiner |
--rm | Remover automaticamente ao terminar |
--network | Especificar a rede |
--restart | Política de reinicialização |
-f | Forçar (rm, rmi) ou acompanhar (logs) |
Armadilhas comuns (encontradas nos testes práticos deste tutorial)
| Sintoma | Causa e solução | Capítulo |
|---|---|---|
docker stop leva 10 segundos | O programa é PID 1 e não trata SIGTERM. Trate o sinal no programa ou adicione --init | Aplicação Node.js |
Ao usar o nome web para o contêiner, a conexão vai para 127.0.53.53 | .web é um domínio de nível superior, então o nome é resolvido como um domínio externo. Escolha outro nome | Opções de docker run |
postgres:18 inicia e encerra imediatamente | A versão 18 precisa montar /var/lib/postgresql, não /var/lib/postgresql/data | PostgreSQL |
| O banco de dados ainda não está pronto, mas a verificação informa healthy | Adicione -h 127.0.0.1 a pg_isready e mysqladmin ping | MySQL, PostgreSQL |
| A verificação de integridade do Redis passa mesmo com a senha errada | Em caso de erro, redis-cli ping ainda termina com código 0. Adicione | grep -q PONG | Redis |
Alterar MYSQL_ROOT_PASSWORD não faz efeito | A variável de senha só é usada na primeira inicialização | MySQL |
| O arquivo de configuração foi alterado, mas o contêiner ainda mostra a versão antiga | Ao montar um único arquivo, o editor substitui o arquivo ao salvá-lo. Reinicie o contêiner ou monte a pasta | Nginx |
Os valores de --env-file aparecem com aspas | docker run --env-file não remove as aspas, mas env_file do Compose remove | Variáveis de ambiente |
Um segredo removido com rm ainda está na imagem | Cada camada preserva o conteúdo; ARG e ENV também podem ser vistos. Use --secret | Melhores práticas de segurança |
exec format error | As arquiteturas de CPU são diferentes. Use --platform ou faça um build multiplataforma | Imagens multiplataforma |
Perguntas frequentes
Como faço para memorizar tantos comandos?
Comece memorizando run, ps, logs, exec, stop, rm, build, compose up/down. Consulte esta página ou docker comando --help quando precisar dos demais.
Onde encontro os parâmetros completos de cada comando?
Veja os parâmetros completos e exemplos dos comandos mais usados na categoria Referência de comandos, como [docker build](/pt/docker/docker-build/) e [docker ps](/pt/docker/docker-ps/).
Atualizado 14 de outubro de 2026