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?

2voto

eddygeek Punkte 3725

Auf Fedora verwendet Docker LVM für Speicher, wenn verfügbar. Auf meinem System zeigt docker info Folgendes:

Speichertreiber: devicemapper
 Pool-Name: vg01-docker--pool
 Pool-Blockgröße: 524,3 kB
 Basisspeichergerät-Größe: 10,74 GB
 Hintergrund-Dateisystem: xfs
 Daten-Datei:
 Metadaten-Datei:
 Genutzter Datenspeicher: 9,622 GB
 ...

In diesem Fall müssen Sie zum Erhöhen des Speicherplatzes LVM-Befehlszeilentools oder kompatible Partitionstools wie blivet verwenden.

1voto

Im Jahr 2021 auf macOS ist die einzige mögliche Lösung, auf die Docker-VM zuzugreifen, mit Bash und dann die lokale Struktur zu sehen:

  1. docker run -ti --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
  2. cd /var/lib/docker/

Gern geschehen!

0voto

Anshul Singhal Punkte 1453

Bilder werden innerhalb des Verzeichnisses /var/lib/docker und dann unter dem entsprechenden Verzeichnis des Speichertreibers gespeichert.

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

0voto

axelrose Punkte 556

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

Die einzige tatsächliche Lösung für mich bestand darin, diese docker-compose.yml-Konfiguration zu verwenden:

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 Starten mit docker-compose up hatte ich schließlich /tmp/host-volume von Macos als beschreibbares Volume innerhalb des Containers geteilt:

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

Ich hoffe, das hilft auch anderen.

0voto

vulcan raven Punkte 31125

Wenn jemand es für Skriptzwecke benötigt, hier ist eine Lösung in einer Zeile.

In POSIX-Shell, mit aktiviertem PCRE in grep, versuchen Sie es mit:

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 (Stand 10.0.18999.1), in den Standardkonfigurationen folgendes zurückgegeben wird:

  • C:\ProgramData\Docker im Modus "Windows-Container"
  • /var/lib/docker im Modus "Linux-Container"

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