Inhaltsverzeichnis

Container untersuchen

Container starten, der untersucht werden soll:

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

Docker bietet verschiedene Storage-Backends, der Default hat auch mal gewechselt. Storage-Backend anzeigen:

docker info -f '{{ .DriverStatus }}'

Eine Auswahl möglicher Ergebnisse:

kurzlebige Diagnose Container zur Untersuchung eines anderen Containers

Neuen Container starten, der die selben Netzwerk- , IPC- und PID-Namespaces teilt:2)

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: 3)

nsenter --target $(docker inspect --format '{{.State.Pid}}' whoami) --net --pid --ipc --mount
1)
mit jq:/
id=$(docker inspect whoami | jq -r '.[].Id')
2)
TODO:
docker debug whoami
3)
geht nicht mit podman