1025 Stimmen

Wo werden Docker-Images auf dem Host-Computer gespeichert?

Ich konnte die Container unter dem Verzeichnis /var/lib/docker/containers finden, aber ich kann die Images nicht finden.

Was sind die Verzeichnisse und Dateien unter /var/lib/docker?

714voto

Air Punkte 4924

Der Inhalt des Verzeichnisses /var/lib/docker variiert je nachdem, welchen Treiber Docker zur Speicherung verwendet.

Standardmäßig wird dies aufs sein, kann aber je nach Kernelunterstützung auf overlay, overlay2, btrfs, devicemapper oder zfs zurückfallen. An den meisten Stellen wird dies aufs sein, aber die RedHats haben sich für devicemapper entschieden.

Sie können den Speichertreiber manuell mit der Option -s oder --storage-driver= für den Docker-Dämon festlegen.

  • /var/lib/docker/{driver-name} enthält den spezifischen Speicher des Treibers für Inhalte der Images.
  • /var/lib/docker/graph/ enthält jetzt nur Metadaten über das Image, in den Dateien json und layersize.

Im Fall von aufs:

  • /var/lib/docker/aufs/diff/ enthält die Dateiinhalte der Images.
  • /var/lib/docker/repositories-aufs ist eine JSON-Datei mit lokalen Bildinformationen. Diese kann mit dem Befehl docker images angezeigt werden.

Im Fall von devicemapper:

  • /var/lib/docker/devicemapper/devicemapper/data speichert die Images.
  • /var/lib/docker/devicemapper/devicemapper/metadata die Metadaten.
  • Beachten Sie, dass diese Dateien dünn bereitgestellte "sparse" Dateien sind und daher nicht so groß sind, wie es scheint.

325voto

mirosval Punkte 6431

Bei Verwendung der Docker for Mac-Anwendung scheint es, dass die Container innerhalb der VM gespeichert sind, die sich hier befindet:

~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

UPDATE (Mit freundlicher Genehmigung von mmorin):

Ab dem 15. Januar 2019 scheint es nur noch diese Datei zu geben:

~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

die die Docker-Disk und alle enthaltenen Images und Container enthält.

141voto

Marc Rechté Punkte 1817

Eigentlich werden Docker-Images in zwei Dateien gespeichert, wie im folgenden Befehl gezeigt

$ docker info

Datendatei: /var/lib/docker/devicemapper/devicemapper/data

Metadatendatei: /var/lib/docker/devicemapper/devicemapper/metadata

128voto

Phil L. Punkte 2451

Dies war die alte Methode, jetzt hat sich das geändert. Bitte ignorieren Sie diese Antwort ab 2019

Im speziellen Fall von Mac OS X oder Windows, wenn Sie boot2docker verwenden, werden Ihre Docker-Images in einer VirtualBox-VM gespeichert, die von boot2docker verwaltet wird.

Diese VM wird an den normalen Ort von VirtualBox-Images gespeichert:

      OS X: ~/VirtualBox VMs/boot2docker-vm

      Windows: %USERPROFILE%/VirtualBox VMs/boot2docker-vm

Sie können sie zurücksetzen, indem Sie folgendes ausführen (WARNUNG: Dadurch werden alle bisher erstellten und heruntergeladenen Images zerstört):

boot2docker down
boot2docker destroy
boot2docker init
boot2docker up

Dies ist besonders nützlich, wenn Sie eine Menge Zwischenimages behalten haben, wenn Sie ein Build erstellen / debuggen, ohne die nützlichen --rm-Optionen zu verwenden, ich zitiere sie hier zur Referenz: Verwenden Sie:

docker build -t webapp --rm=true --force-rm=true .

anstatt von:

docker build -t webapp .

77voto

Tristan Punkte 891

Bei dem neu veröffentlichten 'Docker für Windows', das Hyper-V verwendet, befinden sich die Daten auf der Docker-Virtualfestplatte:

C:\\Users\\Public\\Documents\\Hyper-V\\Virtual Festplatten\\MobyLinuxVM.vhdx

Sie können auch den 'Hyper-V-Manager' öffnen, um auf Docker / MobyLinuxVM zuzugreifen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X