01
Beobachten
Symptome, Logs, Exit Codes und den tatsächlichen Zustand sichtbar machen.
Docker für Entwickler
20 praktische Diagnose- und Reparaturrezepte für Entwickler
Docker-Probleme nicht länger mit Trial and Error lösen. Dieses Buch zeigt einen systematischen Diagnoseweg für typische Fehler bei Containern, Netzwerken, Volumes, Konfigurationen und Builds.
Troubleshooting statt Trial and Error
Docker macht Entwicklungsumgebungen, Builds und Deployments reproduzierbarer. Aber nicht automatisch verständlicher.
Ein Container beendet sich sofort. Ein Dienst ist vom Host nicht erreichbar. Daten sind nach dem Neustart verschwunden. Eine Umgebungsvariable enthält nicht den erwarteten Wert. Ein Build, der gestern noch schnell war, dauert plötzlich mehrere Minuten.
In solchen Situationen hilft es wenig, wahllos Docker-Befehle auszuprobieren. Entscheidend ist zu verstehen, welchen Zustand Docker tatsächlich hat und welche Beobachtung zur nächsten sinnvollen Diagnose führt.
Die Methode
Im Mittelpunkt des Buches steht kein Katalog magischer Docker-Befehle, sondern ein wiederverwendbarer Diagnoseprozess.
01
Symptome, Logs, Exit Codes und den tatsächlichen Zustand sichtbar machen.
02
Hypothesen bilden und mit gezielten Prüfungen mögliche Ursachen ausschließen.
03
Nicht pauschal aufräumen, sondern genau die identifizierte Ursache beheben.
04
Prüfen, ob die Reparatur tatsächlich das ursprüngliche Problem gelöst hat.
Ein Blick ins Buch
Ein Auszug aus dem ersten Kapitel zeigt, wie die Rezepte aufgebaut sind: Ausgangssituation verstehen, Zustand sichtbar machen und erst danach entscheiden, was tatsächlich zu tun ist.
Kapitel 1 · Erst diagnostizieren, dann aufräumen
Docker belegt plötzlich 30 oder 40 GB auf der Entwicklungsmaschine.
Die naheliegende Reaktion ist, nach einem möglichst gründlichen
prune-Befehl zu suchen.
Genau damit solltest du nicht anfangen.
Docker verteilt seinen Speicherverbrauch auf mehrere Bereiche: Images, Container, Volumes und den Build-Cache. Wenn du zuerst herausfindest, wo der Speicher steckt, kannst du anschließend genau dort aufräumen.
Bevor wir irgendetwas löschen, verschaffen wir uns einen Überblick:
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 14 3 8.72GB 6.31GB (72%)
Containers 7 2 1.18GB 824MB (69%)
Local Volumes 6 3 5.44GB 1.90GB (34%)
Build Cache 53 0 11.26GB 8.73GB
Diese Ausgabe beantwortet bereits die wichtigste Frage: Wo steckt der Speicher?
In unserem Beispiel sind vor allem zwei Bereiche interessant.
Images belegen 8,72 GB, von denen Docker 6,31 GB als
RECLAIMABLE einstuft. Noch größer ist der
Build-Cache mit 11,26 GB.
Die Volumes belegen ebenfalls mehrere Gigabyte. Das ist aber noch kein Grund, sie zu löschen. Ein Volume kann beispielsweise die Daten unserer PostgreSQL-Datenbank enthalten.
Reclaimable bedeutet nicht wertlos
Docker kennt technische Referenzen, aber nicht die Bedeutung
deiner Daten. Besonders bei Volumes solltest du niemals allein
aufgrund eines hohen RECLAIMABLE-Werts entscheiden,
etwas zu löschen.
Auszug aus Kapitel 1: „Erst diagnostizieren, dann aufräumen“
Inhalt
20 praktische Diagnose- und Reparaturrezepte führen von typischen Symptomen zur tatsächlichen Ursache.
Kapitel 1
Wenn Docker immer mehr Speicherplatz verbraucht, ist
docker system prune nicht automatisch die beste
Antwort. Sie lernen, Images, Container, Volumes und Build-Cache
zuerst gezielt zu analysieren.
Kapitel 2
Fehlende Logs, sofort beendete Container, unerwartete Prozesse und Exit Code 137 werden Schritt für Schritt untersucht.
Kapitel 3
localhost, Service-Namen, Listener-Adressen, Container-Ports und Host-Port-Mappings verständlich diagnostizieren.
Kapitel 4
Probleme an der Grenze zwischen Container-Dateisystem, Host-Dateisystem und persistenten Volumes verstehen und reproduzierbar lösen.
Kapitel 5
Compose-Interpolation, Umgebungsvariablen und tatsächlich im Container vorhandene Konfiguration voneinander unterscheiden.
Kapitel 6
Build Cache, Layer, Build Context, Dockerfile-Reihenfolge und
.dockerignore gezielt analysieren.
Kapitel 7
Die einzelnen Techniken werden zu einem wiederverwendbaren Troubleshooting-Modell zusammengeführt, das sich auch auf neue und bisher unbekannte Docker-Probleme übertragen lässt.
Für wen?
Das Buch richtet sich an Entwickler, die Docker bereits einsetzen und nicht bei jeder Fehlermeldung wieder bei null anfangen möchten.
Sie müssen kein Docker-Experte sein. Grundkenntnisse zu Images, Containern und Docker Compose sind allerdings hilfreich.
Der Schwerpunkt liegt auf Docker Engine, Docker Compose und Docker Build mit Linux-Containern.
Bewusster Fokus
Dieses Buch konzentriert sich bewusst auf die Probleme, die Entwickler bei der täglichen Arbeit mit Docker tatsächlich sehen.
Kubernetes, Cluster-Orchestrierung und umfangreiche Produktionsplattformen gehören nicht zum Umfang. Stattdessen geht es darum, Docker Engine, Docker Compose und Docker Build sicher diagnostizieren zu können.
Über den Autor
Ich arbeite seit mehr als 25 Jahren professionell in der Softwareentwicklung und bin seit 2020 als technischer Trainer tätig.
Im Mittelpunkt meiner Bücher und Trainings steht nicht das bloße Auswendiglernen einzelner Befehle. Entscheidend ist, technische Systeme so weit zu verstehen, dass Probleme strukturiert analysiert und nachvollziehbar gelöst werden können.
Docker Troubleshooting
20 praktische Diagnose- und Reparaturrezepte für die Docker-Probleme, die Entwicklern im Alltag tatsächlich begegnen.