| name | troubleshoot |
| description | Diagnose container failures, networking issues, permissions, and port conflicts |
Docker Troubleshooting Skill
Overview
This skill helps diagnose and resolve common Docker issues:
- Container startup failures
- Networking problems
- Permission errors
- Port conflicts
- Data persistence issues
- Health check failures
Process
1. Consult Documentation
Read relevant documentation:
17-troubleshooting.md for common issues
15-port-conflicts.md for port problems
16-restart-strategies.md for restart issues
2. Diagnose Issue
Gather information:
docker compose ps -a
docker compose logs servicename
docker compose config
docker inspect containername
3. Apply Solution
Common Issues and Solutions
Container Won't Start
Diagnosis:
docker compose logs servicename
docker inspect --format='{{.State.ExitCode}}' containername
Solutions:
- Check logs for error messages
- Verify configuration syntax
- Check dependencies are running
- Verify image exists
Port Already in Use
Diagnosis:
lsof -i :3000
netstat -tulpn | grep 3000
Solutions:
kill $(lsof -t -i:3000)
ports:
- "3001:3000"
Permission Denied
Diagnosis:
docker compose exec app ls -la /app/data
Solutions:
services:
app:
user: "1000:1000"
docker compose exec -u root app chown -R appuser:appgroup /app/data
Data Disappearing
Diagnosis:
docker volume ls
docker compose config | grep -A5 "volumes:"
Solutions:
volumes:
- postgres_data:/var/lib/postgresql/data
Container Can't Reach Other Container
Diagnosis:
docker network inspect networkname
docker compose exec app ping db
docker compose exec app nslookup db
Solutions:
services:
app:
networks:
- backend
db:
networks:
- backend
networks:
backend:
Health Check Failing
Diagnosis:
docker inspect --format='{{json .State.Health}}' containername | jq
Solutions:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
Out of Disk Space
Diagnosis:
docker system df
docker system df -v
Solutions:
docker system prune -a --volumes
Build Cache Issues
Solutions:
docker compose build --no-cache
docker builder prune -a
Debugging Commands
docker compose exec app sh
docker compose run --entrypoint sh app
docker stats
docker compose top
docker events
docker compose cp app:/app/logs ./logs
Quick Diagnostic Checklist
- Check if container is running:
docker compose ps
- Check logs:
docker compose logs servicename
- Check network:
docker network ls
- Check volumes:
docker volume ls
- Check resources:
docker stats
- Validate config:
docker compose config
- Check disk space:
docker system df
Error Messages Reference
| Error | Cause | Solution |
|---|
| "port is already allocated" | Port in use | Kill process or change port |
| "network not found" | Missing network | Create network or check name |
| "volume not found" | Missing volume | Create volume or check name |
| "no such service" | Service name typo | Check compose.yaml |
| "unauthorized" | Auth issue | docker login |
| "image not found" | Missing image | docker compose pull |
| "permission denied" | File permissions | Fix ownership/permissions |
| "out of memory" | Memory limit | Increase limit or optimize app |