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
?
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
?
UMGEBUNG
Betriebssystem: Fedora 29 x86_64 Workstation
Docker:
[user@localhost ~]$ docker --version
Docker Version 19.03.5, Build 633a0ea838
Bildinformationen: "DockerVersion": "18.09.7"
Die Bilder sollten standardmäßig in /var/lib/docker/overlay2
gespeichert werden.
MEIN BEISPIEL
Bilder anzeigen:
[user@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
neo4j latest 8ed7463b8476 vor 12 Monaten 548MB
hello-world latest fce289e99eb9 vor 2 Jahren 1.84kB
Die Bildgröße beträgt 548M.
Sehen Sie die Bildinformationen von 8ed7463b8476
.
[user@localhost ~]$ docker image inspect 8ed7463b8476
... ... ... ...
"DockerVersion": "18.09.7",
... ... ... ...
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2
/66dc24704d7ea5f1a5dee0bf4a5297cb78bcbd0d4b36206b8cca62cd4de7f2b1/diff:
/var/lib/docker/overlay2
/5ab91cf721359d43d01038233d397fd9ed1c4b3857c0c7d9a2dd7f2ac5eccad0/diff:
/var/lib/docker/overlay2
/e82fdf7ee3e37db0a11d9ca309245ae852425d24d6f5d3313dcf604cdddb397b/diff:
/var/lib/docker/overlay2
/9394543085d467010d0468fffb388e5616a89e2cf16c1c2b7b31aee4e542ae69/diff:
/var/lib/docker/overlay2
/c7c7a16e3dbaeea1a3a3b0bbca39f34f08f6b8ab15d753e6e68f9851c80d95b4/diff:
/var/lib/docker/overlay2
/3b470afdf8939b45159f3171f0bef2a27085b4b980e09f0c666fbdc58b944d97/diff:
/var/lib/docker/overlay2
/463ba63f79eb6b2f5466e7b71041bc346a8e9c4ebddd34d23422c719824a2340/diff",
... ... ... ...
Schauen wir uns die Größe dieser Ordner an.
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/66dc24704d7ea5f1a5dee0bf4a5297cb78bcbd0d4b36206b8cca62cd4de7f2b1
141M /var/lib/docker/overlay2/66dc24704d7ea5f1a5dee0bf4a5297cb78bcbd0d4b36206b8cca62cd4de7f2b1
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/5ab91cf721359d43d01038233d397fd9ed1c4b3857c0c7d9a2dd7f2ac5eccad0/
28K /var/lib/docker/overlay2/5ab91cf721359d43d01038233d397fd9ed1c4b3857c0c7d9a2dd7f2ac5eccad0/
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/e82fdf7ee3e37db0a11d9ca309245ae852425d24d6f5d3313dcf604cdddb397b/
100K /var/lib/docker/overlay2/e82fdf7ee3e37db0a11d9ca309245ae852425d24d6f5d3313dcf604cdddb397b/
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/9394543085d467010d0468fffb388e5616a89e2cf16c1c2b7b31aee4e542ae69/
310M /var/lib/docker/overlay2/9394543085d467010d0468fffb388e5616a89e2cf16c1c2b7b31aee4e542ae69/
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/c7c7a16e3dbaeea1a3a3b0bbca39f34f08f6b8ab15d753e6e68f9851c80d95b4/
36K /var/lib/docker/overlay2/c7c7a16e3dbaeea1a3a3b0bbca39f34f08f6b8ab15d753e6e68f9851c80d95b4/
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/3b470afdf8939b45159f3171f0bef2a27085b4b980e09f0c666fbdc58b944d97/
9.5M /var/lib/docker/overlay2/3b470afdf8939b45159f3171f0bef2a27085b4b980e09f0c666fbdc58b944d97/
[user@localhost ~]$ sudo du -sh /var/lib/docker/overlay2/463ba63f79eb6b2f5466e7b71041bc346a8e9c4ebddd34d23422c719824a2340/
76M /var/lib/docker/overlay2/463ba63f79eb6b2f5466e7b71041bc346a8e9c4ebddd34d23422c719824a2340/
Wir können sehen, dass die Größe nahe an 548M liegt.
Wir können das Bild auch in eine Ausgabedatei speichern.
[user@localhost ~]$ docker save -o neo4j.image.tar 8ed7463b8476
[user@localhost ~]$ du -sh neo4j.image.tar
528M neo4j.image.tar
Wir können das Paketarchiv extrahieren und die Größen der Dateien im Paket überprüfen.
[user@localhost neo4j.image]$ du -sh *
16K 2f0dd5fb60a940719a3e781133611cc64c2acded03bd47e04b0997fd0c1dae50
8.7M 73819037a38eabeb7c622533e4058c84f5ff106475a1aba78a278f8b36c172f7
309M 8d31d715b324a2ae3ccb1577e981d492f40e34db6371f0858da925ef02b5762e
12K 8ed7463b84760f09b1b86a732ee6f295baaadffe72ce4fdb7ad306fe5e096bbb.json
36K 966e726ff1d9be9dca68014cda6f1ecf974365c553b82ea3834fff5d73ea593e
70M a32776b9621e916e8714389b1037bf47253a2d3d1c806ad515623d2150c92485
60K d82868a318b95466f213136f81cd7258518744da72f46ca51b04b35f2351f46a
16K e62169d79fab44bebb0a455b01af5f636bace7673a1d38fc092daad77d51cd0e
141M fe8014622f7933e178b9005deffda3eb4828703eb7eca93b5485232930e3916b
4.0K manifest.json
Wir können auch den Ordner /var/lib/docker/overlay2/
archivieren, um die Größe des Pakets mit den Bilddateien zu vergleichen. Die Größe ist ebenfalls nahe an der Bildgröße.
Weitere hilfreiche Informationen:
Docker-Bild - Zusammengeführte/Diff-/Arbeits-/LowerDir-Komponenten des GraphDrivers,
Wo sind Docker-Bilder gespeichert? Erklärung der Docker-Container-Pfade,
Verwenden Sie den Befehl docker info
, um die Host-Einstellungen des Docker einschließlich des Speicherpfads zu erhalten.
Um nur den Stammweg für den Docker-Speicher zu erhalten, können Sie Folgendes verwenden:
docker info | grep 'Docker-Root-Verzeichnis:' | cut -d':' -f2 | sed 's/^ *//g'
Dies ergibt für die Standardinstallation von Ubuntu 22.04
und docker --version
= Docker Version 20.10.17, Build 100c701
den Pfad:
/var/lib/docker
Wenn Sie den Inhalt dieses Verzeichnisses mit Größen auflisten möchten, verwenden Sie den Befehl:
du -h -d 1 .
ergibt Ergebnisse (andere Verzeichnisse):
444K ./buildkit
4,0K ./containers
4,0K ./runtimes
16K ./plugins
4,0K ./trust
4,0K ./tmp
100K ./network
22M ./image
2,0G ./volumes
4,0K ./swarm
9,0G ./overlay2
Um den Docker-Stammweg mit einem der Verzeichnisnamen zu versehen, fügen Sie am Ende ein weiteres sed
hinzu sed 's/$/\/image/g'
für die Hinzufügung von /image
Befehl:
docker info | grep 'Docker-Root-Verzeichnis:' | cut -d':' -f2 | sed 's/^ *//g' | sed 's/$/\/image/g'
ergibt:
/var/lib/docker/image
Befehl:
docker info | grep 'Docker-Root-Verzeichnis:' | cut -d':' -f2 | sed 's/^ *//g' | sed 's/$/\/overlay2/g'
ergibt:
/var/lib/docker/overlay2
Auch wenn die Namen der Verzeichnisse selbstverständlich erscheinen mögen, werden die Inhalte der Bilder nicht im Verzeichnis image
(Größe 22M) gespeichert, sondern eher die Informationen zu den Bildern. /var/lib/docker/image/overlay2
in meinem Fall und insbesondere die Datei /var/lib/docker/image/overlay2/repositories.json
, die die Namen der Bilder und die entsprechenden Daten zu den overlay2
-Schichten enthält.
Die tatsächlichen Daten der Bilder (und ihrer Schichten) werden in /var/lib/docker/overlay2
(Größe 9,0G) gespeichert
Bitte beachten Sie, dass das System overlay2
, in dem die schweren Daten der Bilder gespeichert sind, ein Schichtungssystem ist, das von Docker verwendet wird, aber dieses Schichtungssystem ist eines von vielen, die Docker möglicherweise verwendet (jetzt oder in der Zukunft). Daher kann das Basieren auf fest codierten Pfaden fragil sein.
Insbesondere wenn Ihre Absicht darin besteht, die Bilder in eine Datei zu exportieren/speichern, sollten Sie nach speziellen Befehlen suchen:
Was ist der Unterschied zwischen Speichern und Exportieren in Docker?
Mit dem Befehl aus der oben genannten Frage können Sie sogar alle Ihre Bilder in einer Datei speichern, diese komprimieren und dann an anderer Stelle mit einem einzigen Befehl importieren.
Wenn Sie sich an die Docker-Pfade halten möchten, z.B. für die Erstellung von Backups, empfehle ich immer, den Stammweg zu verwenden, z.B.:
/var/lib/docker
generiert durch den Befehl docker info
, insbesondere können auch wichtige Daten darin enthalten sein:
/var/lib/docker/volumes
das z.B. für das Abbild der Datenbank, das ein Volume zur Speicherung der Daten verwendet, erforderlich ist.
Umgebung: Windows 10 Pro, Docker Desktop 2.0.3.0 Edge
Klicken Sie mit der rechten Maustaste auf das Docker-Symbol in der Taskleiste und wählen Sie Einstellungen - Erweitert :
Festplatten-Image-Speicherort (über den Browser bearbeitbar):
C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx
(es ist dort - das Dokumenteverzeichnis ist versteckt)
In Windows 2016 verwendet Docker (DockerMsftProvider) den Ordner "windowsfilter" unter dem Docker-Root-Verzeichnis
>docker info
...
Speichertreiber: windowsfilter
...
Docker-Root-Verzeichnis: C:\ProgramData\docker
...
Es verwendet den "tmp"-Ordner unter dem Docker-Root, um die Dateien herunterzuladen, und löscht die Dateien nach dem Extrahieren der heruntergeladenen Dateien in den "windowsfilter"-Ordner.
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.