Docker diff richtig nutzen

Wenn du mit Docker-Containern arbeitest, ist es hilfreich zu wissen, welche Änderungen innerhalb der Container vorgenommen wurden. Genau hier kommt der Befehl docker diff
ins Spiel. Er zeigt dir, welche Dateien oder Verzeichnisse seit der Erstellung des Containers hinzugefügt, gelöscht oder verändert wurden.
Der docker diff
Befehl ist ziemlich unkompliziert. Du musst nur den Container angeben, den du überprüfen möchtest. Du kannst dafür die vollständige Container-ID verwenden, eine gekürzte Version der ID oder sogar den Namen, den du dem Container beim Start mit docker run --name
gegeben hast.
So sieht der Befehl aus:
docker diff CONTAINER
Wenn du diesen Befehl ausführst, zeigt Docker dir eine Liste mit Änderungen an. Jede Änderung ist mit einem Buchstaben markiert, der dir sagt, was passiert ist:
- A: Eine Datei oder ein Verzeichnis wurde hinzugefügt (Added).
- D: Eine Datei oder ein Verzeichnis wurde gelöscht (Deleted).
- C: Eine Datei oder ein Verzeichnis wurde geändert (Changed).
Schauen wir uns ein Beispiel an, um zu sehen, wie das in der Praxis funktioniert. Stell dir vor, du hast einen nginx
-Container laufen und möchtest sehen, was sich darin geändert hat. Du würdest einen Befehl wie diesen ausführen:
docker diff 1fdfd1f54c1b
Die Ausgabe könnte etwa so aussehen:
C /dev
C /dev/console
C /dev/core
C /dev/stdout
C /dev/fd
C /dev/ptmx
C /dev/stderr
C /dev/stdin
C /run
A /run/nginx.pid
C /var/lib/nginx/tmp
A /var/lib/nginx/tmp/client_body
A /var/lib/nginx/tmp/fastcgi
A /var/lib/nginx/tmp/proxy
A /var/lib/nginx/tmp/scgi
A /var/lib/nginx/tmp/uwsgi
C /var/log/nginx
A /var/log/nginx/access.log
A /var/log/nginx/error.log
In diesem Beispiel siehst du, dass mehrere Dateien und Verzeichnisse geändert (C
) wurden und einige neue hinzugekommen (A
) sind. Zum Beispiel wurde /run/nginx.pid
hinzugefügt, das ist die Prozess-ID-Datei für den nginx
-Server. Außerdem wurden neue Log-Dateien wie /var/log/nginx/access.log
und /var/log/nginx/error.log
erstellt.
Die Verwendung von docker diff
ist eine großartige Möglichkeit, um zu verfolgen, was in deinen Containern passiert. Es hilft dir zu verstehen, wie sich deine Anwendungen verhalten und welche Dateien sie nutzen oder verändern. Das kann wirklich nützlich sein für Debugging oder einfach, um einen Überblick zu behalten.