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) Plattform, die für schnelle und zuverlässige Container-Bereitstellungen entwickelt wurde:

  • Deployment in die Produktion mit nur einem docker-compose up. Es ist keine zusätzliche Konfiguration erforderlich: Starten Sie einfach Ihre Container.
  • Wählen Sie Ihren eigenen Domainnamen, der automatisch per HTTPS gesichert wird (zum Beispiel: https://api.ihr-unternehmen.com, https://www.ihr-unternehmen.com oder https://backoffice.ihr-unternehmen.com).
  • Profitieren Sie von hoher Performance und robuster Sicherheit auf einer privaten, dedizierten Infrastruktur.
  • Updates können mit nur einem Klick angewendet werden – für eine einfache und unkomplizierte Wartung.

Ihre Container sind in etwa fünf Minuten produktiv einsatzbereit. Stackhero übernimmt für Sie das Infrastrukturmanagement, Updates und die Sicherheit, sodass Sie sich ganz auf die Entwicklung Ihrer Anwendungen konzentrieren können. Erfahren Sie mehr über das Docker CaaS Cloud Hosting.

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