Detaillierte Erklärung der Datenmengen von Docker-Containern

Detaillierte Erklärung der Datenmengen von Docker-Containern

Was ist

Schauen wir uns zunächst das Konzept von Docker an:

Packen Sie die Anwendung und die Ausführungsumgebung in einen Container. Der Container kann die Ausführung begleiten, aber wir hoffen, dass die Daten persistent sind und dass es möglich ist, Daten zwischen Containern auszutauschen.

Wenn die vom Docker-Container generierten Daten nicht durch Generieren eines neuen Images per Docker-Commit als Teil des Images gespeichert werden, verschwinden die Daten natürlich, wenn der Container gelöscht wird.

Um Daten im Docker zu speichern, verwenden wir Volumes.

Mit einem Wort: Es ist RDB und AOF in unserem Redis etwas ähnlich

Was kann ich tun?

Ein Volume ist ein Verzeichnis oder eine Datei, die in einem oder mehreren Containern vorhanden ist und von Docker in den Container eingebunden wird, aber nicht zum Union File System gehört. Daher kann es das Union FileSystem umgehen, um einige Funktionen für die dauerhafte Speicherung oder gemeinsam genutzte Daten bereitzustellen:

Der Entwurfszweck des Volumens ist die Datenpersistenz, die völlig unabhängig vom Lebenszyklus des Containers ist. Daher löscht Docker das bereitgestellte Datenvolumen nicht, wenn der Container gelöscht wird.

Merkmale:

  • Datenvolumes können zum Teilen oder Wiederverwenden von Daten zwischen Containern verwendet werden
  • Änderungen der Lautstärke können sofort wirksam werden
  • Änderungen am Datenvolumen werden bei der Imageaktualisierung nicht berücksichtigt
  • Der Lebenszyklus eines Datenvolumencontainers dauert so lange, bis kein Container ihn mehr verwendet (--volumes from)

Zusammenfassen:

  • Persistenz von Containerdaten
  • Vererbung + gemeinsame Daten zwischen Containern

Datenvolumen

Direkte Befehlsergänzung

docker run -it -v /host absoluter Pfad Verzeichnis:/Containerverzeichnis Imagenamedocker run -it -v /host absoluter Pfad Verzeichnis:/Containerverzeichnis:ro Imagename//mit Befehl Zugriffsrechte angeben, ro: nur lesen

Überprüfen Sie, ob das Datenvolume erfolgreich gemountet wurde:

Docker prüft Container-ID 

Hinzufügen mit DockerFile

Erstellen Sie einen neuen Ordner mydocker im Stammverzeichnis und geben Sie ein

Sie können die VOLUME-Anweisung in einer Docker-Datei verwenden, um dem Image ein oder mehrere Datenvolumes hinzuzufügen.

DockerFile-Build

Zum Schreiben von DockerFile können Sie auf die DockerFile-Dateien jedes Images in DockerHub verweisen, z. B. Tomcat: https://github.com/docker-library/tomcat/blob/300ac03f4696c761a81fa10afbb893f3368061de/8.5/jdk8/openjdk-buster/Dockerfile

#Lautstärketest
VON centos
VOLUME ["/DatenVolumeContainer1","/DatenVolumeContainer2"]
CMD echo "fertig,-------Erfolg1"
CMD /bin/bash

Nach dem Erstellen ein Image generieren

Holen Sie sich ein neues Bild zzyy/centos

Container ausführen

Durch die obigen Schritte ist die Volume-Verzeichnisadresse im Container bereits bekannt. Dort befindet sich das entsprechende Host-Verzeichnis.

Bemerkung:

Docker mountet das Host-Verzeichnis. Docker-Zugriff erscheint: Verzeichnis kann nicht geöffnet werden, Berechtigung verweigert

Lösung: Fügen Sie nach dem Mounten des Verzeichnisses einen Parameter --privileged=true hinzu

Datenvolumencontainer

Was ist

Der benannte Container mountet das Datenvolumen und andere Container teilen Daten, indem sie diesen (übergeordneten Container) mounten. Der Container, der das Datenvolumen mountet, wird als Datenvolumencontainer bezeichnet.

Transitive Freigabe zwischen Containern (--volumes-from)

docker run -it --name dco2 --volumes-from dc01 zzyy/cenos // dc01 ist der erste erstellte Container, dco2 erbt dc01, um Datenfreigabe zu erreichen

Das Datenvolumen wird vom übergeordneten Container (dc01) bereitgestellt. Wenn dc01 auf dc02 und dc03 bereitgestellt und dann gelöscht wird, ist das Datenvolumen weiterhin gültig.

Die Konfigurationsinformationen werden zwischen Containern übertragen und der Lebenszyklus des Datenvolumens wird fortgesetzt, bis kein Container es mehr verwendet.

Zusammenfassen

Dies ist das Ende dieses Artikels über Docker-Container-Datenvolumen. Weitere Informationen zu Docker-Container-Datenvolumen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Einführung und Beispiele für Docker-Datenvolumes und -Datencontainer
  • Detaillierte Einführung in Docker-Datenvolumen und Datenvolumencontainer
  • Einführung in Container-Datenvolumes in Docker
  • Probleme mit dem benannten Mount und dem anonymen Mount des Docker-Container-Datenvolumens
  • Zwei Möglichkeiten zum Verwalten von Volumes in Docker
  • Codebeispiele für allgemeine Docker-Datenvolumenvorgänge
  • Eine kurze Zusammenfassung der Bereitstellung eines Docker-Container-Datenvolumens
  • Docker mountet ein Volume um MySQL-Daten zu speichern

<<:  Analyse zur Lösung des Problems, dass Navicat Premium eine Verbindung zu MySQL 8.0 herstellt und den Fehler „1251“ meldet.

>>:  JavaScript zum Implementieren der Inhaltsaufforderung und der versteckten Funktion des Eingabefelds

Artikel empfehlen

So ermitteln Sie die Höhe des MySQL InnoDB B+-Baums

Vorwort Der Grund, warum die InnoDB-Engine von My...

Beispielcode zur Implementierung eines Foto-Stacking-Effekts mit CSS

Ergebnisse erzielen Schritt 1. Ursprüngliche inde...

Warum wird mir die Zugriffsschnittstelle für Docker Tomcat nicht angezeigt?

Frage: Kann der Ursprungsserver keine Darstellung...

Detaillierte Erläuterung der 6 Möglichkeiten der JS-Vererbung

Vererbung von Prototypketten Die Prototypenvererb...

Verwenden Sie HTML und CSS, um Ihren eigenen warmen Mann „Dabai“ zu erstellen.

Das Endergebnis sieht so aus, ist es nicht süß … ...

Der Unterschied zwischen Datenzeit und Zeitstempel in MySQL

In MySQL gibt es drei Datumstypen: Datum (Jahr-Mo...

Zusammenfassung der verschiedenen Haltungen der MySQL-Berechtigungseskalation

Inhaltsverzeichnis 1. Schreiben Sie Webshell in d...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...

So sichern und wiederherstellen Sie die MySQL-Datenbank, wenn sie zu groß ist

Befehl: mysqlhotcopy Dieser Befehl sperrt die Tab...

Implementierung von React Routing Guard (Routing-Interception)

React unterscheidet sich von Vue. Es implementier...

MySQL-Transaktionsdetails

Inhaltsverzeichnis Einführung Vier Merkmale von T...

Kreativer Eröffnungseffekt durch die Kombination von CSS 3.0 mit Video

Ich möchte Ihnen einen kreativen Einstieg vorstel...