# Docker Troubleshooting Reference ## Container Won't Start ### Check logs ```bash docker logs docker logs --tail 50 -f ``` ### Common issues - **Port already in use**: `docker ps` to find conflicting containers - **Permission errors**: Check file ownership and container user - **Missing environment variables**: Verify with `docker exec -it env` - **Resource limits**: Check memory/CPU constraints ### Debug running container ```bash docker exec -it /bin/bash docker exec -it /bin/sh # if bash not available ``` ## Build Issues ### Clear build cache ```bash docker system prune -a docker builder prune ``` ### Build with verbose output ```bash docker build --progress=plain --no-cache . ``` ### Common build failures - **COPY/ADD errors**: Check file paths and .dockerignore - **Package installation**: Update package lists first - **Network issues**: Check DNS and proxy settings ## Performance Issues ### Container resource usage ```bash docker stats docker exec top docker exec free -h ``` ### Image size optimization ```bash docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" docker history ``` ## Network Debugging ### List networks and connections ```bash docker network ls docker network inspect docker port ``` ### Test connectivity ```bash docker exec ping docker exec nslookup docker exec netstat -tulpn ``` ## Quick Fixes ### Remove all stopped containers ```bash docker container prune ``` ### Remove unused images ```bash docker image prune -a ``` ### Reset Docker completely ```bash docker system prune -a --volumes ```