Ga naar inhoud

🐳 Docker Problemen

Problemen met Docker containers en services oplossen.

Symptomen

Probleem Beschrijving
Container start niet Status: Created, Exited, of Restarting
Service niet bereikbaar 502 Bad Gateway, Connection refused
Container crashed Onverwacht gestopt
Resource problemen Hoog CPU/geheugen gebruik

Diagnose

Stap 1: Container Status

# Draaiende containers
docker ps

# Alle containers (ook gestopt)
docker ps -a

Status betekenis: - Up - Draait normaal - Exited (0) - Normaal gestopt - Exited (1) - Crashed met error - Restarting - Blijft crashen en herstarten - Created - Nooit gestart

Stap 2: Logs Bekijken

# Laatste 100 regels
docker logs container_naam --tail 100

# Live volgen
docker logs container_naam -f

# Met timestamps
docker logs container_naam -t

Stap 3: Resource Gebruik

docker stats

Oplossingen

"Container start niet"

Oorzaak 1: Poort al in gebruik

# Check welke poort
docker logs container_naam 2>&1 | grep -i "port"

# Vind wat die poort gebruikt
netstat -tlnp | grep :80
lsof -i :80

Oplossing: Stop het andere proces of gebruik andere poort.


Oorzaak 2: Volume mount bestaat niet

# Check volumes in docker-compose.yml
# Maak ontbrekende map aan
mkdir -p ~/docker/service_naam

Oorzaak 3: Permission denied

# Fix permissies
sudo chown -R 1000:1000 ~/docker/service_naam

"Container blijft herstarten"

Diagnose:

# Check restart count
docker inspect container_naam | grep RestartCount

# Bekijk crash logs
docker logs container_naam --tail 200

Oorzaak: Meestal configuratiefout of dependency probleem.

Oplossing: 1. Bekijk logs voor specifieke error 2. Fix configuratie 3. Herstart:

docker restart container_naam


"502 Bad Gateway" in browser

Oorzaak 1: Container is down

docker ps | grep container_naam
docker start container_naam

Oorzaak 2: Verkeerde poort in NPM - Check Forward Port in Nginx Proxy Manager - Moet de interne container poort zijn

Oorzaak 3: Container niet in proxy-net

# Check netwerken
docker network inspect proxy-net

# Voeg container toe
docker network connect proxy-net container_naam


"Disk space full"

Diagnose:

df -h
docker system df

Oplossing - Opruimen:

# Verwijder gestopte containers
docker container prune

# Verwijder ongebruikte images
docker image prune -a

# Verwijder ongebruikte volumes (VOORZICHTIG!)
docker volume prune

# Alles opruimen
docker system prune -a


"Out of memory"

Diagnose:

docker stats --no-stream
free -h

Oplossing 1: Herstart containers

docker compose restart

Oplossing 2: Beperk geheugen per container

# docker-compose.yml
services:
  service_naam:
    mem_limit: 512m


"Image pull failed"

Oorzaak: Netwerk probleem of rate limit

Oplossing:

# Retry
docker compose pull

# Of specifiek
docker pull pihole/pihole:latest

Basis Operaties

Alle Services Herstarten

cd ~/docker
docker compose restart

Alle Services Updaten

cd ~/docker
docker compose pull
docker compose up -d

Specifieke Service Herbouwen

cd ~/docker
docker compose up -d --force-recreate service_naam

Containers Stoppen Zonder Data Verlies

cd ~/docker
docker compose stop

Alles Verwijderen en Opnieuw Beginnen

cd ~/docker
docker compose down
docker compose up -d

Data behouden

docker compose down verwijdert alleen containers, niet de data in volumes.

Logs Analyseren

Veelvoorkomende Errors

Error Betekenis Oplossing
port already in use Poort bezet Andere poort gebruiken
permission denied Geen rechten chown op volumes
no such file or directory Pad bestaat niet Maak map aan
connection refused Service niet beschikbaar Check dependency
OOM killed Geheugen vol Meer RAM of limit

Log Zoeken

# Zoek naar errors
docker logs pihole 2>&1 | grep -i error

# Zoek naar warnings
docker logs pihole 2>&1 | grep -i warn

# Laatste uur
docker logs pihole --since 1h

Docker Netwerken

Netwerken Bekijken

docker network ls

Container Netwerk Info

docker inspect container_naam | grep -A 20 Networks

Container aan Netwerk Toevoegen

docker network connect proxy-net container_naam

Netwerk Problemen Debuggen

# Maak debug container
docker run -it --rm --network proxy-net alpine sh

# Test connectiviteit
ping pihole
wget -qO- http://homer:8080

Na Systeem Reboot

Als services niet werken na reboot:

# Check Docker service
systemctl status docker

# Start indien nodig
sudo systemctl start docker

# Check containers
docker ps -a

# Start alles
cd ~/docker && docker compose up -d

Emergency: Docker Reset

Als Docker helemaal niet meer werkt:

# Stop Docker
sudo systemctl stop docker

# Clear Docker cache (VOORZICHTIG - verwijdert ALLES)
sudo rm -rf /var/lib/docker

# Start Docker
sudo systemctl start docker

# Rebuild alles
cd ~/docker && docker compose up -d

Data verlies

Dit verwijdert ALLE Docker data inclusief volumes. Alleen doen als backup beschikbaar is!

Gerelateerd