Volumes & persistente Daten

Daten überleben

Container sind flüchtig: Wird ein Container entfernt, sind auch seine Daten weg. Damit Datenbanken, Uploads und Co. das überleben, gibt es Volumes.

Zwei Arten, Daten zu speichern

ArtWofürBeispiel
Benanntes Volumepersistente Daten (DB, Uploads)db-data:/var/lib/mysql
Bind-MountHost-Verzeichnis einspiegeln (Code)./:/var/www/html

Ein benanntes Volume verwaltet Docker selbst – ideal für Daten, die einfach nur überleben sollen. Ein Bind-Mount verknüpft ein konkretes Verzeichnis vom Host – ideal, um Code live zu bearbeiten.

Benannte Volumes

services:
  db:
    image: mariadb:11
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

Solange das Volume existiert, bleiben die Daten erhalten – auch über docker compose down hinweg.

Volumes verwalten

docker volume ls                 # vorhandene Volumes
docker compose down              # Container weg, Volumes bleiben
docker compose down -v           # ACHTUNG: löscht auch die Volumes

Häufiger Anfängerfehler: Datenbank-Daten liegen im Container statt in einem Volume – nach docker compose down sind sie weg. Deshalb: persistente Daten immer in ein benanntes Volume.

Damit sind Daten sicher. Für den täglichen Umgang lohnt sich ein kompakter Werkzeugkasten an Befehlen.