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
| Befehl | Zweck |
|---|---|
docker volume ls | Alle Volumes auflisten. |
docker volume create <name> | Volume erstellen. |
docker volume inspect <name> | Details anzeigen. |
docker volume rm <name> | Volume löschen. |
docker volume prune | Unbenutzte 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
| Aspekt | Named Volume | Bind Mount |
|---|---|---|
| Verwaltung | Docker | Benutzer |
| Pfad | Intern, abstrahiert | Fester Host-Pfad |
| Portabilität | Hoch | Pfadabhängig |
| Zugriff | Weniger direkt | Direkt auf Host |
| Sicherheit | Container-User angepasst | Host-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 pruneanwenden, 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.
Weiterführende Links und Infos
- BotServ.de Docker Befehle
- BotServ.de Docker Compose
- BotServ.de Proxmox Backups und Restore
- BotServ.de Ollama Befehle
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
- Docker Volumes: https://docs.docker.com/storage/volumes/
- Docker Bind Mounts: https://docs.docker.com/storage/bind-mounts/
- Docker Storage: https://docs.docker.com/storage/
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.


