Docker: Volumes

Wie Sie die Daten Ihrer Container mit Docker-Volumes persistent speichern

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Docker Cloud CaaS (Containers as a Service) Lösung, die zahlreiche Vorteile bietet, darunter:

  • Einfache Bereitstellung Ihrer Container in der Produktion mit nur einem docker-compose up.
  • Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://api.ihre-firma.com, https://www.ihre-firma.com, https://backoffice.ihre-firma.com).
  • Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.
  • Mühelose Updates mit nur einem Klick.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Docker CaaS Cloud Hosting Lösung von Stackhero auszuprobieren und Ihre Container in der Produktion bereitzustellen!

Docker-Container sind von Natur aus flüchtig. Das bedeutet, dass alle Daten, die direkt in ihnen gespeichert werden, verloren gehen, wenn der Container entfernt oder durch eine andere Instanz ersetzt wird. Um die Datenpersistenz zu gewährleisten, sind Docker-Volumes der empfohlene Ansatz.

Verwenden Sie keine Bind-Mounts auf Stackhero. Entscheiden Sie sich immer für Docker-Volumes, um Datenverlust zu vermeiden.

Bind-Mounts beinhalten das Verknüpfen eines Verzeichnisses von der Stackhero-Host-VM mit einem Container. Wenn Sie sich jedoch auf Bind-Mounts verlassen, führt das Aktualisieren Ihrer Stackhero for Docker-Instanz zum Verlust aller auf diese Weise gespeicherten Daten.

Bind-Mounts werden häufig im docker run-Befehl mit einer Syntax wie -v /meinVerzeichnis:/mnt (beachten Sie den führenden /) angegeben. In Docker-Compose-Dateien erscheinen sie als volumes: /meinVerzeichnis:/mnt. Verbieten Sie diese Konfigurationen, sonst verlieren Sie Ihre Daten.

Verwenden Sie stattdessen Docker-Volumes, die von Docker verwaltet werden und keine absoluten Pfade referenzieren.

Zusammenfassend:

Falscher Ansatz:

docker run -it -v /meinVerzeichnis:/mnt alpine

Richtiger Ansatz:

docker volume create meinVolume
docker run -it -v meinVolume:/mnt alpine

Bei der Arbeit mit Docker-Compose-Dateien:

Falsche Konfiguration:

services:
  meinService:
    image: alpine
    volumes:
      - /meinVerzeichnis:/mnt

Richtige Konfiguration:

services:
  meinService:
    image: alpine
    volumes:
      - meinVolume:/mnt

volumes:
  meinVolume:
    name: meinVolume

Hier ist eine schnelle Referenz zur Verwaltung von Docker-Volumes:

  • Um ein neues Volume namens meinVolume zu erstellen, führen Sie aus:

    docker volume create meinVolume
    
  • Um alle vorhandenen Volumes aufzulisten:

    docker volume ls
    
  • Um ein bestimmtes Volume namens meinVolume zu entfernen:

    docker volume rm meinVolume
    

    Hinweis: Das Entfernen eines Volumes löscht alle darin gespeicherten Daten dauerhaft, und es gibt keine Möglichkeit, sie danach wiederherzustellen.