Docker Troubleshooting Cheat Sheet: Die wichtigsten Befehle

Docker kann in komplexen Umgebungen schnell unübersichtlich werden, besonders wenn Container nicht starten, Netzwerke nicht funktionieren oder Volumes plötzlich voll sind. Ein kompaktes Cheat Sheet mit den wichtigsten Befehlen hilft Einsteigern und Profis, Probleme schnell zu identifizieren und zu beheben. Dieses Tutorial bietet eine strukturierte Übersicht über die essenziellen Docker- und Docker Compose-Kommandos für das tägliche Troubleshooting.

Container-Status prüfen

Um herauszufinden, welche Container laufen oder gestoppt wurden, sind folgende Befehle essenziell:

  • docker ps: Zeigt laufende Container
  • docker ps -a: Zeigt alle Container, inklusive gestoppter
  • docker inspect <container>: Detailinformationen zu einem Container
  • docker stats: Echtzeit-Statistiken zu CPU, RAM und I/O
# Beispiel: laufende Container anzeigen
docker ps

Details eines Containers

docker inspect my_container

Echtzeit-Ressourcenverbrauch

docker stats

Exit Codes und Logs

Wenn ein Container exited, ist es wichtig, Logs und Exit-Codes zu prüfen:

  • docker logs <container>: Zeigt die Container-Logs
  • docker inspect <container> --format '{{.State.ExitCode}}': Zeigt den Exit-Code
  • Crashloops oft durch fehlende Abhängigkeiten, falsche Umgebungsvariablen oder fehlende Volumes verursacht
# Logs eines Containers anzeigen
docker logs -f my_container

Exit-Code prüfen

docker inspect my_container --format '{{.State.ExitCode}}'

Netzwerk-Probleme identifizieren

Container-Kommunikation kann durch fehlerhafte Netzwerke blockiert sein. Die wichtigsten Kommandos:

  • docker network ls: Zeigt alle Docker-Netzwerke
  • docker network inspect <network>: Details zu einem Netzwerk
  • docker exec -it <container> ping <ziel>: Testet die Verbindung zwischen Containern
# Netzwerke anzeigen
docker network ls

Netzwerkdetails

docker network inspect my_network

Verbindung testen

docker exec -it web_container ping db_container

Bridge, Host und Overlay

Bridge ist der Standard für lokale Container, Host nutzt den Host-Netzwerkstack, Overlay ist für Swarm/Kubernetes-Setups gedacht. Prüfen Sie die Netzwerkkonfiguration bei Verbindungsproblemen.

Volumes und Storage überprüfen

Volumes können durch falsche Bind-Mounts oder vollen Speicher Probleme verursachen:

  • docker volume ls: Zeigt alle Volumes
  • docker volume inspect <volume>: Zeigt Details und Mountpoints
  • docker system df: Übersicht über belegten Speicher
# Volumes auflisten
docker volume ls

Details eines Volumes

docker volume inspect my_volume

Speicherbelegung prüfen

docker system df

Permission-Fehler

UID/GID-Mismatches zwischen Host und Container können Schreibprobleme verursachen. Prüfen Sie Besitzer und Rechte auf den gemounteten Verzeichnissen:

# Rechte prüfen
ls -l /path/to/volume

Ports und Bindings prüfen

Port-Konflikte verhindern, dass Services erreichbar sind:

  • docker ps zeigt Port-Mappings
  • docker port <container> zeigt die gemappten Ports
  • Systemseitig ss -tulpn oder netstat -tulpn prüfen, ob Ports belegt sind
# Port-Mappings anzeigen
docker port web_container

System-Portprüfung

ss -tulpn | grep 8080

Docker Compose Befehle

Compose-Stacks erfordern zusätzliche Befehle:

  • docker-compose up -d: Startet alle Services
  • docker-compose down: Stoppt und entfernt Services
  • docker-compose logs -f: Echtzeit-Logs aller Services
  • docker-compose ps: Status aller Services
# Compose-Stack starten
docker-compose up -d

Logs anzeigen

docker-compose logs -f

Stack herunterfahren

docker-compose down

Override und Environment

Nutzen Sie docker-compose.override.yml für Entwicklungsanpassungen und .env-Dateien für Umgebungsvariablen:

# Compose mit Override starten
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d

Ressourcen und Limits prüfen

CPU- und RAM-Limits können Throttling verursachen:

  • docker stats: Echtzeitverbrauch
  • Compose-Definition prüfen auf deploy.resources.limits
  • Probleme: Container startet langsam oder stürzt unter Last ab
# CPU/Memory Limits prüfen
docker inspect my_container --format '{{.HostConfig.NanoCpus}} {{.HostConfig.Memory}}'

Cleanup und Systempflege

Regelmäßige Bereinigung verhindert, dass Volumes, Images oder Container den Server blockieren:

  • docker system prune -a: Entfernt ungenutzte Container, Netzwerke, Images
  • docker volume prune: Entfernt ungenutzte Volumes
  • docker network prune: Entfernt ungenutzte Netzwerke
# System bereinigen
docker system prune -a
docker volume prune
docker network prune

Debugging Tipps

  • Immer mit docker logs starten
  • Bei Netzwerkproblemen ping oder curl innerhalb des Containers nutzen
  • Nutzen Sie docker exec -it <container> sh für direkten Zugriff
  • Healthchecks in Compose helfen, automatisch problematische Services zu erkennen

Beispiel Healthcheck

services:
  web:
    image: myapp:latest
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80"]
      interval: 30s
      retries: 3

Mit diesem Cheat Sheet haben Teams und Administratoren eine kompakte Übersicht über die wichtigsten Docker- und Compose-Befehle für Troubleshooting. Von Logs über Netzwerke, Volumes, Ports bis zu Ressourcen und Cleanup – alle relevanten Bereiche werden abgedeckt, um Probleme schnell zu erkennen und zu beheben.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles