Spezifische Verwendung von Docker Anonymous Mount und Named Mount

Spezifische Verwendung von Docker Anonymous Mount und Named Mount

Datenvolumen

Wenn wir über anonyme und benannte Mounts sprechen, sollten wir zunächst wissen, was Volumes sind. Volumes beziehen sich auf Datenvolumes. Wir werden dieses Volume für die Docker-Montage verwenden.

Der Zweck eines Datenvolumens besteht darin, ein spezielles Verzeichnis zu erstellen, das von einem oder mehreren Containern verwendet werden kann. Es umgeht UFS, ein Union-Dateisystem, und bietet viele Funktionen:
(1) Datenvolumes können von mehreren Containern gemeinsam genutzt oder wiederverwendet werden. (2) Änderungen an Datenvolumes werden sofort wirksam. (3) Aktualisierungen an Datenvolumes wirken sich nicht auf Images aus. (4) Datenvolumes bleiben standardmäßig bestehen, auch wenn der Container gelöscht wird (Kombination der Punkte 2 und 3, insbesondere wie bei nacos).

Mit dem folgenden Befehl lässt sich das Datenvolumen einsehen:

Docker-Volume – Hilfe

Tatsächlich ist der Befehlsinhalt nicht sehr umfangreich, er lautet wie folgt:

Bildbeschreibung hier einfügen

Tatsächlich müssen Sie vorher kein Volume erstellen. Sie benennen es, wenn Sie es mounten. Wenn es nicht gefunden werden kann, wird basierend auf dem von Ihnen angegebenen Namen ein neues Datenvolume mit einem Namen anstelle eines Hash-Codes erstellt.

Anonyme und benannte Reittiere

Mit dem bisherigen Wissen über Volumes können wir tatsächlich den Unterschied zwischen anonymem Mount und benanntem Mount erkennen. Das eine ist ein Mount ohne Volume-Namen und das andere ist ein Mount mit einem angegebenen Volume-Namen.

Beispielsweise haben wir nach dem letzten Mounten den Mount-Pfad angegeben. Tatsächlich können wir es einfacher mounten, indem wir den Host-Pfad nicht angeben und den Docker-Container-Pfad direkt mit -v mounten. Installieren Sie nginx wie folgt anonym.

# Anonymer Mount -P Großbuchstabe P, zufälligen Port zuordnen -v Containerpfad docker run -d -P --name nginx01 -v /etc/nginx nginx

Tatsächlich wird ein Hash-Code zurückgegeben, der den Namen des anonym bereitgestellten Datenträgers angibt. Anhand dieses Hash-Codes können Sie auch den entsprechenden Datenträger finden. Für Sie ist er anonym, aber die Leute werden ihm tatsächlich einen Namen geben. Mit dem Befehl „volume ls“ können wir anzeigen, welche Datenvolumes verfügbar sind.

Docker-Volumen ls

Diese benannte Einbindung muss das Datenvolumen angeben, ähnlich wie die vorherige Einbindung mit angegebenem Pfad, aber dieses Mal verwenden wir keinen bestimmten angegebenen Pfad, sondern den Namen des Datenvolumens.

# VOLUME NAME wird aktuell als anonymes Datenvolume angezeigt. Beim Mounten mit -v wird nur der Pfad im Container geschrieben, nicht der Pfad auf dem Host. # Benanntes Mounten # Übergeben Sie -v Volumename: Pfad im Container docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx

Speicherort des Datenträgers

Nachdem wir nun bestimmte Datenvolumes eingerichtet, Container bereitgestellt und den Zweck der Datenvolumes kennen, stellt sich die Frage: Wo befinden sich die Datenvolumes? Schließlich ist alles, was gemountet ist, dort vorhanden. Schauen Sie also einfach nach, wo es ist, um ein versehentliches Löschen zu vermeiden.

Tatsächlich lautet der spezifische Pfad unter Docker:

/var/lib/docker/volumes/xxxx/_data

Wir können zu diesem Pfad wechseln, um uns das Datenvolumen anzusehen. Ich wechsle beispielsweise zu dem zweiten benannten Datenvolumenverzeichnis, in dem nginx gemountet ist, um mir die spezifische Struktur anzusehen.

Bildbeschreibung hier einfügen

Lassen Sie uns unsere Montagemöglichkeiten zusammenfassen:

Wie kann ermittelt werden, ob es sich um eine benannte Einbindung, eine anonyme Einbindung oder eine Einbindung über einen angegebenen Pfad handelt?
-v Pfad im Container# anonymes Mounten
-v Datenträgername:/Pfad innerhalb des Containers# Benannter Mount
-v /Hostpfad:/Containerpfad# Den angegebenen Pfad einhängen

# Verwenden Sie -v, um den Pfad im Container festzulegen: ro rw, um die Lese- und Schreibberechtigungen zu ändern. # ro readonly, nur lesen # rw readwrite, lesen und schreiben # Wenn Containerberechtigungen festgelegt sind, verfügt der Container über eingeschränkte Berechtigungen für die gemounteten Daten. 
docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:rw nginx
# ro Wenn Sie ro sehen, bedeutet dies, dass dieser Pfad nur über die Hostmaschine und nicht innerhalb des Containers ausgeführt werden kann.

Dies ist das Ende dieses Artikels über die spezifische Verwendung von Docker Anonymous Mount und Named Mount. Weitere relevante Inhalte zu Docker Anonymous Mount und Named Mount finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Probleme mit dem benannten Mount und dem anonymen Mount des Docker-Container-Datenvolumens
  • Implementierung benannter und anonymer Mounts in Docker

<<:  Der Unterschied zwischen den vier Dateierweiterungen .html, .htm, .shtml und .shtm

>>:  Detaillierte Erklärung zur Verwendung der Vue h-Funktion

Artikel empfehlen

JS removeAttribute()-Methode zum Löschen eines Attributs eines Elements

Verwenden Sie in JavaScript die Methode removeAtt...

Tutorial-Diagramm zur Installation von Zabbix2.4 unter Centos6.5

Die feste IP-Adresse des Centos-DVD1-Versionssyst...

HTTP-Statuscodes

Dieser Statuscode gibt Auskunft über den Status d...

Warum sollten MySQL-Felder NOT NULL verwenden?

Ich habe vor Kurzem in einer neuen Firma angefang...

Implementierung der Header-Informationen für Nginx-Operationsantworten

Voraussetzung: Sie müssen das Modul ngx_http_head...

JavaScript-Canvas zum Laden von Bildern

In diesem Artikel wird der spezifische Code von J...

CSS-Beispielcode mit Suchnavigationsleiste

Dieser Artikel zeigt Ihnen, wie Sie mit CSS eine ...

Detaillierte Erklärung zur Verwendung des Linux-Befehls Traceroute

Mithilfe von Traceroute können wir den Pfad ermit...