Docker: Verwenden Sie keine Docker-Bind-Mounts

Diese Dokumentation ist Teil des Volumes-Leitfadens. Den vollständigen Leitfaden finden Sie hier: 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!

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