Heim >Betrieb und Instandhaltung >Docker >Was ist im Docker-Image enthalten?
Das Docker-Image enthält die Programme, Bibliotheken, Ressourcen, Konfigurationen und andere Dateien, die zur Bereitstellung der Containerlaufzeit erforderlich sind, sowie einige für die Laufzeit vorbereitete Konfigurationsparameter. Das Image ist ein spezielles Dateisystem und enthält keine dynamischen Daten. Der Inhalt wird nach der Erstellung nicht geändert.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.
Verstehen Sie zunächst, was ein Image ist:
Wir alle wissen, dass das Betriebssystem in Kernel und Benutzerbereich unterteilt ist. Bei Linux wird nach dem Start des Kernels das Root-Dateisystem gemountet, um User-Space-Unterstützung bereitzustellen. Das Docker-Image (Image) entspricht einem Root-Dateisystem. Beispielsweise enthält das offizielle Image ubuntu:18.04 einen vollständigen Satz von Root-Dateisystemen für das Ubuntu 18.04-Minimalsystem.
Docker-Image ist ein spezielles Dateisystem, das nicht nur die für die Containerlaufzeit erforderlichen Programme, Bibliotheken, Ressourcen, Konfigurationen und andere Dateien bereitstellt, sondern auch einige für die Laufzeit vorbereitete Konfigurationsparameter (z. B. anonyme Volumes, Umgebungsvariablen, Benutzer usw.). usw.). Das Bild enthält keine dynamischen Daten und sein Inhalt wird nach der Erstellung nicht geändert.
Layered Storage
Da das Image das komplette Root-Dateisystem des Betriebssystems enthält, ist sein Volumen oft riesig. Daher nutzt es beim Entwurf von Docker die Technologie voll aus und gestaltet es als mehrstufige Speicherarchitektur. Streng genommen ist ein Image keine gepackte Datei wie ein ISO. Ein Image ist lediglich ein virtuelles Konzept. Seine tatsächliche Manifestation besteht nicht aus einer Datei, sondern aus einer Reihe von Dateisystemen, oder anders ausgedrückt, einer Kombination aus mehreren. Schichtdateisysteme.
Wenn das Bild erstellt wird, wird es Schicht für Schicht erstellt, und die vorherige Ebene ist die Grundlage für die nächste Ebene. Nachdem jede Ebene erstellt wurde, werden Änderungen an der nachfolgenden Ebene nicht mehr vorgenommen. Wenn Sie beispielsweise eine Datei auf der vorherigen Ebene löschen, wird die Datei auf der vorherigen Ebene nicht tatsächlich gelöscht, sondern nur auf der aktuellen Ebene als gelöscht markiert. Wenn der endgültige Container ausgeführt wird, wird diese Datei zwar nicht angezeigt, sie folgt jedoch immer dem Bild. Daher müssen Sie beim Erstellen eines Bildes besonders vorsichtig sein. Jede Ebene sollte nur das enthalten, was der Ebene hinzugefügt werden muss. Alle zusätzlichen Dinge sollten bereinigt werden, bevor die Erstellung der Ebene abgeschlossen ist.
Die Funktion der mehrstufigen Speicherung erleichtert außerdem die Wiederverwendung und individuelle Anpassung von Bildern. Sie können sogar das zuvor erstellte Image als Basisebene verwenden und dann weitere Ebenen hinzufügen, um Ihre Anforderungen anzupassen und ein neues Image zu erstellen.
Erweitertes Wissen:
Sie können Bilder als Klassen verstehen.
Zuerst müssen Sie das Bild aus dem Image Warehouse-Dienst abrufen. Ein gängiger Image-Repository-Dienst ist Docker Hub, es gibt jedoch auch andere Image-Repository-Dienste.
Der Pull-Vorgang lädt das Image auf den lokalen Docker-Host herunter und Sie können das Image verwenden, um einen oder mehrere Container zu starten.
Der Spiegel besteht aus mehreren Schichten. Nachdem jede Schicht übereinander gelegt wurde, sieht er von außen wie ein unabhängiges Objekt aus. Im Image befindet sich ein optimiertes Betriebssystem (OS), das auch Dateien und Abhängigkeitspakete enthält, die für die Ausführung der Anwendung erforderlich sind.
Da Container schnell und kompakt konzipiert sind, sind Bilder normalerweise kleiner.
Ich habe schon oft erwähnt, dass ein Image wie ein Container (eine Klasse) ist, der nicht mehr ausgeführt wird. Tatsächlich können Sie einen Container stoppen und daraus ein neues Image erstellen.
Unter dieser Prämisse kann das Bild als Build-Time-Struktur und der Container als Laufzeitstruktur verstanden werden, wie in der folgenden Abbildung dargestellt.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist im Docker-Image enthalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!