Lassen Sie uns über den Unterschied zwischen Containern und Bildern in Docker sprechen

Lassen Sie uns über den Unterschied zwischen Containern und Bildern in Docker sprechen

Was ist ein Spiegel?

Ein Bild kann als Dateisystem betrachtet werden, das aus mehreren Bildebenen besteht (implementiert durch das Dateivereinigungssystem UnionFS und AUFS). Eine Bildebene kann auch einfach als Basisbild verstanden werden, und jede Bildebene wird in Form von Zeigern überlagert.

Was ist ein Container?

Die Definition eines Containers ist fast identisch mit der eines Bildes und stellt ebenfalls eine einheitliche Ansicht eines Stapels von Ebenen dar. Der einzige Unterschied besteht darin, dass die oberste Ebene des Containers lesbar und beschreibbar ist. Wichtige Punkte: Container = Image + Lese-/Schreibebene, und in der Containerdefinition wird nicht erwähnt, ob der Container ausgeführt werden soll.

Lassen Sie uns heute die Grundsätze und zugrunde liegenden Prinzipien beiseite legen. Eine einfache Erklärung des Unterschieds zwischen Containern und Images in Docker.

Für Anfänger kann der Einstieg in Docker, insbesondere in Images und Containern, etwas verwirrend sein. Tatsächlich können wir verstehen, dass die Beziehung zwischen Bildern und Containern eins-zu-viele ist.

Die folgende Abbildung zeigt eine fehlerhafte Demonstration. Warum ist sie falsch? Denn man kann zwar drei Container mit einem Image starten, aber die Namen dieser drei Container dürfen nicht gleich sein

Richtiges Beispiel (einige Leute fragen, was der Unterschied zwischen diesem und dem obigen Bild ist. Im obigen Bild sind die Namen gleich: Container = Container = Container. Hier sind die Namen Container a != Container b != Container c )

So können wir drei Container über ein Image laufen lassen. Das Image wird von anderen im Image Warehouse gepackt und wir müssen es nur noch herunterladen. Allerdings müssen wir beim Download des Images die Versionsnummer angeben. Genau wie beim Herunterladen eines JDK wird auf der offiziellen Website standardmäßig die neueste Version angezeigt. Wenn wir eine ältere Version herunterladen möchten, müssen wir die entsprechende Version eingeben.

Wie läuft ein Image als Container? Beispielsweise laden wir für msql ein MySQL-Image herunter.

Docker-Pull MySQL

Führen Sie das Image aus, um die mysql_zhangsan-Datenbank zu generieren (eine Datenbank speziell für Zhang San).

[root@localhost ~]# docker run ‐p 3306:3306 ‐‐name mysql_zhangsan ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql 
ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434

-p 3306:3306 : Port-Zuordnung

--name mysql_zhangsan: Nennen Sie diesen Container mysql_zhangsan (dieser Name ist eindeutig und kann nicht wiederholt werden)

-e MYSQL_ROOT_PASSWORD=123456: Das Konto zum Anmelden bei dieser Datenbank ist ROOT und das Passwort ist 123456

-d wird basierend auf dem MySQL-Image erstellt, das wir gerade heruntergeladen haben.

Führen Sie das Image aus, um die mysql_lisi-Datenbank zu generieren (eine Datenbank speziell für Li Si).

[root@localhost ~]# docker run ‐p 3307:3307 ‐‐name mysql_lisi ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql 
ms10e4bcfdsf0f61cbad43898de71d366117d120dfs9db651844c0e73863b9968

-p 3307:3307: Portzuordnung (Port 3306 kann nicht verwendet werden, da er von der Datenbank von Zhang San belegt ist)

--name mysql_lisi: Nennen Sie diesen Container mysql_lisi (dieser Name ist eindeutig und kann nicht mit dem obigen mysql_zhangsan wiederholt werden)

-e MYSQL_ROOT_PASSWORD=123456: Das Konto zum Anmelden bei dieser Datenbank ist ebenfalls ROOT und das Passwort ist ebenfalls 123456

-d wird basierend auf dem MySQL-Image erstellt, das wir gerade heruntergeladen haben.

An diesem Punkt haben wir erfolgreich zwei verschiedene Container über ein Image erstellt. Auf diese Weise können wir zwei MySQL auf unserem Computer ausführen. Wenn wir einen anderen MySQL-Container öffnen möchten, können wir ihn, solange Port und Name unterschiedlich sind, trotzdem basierend auf dem abgerufenen MySQL-Image erstellen.

Oben finden Sie detaillierte Informationen zum Unterschied zwischen Containern und Images in Docker. Weitere Informationen zum Unterschied zwischen Docker-Containern und Images finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Docker-Praxis: Fehlerbehebung beim Starten eines Containers aus einem neuen Image
  • So ändern Sie den Speicherort von Docker-Standardimages und -Containern
  • So ändern Sie das Speicherverzeichnis des Image-Containers in Docker
  • Ändern Sie den Speicherort der Docker-Standardimages und -Container in CentOS 7
  • Zusammenfassung gängiger Docker-Befehle: Installation, Spiegelung und grundlegende Containervorgänge
  • Docker-Tipps: Löschen von Docker-Containern und -Images

<<:  50 wunderschöne FLASH-Website-Designbeispiele

>>:  Lernen Sie den Rendering-Prozess von HTML-Seiten kennen, um sich auf die Optimierung der Front-End-Leistung vorzubereiten (Fortsetzung)

Artikel empfehlen

jQuery verwendet das Canvas-Tag, um den Bestätigungscode zu zeichnen

Das <canvas>-Element ist für clientseitige ...

Einführung in das Layout des HTML-Seitenquellcodes_Powernode Java Academy

Einführung in das Layout des HTML-Seitenquellcode...

Detaillierte Schritte zum Bereitstellen eines Tomcat-Servers basierend auf IDEA

Inhaltsverzeichnis Einführung Schritt 1 Schritt 2...

MySQL 8.0.16 Installations- und Konfigurations-Tutorial unter Windows 10

In diesem Artikel finden Sie das grafische Tutori...

Einfache Implementierung von Vue Drag & Drop

In diesem Artikel wird hauptsächlich die einfache...

Docker-Bereitstellung von Kafka und Spring Kafka-Implementierung

In diesem Artikel wird hauptsächlich die Bereitst...

Einführung in MySQL-Isolationsebene, Sperre und MVCC

Ziel dieses Artikels ist es, die Beziehung zwisch...

Lösungen für Dateien/Ordner, die unter Linux nicht gelöscht werden können

Vorwort Kürzlich wurde unser Server von Hackern a...

Besprechen Sie den Entwicklungstrend der Baidu Encyclopedia UI

<br />Die offizielle Version der Baidu-Enzyk...

Detaillierte Erläuterung der Nginx-Prozessverwaltungs- und Neuladeprinzipien

Prozessstrukturdiagramm Nginx ist eine Multiproze...

Lösung zur Schnittstellenverformung beim Einstellen der Frameset-Höhe

Derzeit habe ich ein Projekt erstellt, die Schnitt...

MySQL-Löschfunktion für Mehrfachtabellenverbindungen

Löschen einer einzelnen Tabelle: LÖSCHEN AUS Tabe...

So verwenden Sie „Explain“, um den SQL-Ausführungsplan in MySql abzufragen

Der Befehl „Explain“ ist die primäre Möglichkeit,...