Persistente Volumes

Docker für Fortgeschrittene

Mike Metzger

Data Engineering Consultant

Was ist ein Volume?

  • Volumes sind eine Option, Daten in Docker zu speichern, unabhängig vom Container-Image oder Host-Dateisystem
  • Werden über die Kommandozeile (oder API) verwaltet
  • Können von mehreren Containern gemeinsam genutzt werden
  • Höhere Performance als File Shares/Bind Mounts
  • Bleiben bestehen, bis sie entfernt werden

Volume-Mount.png

1 Bild geändert von https://docs.docker.com
Docker für Fortgeschrittene

Volumes verwalten

  • docker volume
  • docker volume create <volumename>
  • docker volume ls oder docker volume list
  • docker volume inspect
    • Liefert diverse Metadaten zum Volume, inkl. Name, Mountpoint, Optionen usw.
  • docker volume rm
Docker für Fortgeschrittene

Beispiel: Volume anlegen

bash> docker volume create sqldata
sqldata
bash> docker volume ls
DRIVER    VOLUME NAME
local     2f2b7f710551e004dcdd9edf4cad31c37826b428de12f1c04ca02305d216ab00
local     14da7ff0c6eb29f644e6f9f9d59bbcf56b3699c04881dd7cbcaa9ecd6bef239c
local     150aa3c5c7aee30ffd1ec7ecf39f03989bf561536a9413ebed96ffbaa537d103
local     sqldata
...
Docker für Fortgeschrittene

Beispiel: Volume inspect

bash> volume inspect sqldata

[ { "CreatedAt": "2024-01-27T04:27:51Z", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/sqldata/_data", "Name": "sqldata", "Options": null, "Scope": "local" } ]
Docker für Fortgeschrittene

Volumes anhängen

  • Verwendet den Befehl -v
    • docker run -v <volumename>:<destination path>:<options>
    • Volume-Name ist der Name eines bestehenden Volumes
    • Zielpfad ist der Mountpunkt des Volumes (z. B. /data)
    • Optionen sind eine optionale, kommaseparierte Liste, z. B. ro für read-only.
  • --mount gibt es wie bei Bind-Mounts
$ docker run -v sqldata:/data postgres
Docker für Fortgeschrittene

Treiber

  • Methoden zum Speichern von Docker-Volumes
  • Können umfassen:
    • Lokales Dateisystem (Standard)
    • NFS (Unix-Dateifreigabe)
    • SMB/CIFS (Windows-Dateifreigabe)
Docker für Fortgeschrittene

Lass uns üben!

Docker für Fortgeschrittene

Preparing Video For Download...