Ich habe die Container im Verzeichnis gefunden /var/lib/docker/containers
, aber ich kann die Bilder nicht finden.
Unter welchen Verzeichnissen und Dateien befinden sich /var/lib/docker
?
docker
docker-image
nemo
quelle
quelle
Antworten:
Der Inhalt des
/var/lib/docker
Verzeichnisses hängt vom Treiber ab, den Docker für die Speicherung verwendet .In der Standardeinstellung ist dies
aufs
aber fällt zurückoverlay
,overlay2
,btrfs
,devicemapper
oderzfs
je nach Kernel - Unterstützung. In den meisten Orten wird dies sein,aufs
aber die RedHats gingen mitdevicemapper
.Sie können den Speichertreiber manuell mit der Option
-s
oder--storage-driver=
auf den Docker-Dämon einstellen ./var/lib/docker/{driver-name}
enthält den treiberspezifischen Speicher für den Inhalt der Bilder./var/lib/docker/graph/<id>
Enthält jetzt nur noch Metadaten zum Bild in den Dateienjson
undlayersize
.Im Fall von
aufs
:/var/lib/docker/aufs/diff/<id>
hat den Dateiinhalt der Bilder./var/lib/docker/repositories-aufs
ist eine JSON-Datei mit lokalen Bildinformationen. Dies kann mit dem Befehl angezeigt werdendocker images
.Im Fall von
devicemapper
:/var/lib/docker/devicemapper/devicemapper/data
speichert die Bilder/var/lib/docker/devicemapper/devicemapper/metadata
die Metadatenquelle
docker info
und finden Sie den tatsächlichen Standort für Ihr Setup .Docker for Mac
mit 2 Bildern à 1,5 GB und/var/lib
habe kein Verzeichnisdocker
.Bei Verwendung von Docker für Mac-Anwendungen werden die Container anscheinend in der VM gespeichert unter:
UPDATE (mit freundlicher Genehmigung von mmorin ):
Ab dem 15. Januar 2019 scheint es nur diese Datei zu geben:
Das enthält die Docker Disk und alle darin enthaltenen Images und Container.
quelle
ubuntu
,nginx
) oder ist dies der Ort für alle Container? Die ursprüngliche Frage fragt nach Bildern , nicht nach Behältern ...Docker for Mac
mit zwei Bildern von jeweils 1,5 GB und~/Library/Containers/Data/com.docker.docker/Data
habe kein Verzeichniscom.docker.driver.amd64-linux
und die einzige große Datei istvms/0/Docker.raw
mit 3,6 GB.du -hd1 ~/Library/Containers/com.docker.docker/Data/
Das war die alte Art zu tun, jetzt hat es sich geändert. Ignorieren Sie diese Antwort ab 2019
Im Sonderfall von Mac OS X oder Windows werden Ihre Docker-Images mithilfe von boot2docker in einer von boot2docker verwalteten VirtualBox-VM gespeichert.
Diese VM wird an einem normalen Ort für VirtualBox-Images gespeichert:
OS X:
~/VirtualBox VMs/boot2docker-vm
Windows:
%USERPROFILE%/VirtualBox VMs/boot2docker-vm
Sie können es zurücksetzen, indem Sie es ausführen (WARNUNG: Dadurch werden alle Bilder zerstört, die Sie bisher erstellt und heruntergeladen haben):
Dies ist besonders nützlich, wenn Sie beim Erstellen / Debuggen eines Builds ohne die nützlichen Optionen --rm Tonnen von Zwischenbildern beibehalten haben. Ich zitiere sie hier als Referenz: Verwendung:
anstatt:
quelle
%USERPROFILE%\.docker\machine\machines
(Bitte beachten Sie denC:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
Tatsächlich werden Docker-Images in zwei Dateien gespeichert, wie mit dem folgenden Befehl gezeigt
quelle
docker info
ist dies sehr nützlich, aber die AusgabeDocker Root Dir: /var/lib/docker
gibt nicht den Speicherort des Bildes an (siehe Mac-spezifische Antwort oben).Auf dem neu veröffentlichten 'Docker für Windows', der Hyper-V verwendet, befinden sich Daten auf der virtuellen Docker-Festplatte:
Sie können auch den 'Hyper-V Manager' für den Zugriff auf Docker / MobyLinuxVM öffnen.
quelle
C:\ProgramData\docker\windowsfilter
für mich bereit. Weitere Informationen: stackoverflow.com/a/39971954/188740Die Bilder werden in gespeichert
/var/lib/docker/graph/<id>/layer
.Beachten Sie, dass Bilder nur vom übergeordneten Bild abweichen. Die übergeordnete ID wird mit den Metadaten des Bildes gespeichert
/var/lib/docker/graph/<id>/json
.Wenn Sie
docker run
ein Bild. AUFS wird alle Ebenen in einem verwendbaren Dateisystem zusammenführen.quelle
Unter Ubuntu können Sie mit laufenden Bildern "spielen"
Tatsächlich werden Bilder in gespeichert
/var/lib/docker/aufs/diff
quelle
Für jemanden, der die Docker-Toolbox verwendet (die Docker-Maschine verwendet), sind die Antworten zu boot2docker unter Mac OS X ungültig. Die Docker-Maschinen-VM heißt "Standard" und ist im
/Users/<username>/.docker/machine/machines/default/
Verzeichnis vorhanden.quelle
In Docker für Windows (natives Windows) befindet sich der Standardcontainerspeicher unter:
quelle
docker build
Befehl ausgeführt und sehe keine Datei, die meiner Meinung nach die Bilddatei ist. Ich sehe einige Ordner und einige Textdateien (z. B. service.txt). Welcher Dateityp und mit welcher Dateierweiterung wirddocker build
erstellt?Wenn Sie Docker für MAC verwenden (nicht
boot2docker
), ist der Speicherort/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
quelle
jasper@~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux $ ls -lh | grep Docker -rw-r--r--@ 1 jasper staff 6.3G May 25 19:20 Docker.qcow2
Ich habe das Bild gefunden. Aber das sind nicht die Container. Sehen Sie sie nicht wirklich in diesem Datenverzeichnis.Wie hier beantwortet , befindet es sich auf einem Mac unter
quelle
Wenn Sie Tristans Antwort erweitern, können Sie in Windows mit Hyper-V das Bild mit den folgenden Schritten von matthuisman aus verschieben:
quelle
docker build
Befehl erstellten Bilder zu finden . Ich bin auf einem Windows 10-Computer. Ich schaue in C: \ Benutzer \ Öffentlich \ Dokumente \ Hyper-V \ Virtuelle Festplatten, aber alles, was ich sehe, ist MobyLinuxVM.vhdx. Wo werden die tatsächlichen Bilder gespeichert?Wenn Sie berücksichtigen, dass Docker noch in einer VM ausgeführt wird, beziehen sich die Systempfade auf die VM und nicht auf das Mac Osx-System. Wie es heißt, ist alles in einer VM-Datei enthalten:
Versuchen Sie, Alpine Image mit dieser Volume-Option und dem Befehl ls auszuführen, mit dem Sie den VM-Host auflisten können:
Danach versuchen Sie einfach:
Jetzt können Sie den Docker-Ordner vom VM-Host aus auflisten
quelle
Ich verwende den boot2docker für Docker unter Mac OSX, damit die Bilder im gespeichert werden
/Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk
.quelle
Ich kann diese Frage nur für Ubuntu-Benutzer beantworten:
Das Stammverzeichnis von Docker wird gefunden, wenn Sie den Befehl ausführen
docker info
Das Docker-Verzeichnis wird in dieser Zeile angegeben: "
Docker Root Dir: /var/lib/docker
"Die Docker-Images werden im Docker-Verzeichnis gespeichert:
/var/lib/docker/aufs/diff/
Denken Sie daran, dass diese Dinge nicht in allen Docker-Versionen gleich sind. Derzeit verwende ich 1.12.3.
quelle
Verwenden Sie den
docker info
Befehl, um systemweite Informationen anzuzeigen, und der Standort kann variieren.Hier ist das Beispiel unter Ubuntu (siehe Root Dir ):
Und hier ist das Beispiel für Travis CI (siehe Docker Root Dir ):
Sie können
--format
Parameter verwenden, um diese Informationen in eine einzelne Datei zu extrahieren, zoder:
quelle
In Docker für Windows befinden sich die Protokolle hier:
%USERPROFILE%\AppData\Local\Docker
quelle
Suchen Sie nach dem Docker-Ordner in
/var/lib
Die Bilder werden an einem der folgenden Orte gespeichert:
quelle
/var/lib/docker/image/overlay2/
. Beachten Sie auch, dass dies der Fall ist, weil Ihre Docker-Engineoverlay2
als Speichertreiber verwendet wird.Verwenden
docker inspect container_id
Sie den Ordner find unter MergedDir
quelle
Klicken Sie für "Docker Desktop" auf das Docker-Taskleistensymbol und dann auf "Einstellungen".
Auf der Registerkarte Erweitert sehen Sie den Speicherort des Disk-Images.
quelle
Umgebung: Windows 10 Pro, Docker Desktop 2.0.3.0 Edge
Klicken Sie mit der rechten Maustaste auf das Docker-Symbol in der Taskleiste. Wählen Sie Einstellungen aus - Erweitert:
Speicherort des Disk-Images (kann über den Browser bearbeitet werden):
C: \ Benutzer \ Öffentlich \ Dokumente \ Hyper-V \ Virtuelle Festplatten \ DockerDesktop.vhdx
(es ist da - Dokumentenverzeichnis ist versteckt)
quelle
docker build
Befehl erstellte Image ?quelle
Unter Fedora verwendet Docker LVM zur Speicherung, sofern verfügbar. Auf meinem System
docker info
zeigt:In diesem Fall müssen Sie zur Erhöhung des Speichers LVM-Befehlszeilentools oder kompatible Partitionsmanager wie blivet verwenden .
quelle
In Windows 2016 verwendet Docker (DockerMsftProvider) den Ordner "Windowsfilter" unter Docker-Stammverzeichnis
Es verwendet den Ordner "tmp" unter dem Docker-Stammverzeichnis, um die Dateien herunterzuladen, und löscht die Dateien, nachdem die heruntergeladenen Dateien in den Ordner "windowsfilter" extrahiert wurden.
quelle
Auf Debian Unstable / Sid,
docker info
systemweite Informationen zu finden.Bilder werden bei
/var/lib/docker/image/overlay2/imagedb/content
und gespeichertBehälter werden bei gelagert
/var/lib/docker/containers
Docker-Version
18.06.0-ce
, API-Version1.38
quelle
Ich konnte die Frage mit Docker Version 18.09 auf Macos mit den obigen Antworten nicht lösen und versuchte es erneut.
Die einzige tatsächliche Lösung für mich war die Verwendung dieser
docker-compose.yml
Konfiguration:Nach dem Start mit hatte
docker-compose up
ich endlich/tmp/host-volume
von Macos als beschreibbares Volume aus dem Container freigegeben:Hoffe das hilft auch anderen.
quelle
Bilder werden im
/var/lib/docker
und dann im entsprechendenstorage driver
Verzeichnis gespeichert .Der verwendete Speichertreiber kann durch Ausführen eines
docker info
Befehls ermittelt werden .quelle
Laut dem Docker-Handbuch " Erste Schritte " befindet sich "Ihr erstelltes Image" "in der lokalen Docker-Image-Registrierung Ihres Computers".
Das ist mir immer noch fremd, denn jetzt führt es zur Frage. Wo befindet sich die lokale Docker-Image-Registrierung meines Computers?
Trotzdem denke ich definitiv, dass es sich lohnt, diese Informationen als Antwort zu teilen.
quelle
Wenn jemand es für Skriptzwecke benötigt, ist hier eine einzeilige Lösung.
grep
Versuchen Sie in der POSIX-Shell bei aktiviertem PCRE Folgendes:DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
In PowerShell:
$DOCKER_ROOT_DIR="$(docker info 2>&1 | foreach {if($_ -match "Docker Root Dir"){$_.TrimStart("Docker Root Dir: ")}})"
Beachten Sie, dass unter Windows 10 (ab
10.0.18999.1
) in Standardkonfigurationen Folgendes zurückgegeben wird:C:\ProgramData\Docker
im Modus "Windows-Container"/var/lib/docker
im Modus "Linux-Container"quelle
DOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')"
, aber am Ende ist es eine Datei, kein Verzeichnissudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
Listen Sie für mich den Inhalt dieses Verzeichnisses auf.