it-swarm.com.de

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

Ich habe die Container unter dem Verzeichnis /var/lib/docker/containers gefunden, aber ich finde die Bilder nicht.

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

640
nemo

Der Inhalt des /var/lib/docker-Verzeichnisses variiert je nach dem Treiber, den Docker zum Speichern von verwendet. 

Standardmäßig ist dies aufs, kann aber abhängig von Ihrer Kernel-Unterstützung auf overlay, overlay2, btrfs, devicemapper oder zfs zurückgreifen. In den meisten Orten wird dies aufs sein, aber die RedHats gingen mit devicemapper .

Sie können den Speichertreiber mit der Option -s ODER --storage-driver= manuell auf den Docker-Daemon 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 Metadaten zum Bild in den json- und layersize-Dateien.

Im Fall von aufs:

  • /var/lib/docker/aufs/diff/<id> hat den Dateiinhalt der Bilder.
  • /var/lib/docker/repositories-aufs ist eine JSON-Datei, die lokale Bildinformationen enthält. Dies kann mit dem Befehl docker images angezeigt werden.

Im Fall von devicemapper:

  • /var/lib/docker/devicemapper/devicemapper/data speichert die Bilder
  • /var/lib/docker/devicemapper/devicemapper/metadata die Metadaten
  • Beachten Sie, dass es sich bei diesen Dateien um dünn besetzte "spärliche" Dateien handelt. Sie sind also nicht so groß, wie sie scheinen.
501
Air

Bei Verwendung der Docker for Mac-Anwendung werden die Container anscheinend im Verzeichnis VM gespeichert:

~/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 diese Datei zu geben:

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

das enthält die Docker Disk und alle darin enthaltenen Bilder und Container.

276
mirosval

Im speziellen Fall von Mac OS X oder Windows werden Ihre Docker-Images mit boot2docker in einer von boot2docker verwalteten VirtualBox VM gespeichert.

Diese VM wird an normaler Stelle von VirtualBox-Images gespeichert:

OS X: ~/VirtualBox VMs/boot2docker-vm

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

Sie können es durch Ausführen zurücksetzen (WARNUNG: Dadurch werden alle Bilder zerstört, die Sie bisher erstellt und heruntergeladen haben):

boot2docker down
boot2docker destroy
boot2docker init
boot2docker up

Dies ist besonders nützlich, wenn Sie beim Erstellen/Debuggen eines Builds ohne die nützlichen Optionen --rm massenweise Zwischenbilder beibehalten haben. Ich zitiere sie hier als Referenz:.

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

anstatt:

docker build -t webapp .
119
Phil L.

Tatsächlich werden Docker-Bilder 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

85
Marc Rechté

Die Bilder werden in /var/lib/docker/graph/<id>/layer gespeichert.

Beachten Sie, dass es sich bei Bildern nur um Unterschiede zum übergeordneten Bild handelt. Die übergeordnete ID wird mit den Metadaten des Bildes /var/lib/docker/graph/<id>/json gespeichert.

Wenn Sie ein Bild docker run. AUFS "mischt" alle Layer in einem verwendbaren Dateisystem zusammen.

68
creack

Auf dem neu veröffentlichten Docker für Windows, das Hyper-V verwendet, befinden sich Daten auf der virtuellen Festplatte von Docker: 

C:\Benutzer\Öffentlich\Dokumente\Hyper-V\Virtuelle Festplatten\MobyLinuxVM.vhdx

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

58
Tristan

Für jemanden, der Docker-Toolbox verwendet (die Docker-Maschine verwendet), sind die Antworten zu boot2docker unter Mac OS X nicht gültig. Die Docker-Maschine VM heißt "default" und befindet sich im Verzeichnis /Users/<username>/.docker/machine/machines/default/

45
mbbce

Auf Ubuntu können Sie mit laufenden Bildern "spielen" 

Sudo baobab /var/lib/docker

Tatsächlich werden Bilder in /var/lib/docker/aufs/diff gespeichert.

screenshot showing disk analyzer tool baobab running on /var/lib/docker

37
test30

Wenn Sie Docker für MAC verwenden (nicht boot2docker), lautet der Speicherort /Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/

20
Sunil Fernandes

In Docker für Windows (natives Windows) lautet der Standardcontainerspeicher:

   > docker info
   ...
   Docker Root Dir: C:\ProgramData\Docker
   ...
20
Tormod Haugene

Wie beantwortet hier , wenn Sie unter Mac sind, befindet es sich bei 

/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/Docker.qcow2
6
Ricardo Martins

Um die Antwort von Tristan zu erweitern, können Sie in Windows mit Hyper-V das Bild mit diesen Schritten von matthuisman verschieben:

In Windows 10

  1. Stoppen Sie Docker usw
  2. Geben Sie "Hyper-V Manager" in das Suchfeld der Taskleiste ein und führen Sie es aus.
  3. Wähle deinen PC im linken Fenster aus (meins heißt DESKTOP-CBP **)
  4. Klicken Sie mit der rechten Maustaste auf die richtige virtuelle Maschine (Meine ist Genannt MobyLinuxVM).
  5. Wählen Sie "Ausschalten" (wenn es läuft)
  6. Klicken Sie erneut mit der rechten Maustaste darauf und wählen Sie "Verschieben".
  7. Befolgen Sie die Anweisungen
5
boni

Ich benutze den boot2docker für Docker unter Mac OSX, so dass die Bilder im /Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk gespeichert werden.

3
Chu-Siang Lai

Ich kann diese Frage nur für Ubuntu-Benutzer beantworten:

Das Stammverzeichnis des Dockers kann gefunden werden, wenn Sie den Befehl docker info ausführen.

Das Docker-Verzeichnis wird in dieser Zeile angegeben: "Docker Root Dir: /var/lib/docker"

Über die Docker-Images werden sie 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.

3
Arif A.

Wenn Sie bedenken, dass Docker noch in einer VM ausgeführt wird, beziehen sich die Systempfade auf VM und nicht auf das Mac-Osx-System. Wie es heißt, ist alles in einer VM -Datei enthalten: 

/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/Docker.qcow2

Versuchen Sie, Alpine Image mit dieser Volume-Option auszuführen. Mit dem Befehl ls können Sie den VM -Host auflisten. 

docker-Run --rm -it -v /:/vm-root Alpine: Edge-ls -l/vm-root

Danach einfach mal probieren: 

andocklauf --rm -it -v /:/vm-root Alpine: Edge ls -l /vm-root/var/lib/docker

Jetzt können Sie den Docker-Ordner vom WM-Host aus auflisten

3
user1842947

In Docker für Windows sind die Protokolle hier: %USERPROFILE%\AppData\Local\Docker

2
omasoud

Überprüfen Sie den Docker-Ordner in /var/lib

die Bilder werden am folgenden Ort gespeichert:

/var/lib/docker/image/overlay2/imagedb/content
2
Chandra Pal

Auf Fedora verwendet Docker LVM für die Speicherung, falls verfügbar. Auf meinem System zeigt docker info:

Storage Driver: devicemapper
 Pool Name: vg01-docker--pool
 Pool Blocksize: 524.3 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file:
 Metadata file:
 Data Space Used: 9.622 GB
 ...

In diesem Fall müssen Sie zur Erhöhung des Speichers LVM-Befehlszeilentools oder kompatible Partitionsmanager wie blivet verwenden.

0
eddygeek

Die Bilder werden im Verzeichnis /var/lib/docker und anschließend im entsprechenden Verzeichnis storage driver gespeichert.

Der verwendete Speichertreiber kann durch Ausführen des Befehls docker info ermittelt werden.

0
anshul

Auf Debian Unstable/Sid

docker info, um systemweite Informationen zu finden.

bilder werden unter /var/lib/docker/image/overlay2/imagedb/content und gespeichert

container werden unter /var/lib/docker/containers gespeichert.

docker-Version 18.06.0-ce, API-Version 1.38

0
Dhanuka

Laut der Anleitung Docker Getting Started befindet sich "Ihr erstelltes Image" in der lokalen Docker-Image-Registrierung Ihres Computers.

 enter image description here

Das ist mir immer noch fremd, weil es jetzt zu der Frage führt. Wo befindet sich die lokale Docker-Image-Registrierung meines Computers?

Trotzdem denke ich definitiv, dass es sich lohnt, diese Informationen als Antwort zu teilen.

0
user3731622

Ich konnte die Frage mit Docker Version 18.09 auf Macos mit den obigen Antworten nicht lösen und versuchte es erneut.

Die einzige wirkliche Lösung für mich war die Verwendung dieser docker-compose.yml-Konfiguration:

version: '3.7'
...
  services:
    demo-service:
      volumes:
        - data-volume:/var/tmp/container-volume

volumes:
  data-volume:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /tmp/Host-volume

Nach dem Start mit docker-compose up hatte ich endlich /tmp/Host-volume von macos als beschreibbares Volume aus dem Container freigegeben:

> docker exec -it 1234 /bin/bash
bash-4.4$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
...
osxfs                488347692 464780044  21836472  96% /var/tmp/container-volume

Hoffe, das hilft auch anderen.

0
axelrose

In Windows 2016 verwendet Docker (DockerMsftProvider) den Ordner "Windowsfilter" unter Docker Root

>docker info
...
Storage Driver: windowsfilter
...
Docker Root Dir: C:\ProgramData\docker
...

Es verwendet den Ordner "tmp" unter Docker Root zum Herunterladen der Dateien und löscht die Dateien, nachdem die heruntergeladenen Dateien in den Ordner "windowsfilter" extrahiert wurden.

0
shanmuga raja

Verwenden Sie den Befehl docker info , um systemweite Informationen anzuzeigen. Der Speicherort kann variieren.

Je nach verwendetem Speichertreiber können zusätzliche Informationen angezeigt werden, z. B. Name des Pools, Datendatei, Metadatendatei, verwendeter Datenbereich, Gesamtdatenbereich, verwendeter Metadatenbereich und Gesamtmetadatenbereich.

In der Datendatei werden die Bilder gespeichert und in der Metadatendatei werden die Metadaten zu diesen Bildern gespeichert. Bei der ersten Ausführung weist Docker aus dem verfügbaren Speicherplatz auf dem Volume, auf dem /var/lib/docker bereitgestellt ist, eine bestimmte Menge an Daten- und Metadatenraum zu.

Hier ist das Beispiel auf Ubuntu (check Root Dir):

$ docker info
...
Server Version: 18.06.1-ce
Storage Driver: aufs
 Root Dir: /var/snap/docker/common/var-lib-docker/aufs
...
Docker Root Dir: /var/snap/docker/common/var-lib-docker
...

Und hier ist das Beispiel zu Travis CI (siehe Docker Root Dir):

$ docker info
Server Version: 17.09.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
...
Docker Root Dir: /var/lib/docker
...

Sie können den --format-Parameter verwenden, um diese Informationen in eine einzige Datei zu extrahieren, z.

$ docker info --format '{{.DriverStatus}}'
[[Root Dir /var/snap/docker/common/var-lib-docker/aufs] [Backing Filesystem extfs] [Dirs 265] [Dirperm1 Supported true]]

oder:

$ docker info --format '{{json .DriverStatus}}'
[["Root Dir","/var/snap/docker/common/var-lib-docker/aufs"],["Backing Filesystem","extfs"],["Dirs","265"],["Dirperm1 Supported","true"]]
0
kenorb

benutze docker inspect container_id
Ordner unter MergedDir suchen

# example. 
"MergedDir": "/var/lib/docker/overlay2/f40cc2ea8912ec3b32deeef5a1542a132f6e918acb/merged 
0
madjardi

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 aus:

Speicherort des Disk-Images (über den Browser bearbeitbar):

C:\Benutzer\Öffentlich\Dokumente\Hyper-V\Virtuelle Festplatten\DockerDesktop.vhdx

(es ist da - Dokumentenverzeichnis ist versteckt)

0
theRiley