Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:container_untersuchen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:docker:container_untersuchen [2026/10/02 06:41] – ingo_wichmannadmin_grundlagen:docker:container_untersuchen [2026/10/12 14:23] (aktuell) – [weiteres Terminal im Container starten] ingo_wichmann
Zeile 3: Zeile 3:
 Container starten, der untersucht werden soll: Container starten, der untersucht werden soll:
   docker container run --rm -d -P --name whoami containous/whoami   docker container run --rm -d -P --name whoami containous/whoami
 +
 +===== weiteres Terminal im Container starten =====
 +geht nur, wenn der Container auch eine Shell enthält
 +  docker container exec -it whoami bash
  
 ===== Dateisystem des Containers untersuchen ===== ===== Dateisystem des Containers untersuchen =====
  
-Docker hat im Laufe seiner Releases immer wieder die Storage-Backends gewechselt. Aktuell liefert+Docker bietet verschiedene Storage-Backends, der Default hat auch mal gewechselt. Storage-Backend anzeigen:
   docker info -f '{{ .DriverStatus }}'   docker info -f '{{ .DriverStatus }}'
---> ''<nowiki>[[driver-type io.containerd.snapshotter.v1]]</nowiki>'' +Eine Auswahl möglicher Ergebnisse: 
- +  * ''<nowiki>[[driver-type io.containerd.snapshotter.v1]]</nowiki>'' ++ Dateisystem finden |  
-Wenn das so ist, dann kann man so das Dateisystem des Containers ''whoami'' finden:  +(( mit jq:/
-(( mit jq:+
   id=$(docker inspect whoami | jq -r '.[].Id')   id=$(docker inspect whoami | jq -r '.[].Id')
 )) ))
Zeile 17: Zeile 20:
   sudo jq -r '.root.path' /run/containerd/io.containerd.runtime.v2.task/moby/$id/config.json   sudo jq -r '.root.path' /run/containerd/io.containerd.runtime.v2.task/moby/$id/config.json
 -> gibt das Verzeichnis aus -> gibt das Verzeichnis aus
- +++ 
-Bei anderen Docker-Versionen bzw. Konfigurationen:+  * ''<nowiki>[[Backing Filesystem extfs] [Supports d_type true] [Using metacopy false] [Native Overlay Diff true] [userxattr false]]</nowiki>'' ++ Dateisystem finden |
   docker inspect --format '{{.GraphDriver.Data.MergedDir}}' whoami   docker inspect --format '{{.GraphDriver.Data.MergedDir}}' whoami
 +-> gibt das Verzeichnis aus
 +++
  
-Neuen Container starten, der die selben Netzwerk- , IPC- und PID-Namespaces teilt: +===== kurzlebige Diagnose Container zur Untersuchung eines anderen Containers ===== 
-  docker run --rm -it --network=container:whoami --ipc=container:whoami --pid=container:whoami -v $(docker inspect --format '{{.GraphDriver.Data.MergedDir}}' whoami):/whoami --cap-add=SYS_PTRACE debian bash +Neuen Container starten, der die selben Netzwerk- , IPC- und PID-Namespaces teilt:((
 TODO: TODO:
   docker debug whoami   docker debug whoami
 +))
 +  container_root=$(docker inspect --format '{{.GraphDriver.Data.MergedDir}}' whoami)
 +  docker run --rm -it \
 +    --network=container:whoami \
 +    --ipc=container:whoami \
 +    --pid=container:whoami \
 +    -v $container_root:/container_root \
 +    --cap-add=SYS_PTRACE debian bash
 +
 +Ungefähr dasselbe, mit nsenter:
 (( geht nicht mit podman )) (( geht nicht mit podman ))
   nsenter --target $(docker inspect --format '{{.State.Pid}}' whoami) --net --pid --ipc --mount   nsenter --target $(docker inspect --format '{{.State.Pid}}' whoami) --net --pid --ipc --mount
 +
admin_grundlagen/docker/container_untersuchen.1790923284.txt.gz · Zuletzt geändert: 2026/10/02 06:41 von ingo_wichmann