Docker Troubleshooting Reference
Common Errors
| Error |
Cause |
Solution |
| Container exits immediately |
Bad entrypoint, missing deps |
Check logs, verify CMD |
| Port already in use |
Conflict with host/other container |
lsof -i :<port>, change mapping |
| Volume permission denied |
UID mismatch |
Check ownership, use named volumes |
| Network not found |
Network removed/not created |
docker network create |
| Image pull failed |
Registry/auth/name issue |
Check registry, credentials, name |
| OOM killed |
Exceeded memory limit |
Increase limit or optimize app |
| DNS resolution failed |
Network config issue |
Check DNS settings, network mode |
| Health check failing |
App not responding |
Check command, increase timeout |
Diagnostic Commands
Container Status
Logs
Resource Usage
Container Details
Process and Network
Troubleshooting Workflows
Container Won't Start
- Check logs:
docker logs <container>
- Check exit code:
docker inspect <container> --format '{{.State.ExitCode}}'
- Run interactively:
docker run -it <image> sh
- Check entrypoint/cmd:
docker inspect <image> --format '{{.Config.Cmd}}'
Container Keeps Restarting
- Check logs for errors
- Verify health check if configured
- Check resource limits (OOM)
- Test entrypoint manually
Network Issues
- Verify network exists:
docker network ls
- Check container attached:
docker inspect <container> --format '{{.NetworkSettings.Networks}}'
- Test DNS:
docker exec <container> nslookup <service>
- Check port mapping:
docker port <container>
Volume Issues
- Check mount:
docker inspect <container> --format '{{.Mounts}}'
- Verify permissions inside:
docker exec <container> ls -la /path
- Check host path exists (bind mounts)
- Try named volume instead
Performance Issues
- Check resource usage:
docker stats
- Review limits:
docker inspect <container> --format '{{.HostConfig.Memory}}'
- Check for resource contention
- Profile application inside container
Cleanup
Debugging Compose
Common Compose Issues
| Problem |
Check |
| Service not starting |
docker compose logs <service> |
| depends_on not working |
Service starts but app not ready (use healthcheck) |
| Volume not persisting |
Check volume name, not recreated |
| Env vars not loading |
Check .env file location, syntax |
| Network errors |
Check network names, external networks |
Health Check Debugging
Emergency Recovery
Force Stop
Remove Stuck Container
Reset Docker