Der Unterschied zwischen „Docker-Volume“ und „Mount“ besteht darin: „Docker-Volume“ ist deklarativ, „Docker Engine“ selbst belegt ein bestimmtes Verzeichnis im System und Docker weist dem Volume standardmäßig einen Pfad unter dem belegten Pfad zu; und „Mounting“ belegt keinen Pfad als Mountpunkt.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-1.13.1-Version, Dell G3-Computer.
Wenn mehrere Container über einen längeren Zeitraum hinweg auf dasselbe Datenverzeichnis zugreifen müssen oder wenn Daten im Container beibehalten werden müssen (z. B. eine Datenbank). Ich habe immer die Mount-Verzeichnisform (bind mounts) verwendet, um ein Verzeichnis auf dem Host in ein bestimmtes Verzeichnis im Container zu mounten. Diese Methode kann das Problem lösen, weist jedoch immer einige Mängel auf:
Und diese Probleme können durch die Verwendung von Volume gelöst werden. Vergleichen wir zunächst Bind-Mounts und Docker-Volumen und sehen wir dann, wie Volume das Problem von Bind-Mounts löst. Schauen wir uns zunächst ein Bild an:
Dieses Bild zeigt, dass Bind Mount und Volume tatsächlich das Dateisystem des Hosts verwenden. Der Unterschied besteht darin, dass sich das Volume im von Docker verwalteten Verzeichnis befindet selbst. Es gibt also keine durch Berechtigungen verursachten Mount-Probleme, und der Verzeichnispfad wird von Docker selbst verwaltet, sodass keine Notwendigkeit besteht, unterschiedliche Pfade auf verschiedenen Servern anzugeben , nicht alle, wie weiter unten erläutert wird) Pflege?). Werfen wir als Nächstes einen Blick auf die verschiedenen Verwendungsmöglichkeiten von Bind Mount und Volume.
1. Wenn der Container auf verschiedenen Servern bereitgestellt wird, muss der Pfad entsprechend dem tatsächlichen Festplatten-Mounting-Verzeichnis geändert werden.
Zum Beispiel:
In Linux-Systemen verwenden wir häufig „/var/someDir“ als Mount-Verzeichnis;
Auf dem Mac ist /var/ jedoch kein echtes Verzeichnis. Wir verwenden /var/ nicht
In Windows-Systemen werden Sie von Windows-Benutzern gefragt: /var / Was ist das? C-Laufwerk und D-Laufwerk sind die vernünftigste Unterteilung ~~
Title
Relativ zum Mounten ist das Volume ein Pfad, der von Docker Engine in seinem eigenen „Revier“ zugewiesen wird. as Der Einhängepunkt und die Berechtigungen der eigenen Site müssen übersichtlich angeordnet sein. Daher sind die oben genannten Probleme beim Mounten des Hostpfads gelöst. ?
Wenn Sie es verwenden, verwenden Sie einfach den Volume-Namen anstelle des Host-Pfadnamens. Angenommen, wir haben oben ein Volume mit dem Namen „test_vol“ erstellt:
Achtung!!
Hier muss erklärt werden, dass eine einzelne Dateimethode wie eine Konfigurationsdatei nicht für die Verwendung von Volume geeignet ist. Obwohl die Bind-Mount-Methode ebenfalls gelöst werden kann, ist die Konfigurationsdatei einige vertrauliche Informationen wie Datenbankkennwörter, die beste Methode is Verwendet tmpfs.
Das Volumen von Kubernetes spiegelt auch ein ähnliches Design wider. Obwohl subPath das Problem der Konfigurationsdatei-Einbindung lösen kann, ist die Verwendung von configMap die beste Möglichkeit.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Docker-Volume und Mount?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!