Erros Docker podem ser frustrantes. Aprenda a diagnosticar e resolver os problemas mais comuns rapidamente.
Conceitos Principais
Container Lifecycle
Created → Running → Exited. Logs persistem após exit. Inspect mostra config e estado. Restart policy define comportamento em crash.
Logging
Stdout/stderr capturados. docker logs container. -f para follow. --tail N para últimas linhas. JSON driver default.
Network Debug
Inspect network mostra containers conectados. Ping entre containers testa conectividade. Port mapping issues: verificar -p flags.
Storage Issues
Disk full: prune images/containers. Permissions: user mismatch host/container. Volume mount issues: path errado.
Passo a Passo
- Container Não Inicia: Logs:
docker logs container. Inspect:docker inspect container | grep Error. Common: CMD errado, port já em uso, volume não existe. - Permission Denied: User mismatch: container user ID ≠ host. Fix: RUN chown no Dockerfile. Ou: -u $(id -u):$(id -g). Bind mounts herdam permissions do host.
- Network Issues: Ping falha:
docker exec container ping outro-container. DNS não resolve: user-defined network? Firewall blocking? Port correto? - Out of Disk: Prune:
docker system prune -a. Remove tudo parado + dangling images.docker volume prune.docker builder prune. Libera GBs. - Build Falha: Cache corrompido: --no-cache. Context muito grande: .dockerignore. Network timeout: retry ou mirror. Syntax error: lint Dockerfile.
Boas Praticas
Recomendacoes
• Sempre cheque logs primeiro
• Use docker inspect para config
• Exec para debugar container ativo
• Prune regularmente
• Monitore disk usage
Erros Comuns
Evite estes erros
• Deletar container sem ver logs
• Não usar .dockerignore
• Ignorar disk usage alerts
• Não versionar imagens (debug impossível)
Checklist
- Logs verificados
- Inspect executado
- Network testada
- Disk space disponível
- Dockerfile validado
- Permissions corretas
- Restart policy configurado