Detaillierte Erklärung der Bind-Mounts für die Docker-Datenspeicherung

Detaillierte Erklärung der Bind-Mounts für die Docker-Datenspeicherung

Bevor Sie diesen Artikel lesen, hoffe ich, dass Sie ein vorläufiges Verständnis von Volumes haben. Weitere Einzelheiten finden Sie in diesem Artikel:

Detaillierte Erklärung der Docker-Datenspeichervolumes

Standardmäßig erfolgt das Lesen und Schreiben von Containerdaten auf der Speicherebene des Containers. Wenn der Container gelöscht wird, gehen die darin enthaltenen Daten verloren. Daher sollten wir versuchen, sicherzustellen, dass in der Containerspeicherschicht keine Schreibvorgänge stattfinden. Um eine dauerhafte Speicherung von Daten zu erreichen, müssen wir eine Lösung zum Speichern von Daten wählen. Derzeit gibt es mehrere Möglichkeiten:

  • Bände
  • Halterungen binden
  • tmpfs-Halterungen

Das folgende Diagramm veranschaulicht diese drei Techniken:

Halterungen binden

Der Bind-Mount-Modus ist dem von Volumes sehr ähnlich. Der Unterschied besteht darin, dass der Bind-Mount-Modus jede Datei oder jeden Ordner auf dem Host in den Container einbindet, während Volumes im Wesentlichen einen vom Docker-Dienst verwalteten Bereich (der Standard ist ein Ordner unter /var/lib/docker/volumes) in den Container einbindet.

Die Verwendung von Bind-Mounts ähnelt der von Volumes, und die Hostdateien werden über -v oder --mount im Container gemountet. Hier ist ein Beispiel:

Wenn Sie den Parameter --mount verwenden, müssen Sie type=bind angeben:

$ docker run -d \
 --name=nginxtest \
 --mount Typ=binden,Quelle=/usr/local/web,Ziel=/usr/share/nginx/html \
 nginx:neueste

Das obige Beispiel mountet den Ordner /usr/local/web auf dem Host in den Ordner /usr/share/nginx/html im Container.

Oder verwenden Sie den Parameter -v :

$ docker run -d \
 --name=nginxtest \
 -v /usr/local/web:/usr/share/nginx/html \
 nginx:neueste

Nachdem die Bereitstellung erfolgreich war, liest oder schreibt der Container Daten aus dem Verzeichnis /usr/share/nginx/html, das tatsächlich Daten aus dem Verzeichnis /usr/local/web des Hosts liest oder schreibt. Daher können Volumes oder Bind-Mounts auch als eine Möglichkeit für Container und Hosts betrachtet werden, Dateien gemeinsam zu nutzen.

Wenn Sie Bind-Mounts verwenden, um ein Host-Verzeichnis in einem nicht leeren Verzeichnis in einem Container zu mounten, werden die Dateien im nicht leeren Verzeichnis im Container ausgeblendet und die Dateien, auf die der Container beim Zugriff auf dieses Verzeichnis zugreifen kann, stammen alle aus dem Host-Verzeichnis. Dies ist auch der größte Verhaltensunterschied zwischen dem Bind-Mount-Modus und dem Volume-Modus.

Anwendungsszenarien für Bind-Mounts

Bitte lesen Sie diesen Artikel: Zusammenfassung der Docker-Datenspeicherung

Verweise

https://docs.docker.com/storage/bind-mounts/

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • So ändern Sie den Speicherort von Docker-Standardimages und -Containern
  • Detaillierte Erläuterung der persistenten Speicherung und Datenfreigabe von Docker
  • Detaillierte Erklärung der Docker-Datenspeichervolumes
  • Einführung in den Docker-Speichertreiber
  • Zusammenfassung der Docker-Datenspeicherung
  • Detaillierte Erklärung der TMPF-Mounts im Docker-Datenspeicher
  • Lösung für das Problem des unzureichenden Speicherressourcenpools des Docker-Servers

<<:  Detaillierte Erläuterung der JDBC-Datenbankverknüpfung und der zugehörigen Methodenkapselung

>>:  JavaScript zur Implementierung der Login-Schiebereglerüberprüfung

Artikel empfehlen

Detaillierte Erklärung des Sandbox-Mechanismus von Vue3

Inhaltsverzeichnis Vorwort Browser kompilierte Ve...

So betreten und verlassen Sie den Docker-Container

1 Starten Sie den Docker-Dienst Zuerst müssen Sie...

Unglaubliche CSS-Navigationsleiste unterstreiche folgenden Effekt

Der erste Cutter in China github.com/chokcoco Hie...

Webdesign-Tutorial (6): Behalte deine Leidenschaft für Design

<br />Vorheriger Artikel: Webdesign-Tutorial...

Gestaltung der Bildvorschau auf der Inhaltswebseite

<br />Ich habe bereits zwei Artikel geschrie...

Detaillierte Erklärung der Gründe, warum MySQL-Verbindungen hängen bleiben

Inhaltsverzeichnis 1. Hintergrund Architektur Pro...

Syntax-Alias-Problem basierend auf Löschen in MySQL

Inhaltsverzeichnis MySQL-Löschsyntax-Aliasproblem...

JavaScript implementiert kreisförmigen Fortschrittsbalkeneffekt

In diesem Artikelbeispiel wird der spezifische Ja...

Implementierung der QR-Code-Scanfunktion über Vue

Hinweis Auf dieses Plugin kann nur unter dem http...

Was ist die Datei mysql-bin.000001 in MySQL? Kann sie gelöscht werden?

Nachdem ich MySQL über Ports installiert hatte, s...