Principais comandos do Docker — agrupados por categoria para facilitar a consulta no dia a dia.
1. Gerenciamento de imagens
docker pull <imagem>— baixa uma imagem do Docker Hub (ou registry).docker images— lista imagens locais.docker rmi <imagem>— remove uma imagem.docker build -t <nome>:<tag> .— cria imagem a partir doDockerfileno diretório atual.docker tag <imagem> <repo>:<tag>— renomeia/tagueia uma imagem.docker push <repo>:<tag>— envia imagem para o registry.
2. Containers (execução)
docker run <imagem> — cria e executa um container. Principais opções:
| Flag | O que faz |
|---|---|
-d |
Executa em background (detached) |
-p 8080:80 |
Mapeia porta host:container |
--name meuapp |
Define o nome do container |
-v /host:/container |
Monta um volume |
docker ps— lista containers em execução.docker ps -a— lista todos os containers (ativos e parados).docker stop <id|nome>— para um container.docker start <id|nome>— inicia um container parado.docker restart <id|nome>— reinicia um container.docker rm <id|nome>— remove um container.
3. Logs, shell e inspeção
docker logs <id|nome>— exibe logs do container.docker logs -f <id|nome>— acompanha logs em tempo real (tail -f).docker exec -it <id|nome> sh— abre shell interativo dentro do container.docker inspect <id|nome>— exibe detalhes completos em JSON.docker stats— monitora uso de CPU e memória em tempo real.
4. Volumes e dados
docker volume ls— lista volumes.docker volume create <nome>— cria um volume.docker volume rm <nome>— remove um volume.docker system df— exibe uso de disco (imagens, containers, volumes).
5. Redes
docker network ls— lista redes.docker network create <nome>— cria uma rede.docker network inspect <nome>— exibe detalhes da rede.docker network connect <rede> <container>— conecta container à rede.docker network disconnect <rede> <container>— desconecta container da rede.
6. Limpeza (housekeeping)
docker system prune— remove containers parados, redes e imagens não usados.docker system prune -a— idem, incluindo todas as imagens não utilizadas.docker volume prune— remove volumes não usados.
docker system prune -a remove imagens que não estão vinculadas a nenhum container ativo. Use com cuidado em ambientes compartilhados.7. Docker Compose (multi-containers)
docker compose up -d— sobe os containers definidos nodocker-compose.yml.docker compose down— para e remove os containers da stack.docker compose logs -f— acompanha logs de todos os serviços.docker compose ps— lista containers do projeto.docker compose exec <serviço> sh— abre shell dentro de um serviço.
8. Boas práticas em produção
Docker virou padrão para empacotar e rodar aplicações. Em produção, porém, imagens mal configuradas e containers rodando como root podem ampliar a superfície de ataque e dificultar auditorias.
Imagens menores e em camadas
Use imagens base Alpine ou distroless sempre que possível e adote multi-stage builds para compilar em um estágio e copiar apenas o binário para o estágio final. Menos pacotes = menos CVEs e menor tamanho. Fixe a tag da imagem base (ex.: node:20-alpine) para evitar surpresas em rebuilds.
Rodar como não-root
Crie um usuário dedicado no Dockerfile e utilize a instrução USER antes do CMD. No Kubernetes ou Docker Compose, evite o modo privileged e limite recursos de CPU e memória. Monitore com ferramentas de conformidade como Trivy ou Docker Scout para identificar vulnerabilidades conhecidas.
Secrets e configuração
Nunca coloque senhas ou chaves em variáveis de ambiente em texto no docker-compose.yml. Use Docker secrets, arquivos montados como read-only ou um orquestrador (Kubernetes Secrets, HashiCorp Vault). Rotacione credenciais regularmente e mantenha as imagens base atualizadas.
Comentários