Docker-Bildübertragungsschichtung; Da das Docker-Image in Schichten aufgebaut ist, wird der Prozess der Bilderstellung zerlegt, die Gemeinsamkeiten mit anderen Diensten ermittelt und daraus ein Basisbild erstellt neue Schicht. Dadurch wird Speicherplatz gespart, sodass die Übertragung von Docker-Images mehrschichtig erfolgt.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.
Ein Image ist ein leichtes, ausführbares unabhängiges Softwarepaket, das alles enthält, was zum Ausführen einer bestimmten Software erforderlich ist. Wir packen die Anwendung und Konfiguration in eine geformte, lieferbare und einsetzbare Betriebsumgebung, einschließlich Code, zur Laufzeit erforderlicher Bibliotheken, Umgebungsvariablen und Konfigurationsdateien usw. Dieses große Paket der Betriebsumgebung ist die Image-Image-Datei.
Docker-Container-Instanzen können nur über Bilddateien generiert werden.
Docker-Image-Layering
Bedeutung: Zerlegen Sie den Prozess der Image-Erstellung, finden Sie Gemeinsamkeiten mit anderen Diensten und formulieren Sie daraus ein Basis-Image.
Vorteile: Speicherplatz sparen,
Wenn beim Hoch-/Herunterladen von Bildern das Basisbild bereits vorhanden ist, wird es nicht wiederholt hoch- und heruntergeladen, wodurch die Upload- und Download-Geschwindigkeit verbessert wird.
Nachteile: Wenn das Basisbild geändert wird, werden alle Unterbilder gelöscht -Spiegel werden sich ändern.
Docker-Image-Layering-Mechanismus
Docker-Images werden in Ebenen erstellt. Wenn wir mehr über Docker erfahren, werden wir verstehen, dass jede Spezifikation in der Docker-Datei eine neue Ebene erstellt. Nehmen Sie als Beispiel die folgenden Dockerfile-Anweisungen:
FROM ubuntu:20.04#基础镜像 COPY . /app#复制文件 RUN make /app#编译文件 CMD python /app/app.py#入口文件
Die obigen vier Anweisungen zeichnen nur die von dieser Ebene auf jeder Ebene vorgenommenen Änderungen auf, und diese Ebenen sind schreibgeschützte Ebenen. Beim Starten eines Containers befiehlt Docker, oben eine Lese-/Schreibebene hinzuzufügen. Alle im Container vorgenommenen Änderungen (Schreiben von Protokollen, Ändern, Löschen von Dateien usw.) werden im Allgemeinen in der Lese-/Schreibebene gespeichert wird wie folgt als Containerschicht bezeichnet Wie im Bild gezeigt:
Tatsächlich besteht der Hauptunterschied zwischen einem Container und einem Bild darin, dass der Container eine Lese- und Schreibebene der obersten Ebene hinzufügt. Alle Änderungen am Container erfolgen auf dieser Ebene und das Bild wird nicht geändert, was der zuvor erwähnten COW-Technologie (Copy-on-Write) entspricht. Wenn der Container eine Datei lesen muss, kann er sie direkt von der unteren schreibgeschützten Ebene lesen. Wenn eine Datei geändert werden muss, wird die Datei zur Änderung in die obere schreibgeschützte Ebene und in die schreibgeschützte Ebene kopiert bleibt unverändert.
Jeder Container verfügt über eine eigene Lese-/Schreibebene, sodass mehrere Container dasselbe Bild verwenden können. Wenn ein Container gelöscht wird, wird außerdem auch die entsprechende Lese-/Schreibebene gelöscht Für Daten können Sie Docker-Volumes verwenden.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonIst die Transportschichtung von Docker-Images. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!