Der Unterschied zwischen Bildern und Containern in Docker: 1. Ein Bild ist eine Vorlage, die verschiedene Umgebungen oder Dienste enthält, während ein Container eine Instanz eines Bildes ist. 2. Ein Bild kann nicht ausgeführt werden und ist statisch, während ein Container dies kann run Ja, es ist dynamisch.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-1.13.1-Version, Dell G3-Computer.
1. Docker-Image
Es ist wirklich nicht einfach, den Unterschied zwischen einem Docker-Image und einem Docker-Container zu verstehen.
Angenommen, der Linux-Kernel ist Schicht 0, dann wird Docker unabhängig davon, wie Sie es ausführen, auf der Kernel-Schicht ausgeführt. Dieses Docker-Image ist ein schreibgeschütztes Image und befindet sich auf Ebene 1. Es kann nicht geändert werden oder der Status kann nicht gespeichert werden.
Ein Docker-Image kann auf einem anderen Docker-Image aufgebaut werden und diese kaskadierende Beziehung kann mehrschichtig sein. Die Bildebene der ersten Ebene wird als Basisbild (Basisbild) bezeichnet, und die Bilder anderer Ebenen (außer der obersten Ebene) werden als übergeordnetes Bild (übergeordnetes Bild) bezeichnet. Diese Images erben alle Eigenschaften und Einstellungen von ihrem übergeordneten Image und fügen ihre eigene Konfiguration in der Docker-Datei hinzu.
Docker-Bilder werden anhand der Bild-ID identifiziert. Die Bild-ID ist eine 64-stellige Hexadezimalzeichenfolge. Aber wenn wir ein Bild ausführen, verwenden wir normalerweise nicht die Bild-ID, um auf das Bild zu verweisen, sondern den Bildnamen. Um alle gültigen lokalen Bilder aufzulisten, können Sie den Befehl
# docker images
Mirrors können als verschiedene Versionen veröffentlicht werden. Dieser Mechanismus wird als Tag bezeichnet.
Wie im Bild oben gezeigt, gibt es für das neo4j-Image zwei Versionen: die neueste Version und die Version 2.1.5.
Sie können den Pull-Befehl verwenden, um die angegebene Beschriftung hinzuzufügen:
# docker pull ubuntu:14.04 # docker pull ubuntu:12.04
2. Docker-Container
Der Docker-Container kann mit dem Befehl erstellt werden:
# docker run imagename
Er fügt über allen Bildebenen eine beschreibbare Ebene hinzu. Auf dieser beschreibbaren Ebene laufen Prozesse auf der CPU und haben zwei verschiedene Zustände: „Läuft“ und „Beendet“. Dies ist der Docker-Container. Wenn wir Docker Run verwenden, um den Container zu starten, wechselt der Docker-Container in den Ausführungsstatus. Wenn wir den Docker-Container stoppen, wechselt er in den Exit-Status.
Wenn wir einen laufenden Docker-Container haben, werden alle Änderungen, die wir daran vornehmen, vom laufenden Zustand in den gestoppten Zustand, dauerhaft in das Dateisystem des Containers geschrieben. Denken Sie daran, dass Änderungen am Container in das Dateisystem des Containers geschrieben werden, nicht in das Docker-Image.
Wir können dasselbe Image verwenden, um mehrere Docker-Container zu starten. Diese Container sind nach dem Start alle aktiv und voneinander isoliert. Änderungen, die wir an einem der Container vornehmen, sind auf diesen Container selbst beschränkt.
Wenn das zugrunde liegende Image des Containers geändert wird, ist der aktuell ausgeführte Container davon nicht betroffen und es finden keine automatischen Updates statt.
Wenn wir einen Container auf eine neue Version seines Images aktualisieren möchten, müssen wir darauf achten, dass wir die Datenstruktur richtig aufbauen, sonst verlieren wir möglicherweise alle Daten im Container.
Eine 64-stellige Hexadezimalzeichenfolge zur Definition der Container-ID, die die eindeutige Kennung des Containers darstellt. Die Interaktion zwischen Containern wird durch die Container-ID identifiziert. Da die Zeichen der Container-ID zu lang sind, müssen wir normalerweise nur die ersten 4 Zeichen der Container-ID eingeben. Natürlich können wir auch den Containernamen verwenden, einfacher ist es aber natürlich, eine 4-stellige Container-ID zu verwenden.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Bildern und Containern in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!