GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Docker-Image vs. Container:Die Hauptunterschiede

Einführung

Docker ist eine Open-Source-Software, die entwickelt wurde, um die Anwendungsentwicklung zu erleichtern und zu vereinfachen. Es handelt sich um eine Reihe von Platform-as-a-Service-Produkten, die isolierte virtualisierte Umgebungen zum Erstellen, Bereitstellen und Testen von Anwendungen erstellen.

Obwohl die Software relativ einfach zu beherrschen ist, gibt es einige Docker-spezifische Begriffe, die neue Benutzer möglicherweise verwirren. Dockerfiles, Images, Container, Volumes und andere Terminologie müssen gemeistert werden und sollten mit der Zeit zur zweiten Natur werden.

Es ist eine gute Idee zu versuchen, die grundlegende Rolle dieser Elemente zu verstehen. Es wird das Erlernen der Arbeit mit ihnen beschleunigen. Eine der Fragen, die viele Benutzer stellen, lautet:

W Was ist der Unterschied zwischen einem Docker-Image und einem Container?

Dieser Artikel erklärt, wie sich die beiden unterscheiden und wie sie zusammenhängen. Lesen Sie mehr, um es herauszufinden.

Was ist ein Docker-Image?

Ein Docker-Image ist eine unveränderliche (unveränderliche) Datei, die den Quellcode, Bibliotheken, Abhängigkeiten, Tools und andere Dateien enthält, die für die Ausführung einer Anwendung erforderlich sind.

Aufgrund ihrer Nur-Lese- Qualität werden diese Bilder manchmal als Schnappschüsse bezeichnet. Sie repräsentieren eine Anwendung und ihre virtuelle Umgebung zu einem bestimmten Zeitpunkt. Diese Konsistenz ist eine der großartigen Eigenschaften von Docker. Es ermöglicht Entwicklern, Software unter stabilen, einheitlichen Bedingungen zu testen und zu experimentieren.

Denn Bilder sind in gewisser Weise nur Vorlagen , können Sie sie nicht starten oder ausführen. Was Sie tun können, ist, diese Vorlage als Basis zum Erstellen eines Containers zu verwenden. Ein Container ist letztendlich nur ein laufendes Image. Sobald Sie einen Container erstellt haben, fügt er eine beschreibbare Ebene über dem unveränderlichen Bild hinzu, was bedeutet, dass Sie es jetzt ändern können.

Die Image-Basis, auf der Sie einen Container erstellen, existiert separat und kann nicht geändert werden. Wenn Sie eine containerisierte Umgebung ausführen, erstellen Sie im Wesentlichen eine Lese-Schreib-Kopie dieses Dateisystems (Docker-Image) im Container. Dadurch wird eine Containerebene hinzugefügt was Änderungen der gesamten Kopie des Bildes erlaubt.

Sie können eine unbegrenzte Anzahl von Docker-Images aus einer Image-Basis erstellen . Jedes Mal, wenn Sie den Anfangszustand eines Bildes ändern und den vorhandenen Zustand speichern, erstellen Sie eine neue Vorlage mit einer zusätzlichen Ebene darüber.

Docker-Images können daher aus einer Reihe von Ebenen bestehen , die sich jeweils unterscheiden, aber auch aus dem vorherigen stammen. Bildebenen stellen schreibgeschützte Dateien dar, denen eine Containerebene hinzugefügt wird, sobald Sie sie zum Starten einer virtuellen Umgebung verwenden.

Was ist ein Docker-Container?

Ein Docker-Container ist eine virtualisierte Laufzeitumgebung, in der Benutzer Anwendungen vom zugrunde liegenden System isolieren können. Diese Container sind kompakte, tragbare Einheiten, in denen Sie schnell und einfach eine Anwendung starten können.

Ein wertvolles Feature ist die Standardisierung der im Container ausgeführten Computerumgebung. Es stellt nicht nur sicher, dass Ihre Anwendung unter identischen Umständen funktioniert, sondern vereinfacht auch die gemeinsame Nutzung mit anderen Teamkollegen.

Da Container autonom sind, bieten sie eine starke Isolation und stellen sicher, dass sie andere laufende Container sowie den Server, der sie unterstützt, nicht unterbrechen. Docker behauptet, dass diese Einheiten „die stärksten Isolationsfähigkeiten der Branche bieten“. Daher müssen Sie sich keine Sorgen um die Sicherheit Ihres Computers machen beim Entwickeln einer Anwendung.

Im Gegensatz zu virtuellen Maschinen (VMs), bei denen die Virtualisierung auf Hardwareebene erfolgt, werden Container auf der Anwendungsebene virtualisiert. Sie können eine Maschine nutzen, ihren Kernel gemeinsam nutzen und das Betriebssystem virtualisieren, um isolierte Prozesse auszuführen. Dadurch werden Container extrem leicht , wodurch Sie wertvolle Ressourcen behalten können.

Docker-Images vs. Container

Bei der Diskussion des Unterschieds zwischen Bildern und Containern ist es nicht fair, sie als gegensätzliche Einheiten gegenüberzustellen. Beide Elemente sind eng zusammen und Teil eines Systems von der Docker-Plattform definiert.

Wenn Sie die beiden vorherigen Abschnitte gelesen haben, in denen Docker-Images und Docker-Container definiert sind, haben Sie möglicherweise bereits ein gewisses Verständnis dafür, wie die beiden eine Beziehung herstellen.

Images können ohne Container existieren, während ein Container ein Image ausführen muss, um zu existieren. Daher sind Container von Bildern abhängig und verwenden sie, um eine Laufzeitumgebung zu erstellen und eine Anwendung auszuführen.

Die beiden Konzepte existieren als wesentliche Komponenten (oder vielmehr Phasen) im Prozess der Ausführung eines Docker-Containers. Ein laufender Container ist die letzte „Phase“ dieses Prozesses, was darauf hinweist, dass er von vorherigen Schritten und Komponenten abhängt. Aus diesem Grund steuern und formen Docker-Bilder im Wesentlichen Container.

Vom Dockerfile zum Image zum Container

Alles beginnt mit einem Skript mit Anweisungen, die definieren, wie ein bestimmtes Docker-Image erstellt wird. Dieses Skript wird als Dockerfile bezeichnet. Die Datei führt automatisch die skizzierten Befehle aus und erstellt ein Docker-Image .

Der Befehl zum Erstellen eines Images aus einer Docker-Datei lautet docker build .

Das Bild wird dann als Vorlage (oder Basis) verwendet, die ein Entwickler kopieren und zum Ausführen einer Anwendung verwenden kann. Die Anwendung benötigt eine isolierte Umgebung, in der sie ausgeführt werden kann – einen Container .

Diese Umgebung ist nicht nur ein virtueller „Raum“. Es stützt sich vollständig auf das Bild, das es erstellt hat. Der Quellcode, die Dateien, Abhängigkeiten und Binärbibliotheken, die sich alle im Docker-Image befinden, bilden einen Container.

Um eine Containerebene aus einem Image zu erstellen, verwenden Sie den Befehl docker create .

Nachdem Sie schließlich einen Container aus einem vorhandenen Image gestartet haben, starten Sie seinen Dienst und führen die Anwendung aus.


Cent OS
  1. 7 unterhaltsame Funktionen für Linux-Container/Image-Transporte

  2. Datei aus Docker-Image extrahieren?

  3. So erstellen Sie ein Docker-Image aus einem Container und einer Docker-Datei

  4. So aktualisieren/fügen Sie eine Datei im Docker-Image hinzu

  5. Welches Betriebssystem läuft in meinem Docker-Container?

So installieren Sie das AlmaLinux 8-Image im Docker-Container

So überprüfen Sie, ob der Docker-Daemon oder ein Container ausgeführt wird

So prüfen Sie den Inhalt eines Docker-Images, ohne einen Container zu starten

So erstellen Sie ein Docker-Image aus einem laufenden Container

So aktualisieren Sie Docker-Images auf die neueste Version

So verwenden Sie Docker Commit zum Ändern von Container-Images