Skip to content
BotServBotServ
DockerVolumesBind MountsBackupDatenContainer

Docker Volumes verwalten

Docker Volumes für persistene Daten. Named Volumes, Bind Mounts, Backups, Pruning und Best Practices.

S

schutzgeist

3 min read
Docker Volumes verwalten

Docker Volumes verwalten

Was dieser Artikel über Docker Volumes behandelt

  • Warum Volumes wichtig sind.
  • Unterschied zwischen Named Volumes, Bind Mounts und tmpfs.
  • Wie man Volumes erstellt, listet und löscht.
  • Wie man Volumes sichert und wiederherstellt.
  • Typische Stolpersteine und Tipps.

Einleitung: Docker Volumes verwalten

Docker-Container sind standardmässig zustandslos. Sobald ein Container gelöscht wird, sind alle darin gespeicherten Daten verloren. Damit Konfigurationen, Modelle, Datenbanken und Arbeitsdaten erhalten bleiben, müssen Daten auf dem Host oder in separaten Speicherbereichen persistiert werden. Docker bietet dafür Volumes. Wer Volumes richtig versteht, vermeidet Datenverlust und kann Container sicher neu starten.

Dieser Artikel zeigt die gängigsten Volume-Arten, wichtige Befehle und Backup-Strategien für lokale KI-Projekte.

Wichtige Begriffe

  • Volume: Verwalteter Speicherbereich für Container-Daten.
  • Named Volume: Benanntes Volume, von Docker verwaltet.
  • Bind Mount: Verzeichnis des Hosts wird in den Container eingebunden.
  • tmpfs Mount: Temporärer Speicher im RAM.
  • Layer: Schreibbare Ebene eines Containers.
  • Persistenz: Daten bleiben nach Containerleben erhalten.
  • Driver: Speichertreiber für Volumes.

Warum Volumes?

  • Daten bleiben erhalten, wenn Container gelöscht werden.
  • Container-Images bleiben klein und portabel.
  • Mehrere Container können Daten teilen.
  • Sicherungen und Migrationen sind einfacher.
  • Daten liegen ausserhalb der Container-Layers.

Arten von Volumes

Named Volumes

Docker verwaltet den Speicherort. Die Daten liegen typischerweise unter /var/lib/docker/volumes/.

docker volume create ollama-data

Einfache Verwendung:

docker run -d -v ollama-data:/root/.ollama ollama/ollama

Bind Mounts

Ein Host-Verzeichnis wird in den Container eingebunden. Der Pfad ist klar definiert.

docker run -d -v /pfad/auf/host:/pfad/im/container ollama/ollama

Gut für Entwicklung und wenn man direkt auf Dateien zugreifen will.

tmpfs Mounts

Daten landen im RAM und gehen verloren, wenn der Container stoppt. Für temporäre Daten geeignet.

docker run -d --tmpfs /tmp ollama/ollama

Volumes mit docker run

docker run -d \
  --name ollama \
  -v ollama-data:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama

Volumes in Compose

services:
  ollama:
    image: ollama/ollama
    volumes:
      - ollama-data:/root/.ollama

volumes:
  ollama-data:

Volumes verwalten

BefehlZweck
docker volume lsAlle Volumes auflisten.
docker volume create <name>Volume erstellen.
docker volume inspect <name>Details anzeigen.
docker volume rm <name>Volume löschen.
docker volume pruneUnbenutzte Volumes entfernen.

Backup und Wiederherstellung

Backup

docker run --rm -v ollama-data:/data -v $(pwd):/backup busybox tar -czf /backup/ollama-data.tar.gz -C /data .

Wiederherstellen

docker run --rm -v ollama-data:/data -v $(pwd):/backup busybox tar -xzf /backup/ollama-data.tar.gz -C /data

Mit laufendem Container

docker exec ollama tar -czf - /root/.ollama > ollama-data.tar.gz

Volumes migrieren

Volumes lassen sich auf einen anderen Host übertragen:

docker run --rm -v ollama-data:/data -v $(pwd):/backup busybox tar -czf /backup/ollama-data.tar.gz -C /data .
scp ollama-data.tar.gz anderer-host:/pfad/
docker run --rm -v neues-ollama-data:/data -v /pfad:/backup busybox tar -xzf /backup/ollama-data.tar.gz -C /data

Unterschied Named Volume vs. Bind Mount

AspektNamed VolumeBind Mount
VerwaltungDockerBenutzer
PfadIntern, abstrahiertFester Host-Pfad
PortabilitätHochPfadabhängig
ZugriffWeniger direktDirekt auf Host
SicherheitContainer-User angepasstHost-Rechte

Best Practices

  • Benannte Volumes für Produktion, Bind Mounts für Entwicklung.
  • Volumes vorher planen, bevor Container starten.
  • Backups regelmässig durchführen.
  • Nicht docker volume prune anwenden, wenn wichtige Daten vorhanden sein könnten.
  • Berechtigungen prüfen, wenn Permission-Denied-Fehler auftreten.
  • Volumes mit sprechenden Namen versehen.

Typische Stolpersteine

  • Volume vergessen: Daten gehen bei Containerneustart verloren.
  • Falscher Container-Pfad: Daten werden nicht am erwarteten Ort abgelegt.
  • Zugriffsrechte: Container-User kann auf Host-Dateien nicht zugreifen.
  • Volume-Prune: Unbeabsichtigtes Löschen von Daten.
  • Netzwerkpfade: Bind Mounts auf fremde Dateisysteme können Probleme verursachen.
  • Mehrere Container auf Volume: Gleichzeitiges Schreiben kann Konflikte erzeugen.

FAQ: Docker Volumes

Wann sollte ich Named Volumes nutzen? Für Datenbanken, Modelle, Konfigurationen und alles, was persistent bleiben soll.

Wann Bind Mounts? Wenn man direkt aus dem Host-Verzeichnis lesen oder schreiben möchte.

Wo liegen Named Volumes? Unter Linux meist in /var/lib/docker/volumes/.

Wie sichere ich Volumes? Mit tar über einen temporären Container oder docker cp.

Sind Volumes schneller als Bind Mounts? In den meisten Fällen ist der Unterschied gering. Bind Mounts können bei Netzwerk-Dateisystemen langsamer sein.

Quellen und weiterführende Literatur

Zusammenfassung: Docker Volumes verwalten

Docker Volumes sind der Schlüssel für persistente Daten in Containern. Named Volumes sind bequem und portabel, Bind Mounts bieten direkten Host-Zugriff. Wer Volumes richtig plant, regelmässig sichert und auf Berechtigungen achtet, vermeidet Datenverlust und bekommt stabile KI-Dienste. Besonders bei Ollama, Datenbanken und Web-Interfaces sind Volumes unverzichtbar, damit Modelle und Konfigurationen nach einem Neustart weiterhin verfügbar sind.

Zurück zum KI Blog
Share:

Ähnliche Beiträge