GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Was ist ein Docker-Container:Eine Einführung für Anfänger

Möchten Sie wissen, was ein Docker-Container ist? In diesem Artikel erfahren Sie in leicht verständlicher Sprache alles, was Sie wissen müssen.

Die Popularität von Docker kommt nicht ohne Grund. Es hat die Herangehensweise von Entwicklern an die Anwendungsentwicklung erheblich verändert.

Es ist zu einem Standard in der IT-Branche für das einfache Packen, Bereitstellen und Ausführen verteilter Anwendungen geworden.

Der Hauptvorteil von Docker besteht darin, dass es Nutzern ermöglicht, eine Anwendung mit all ihren Abhängigkeiten in eine standardisierte Einheit namens Container zu packen.

Da Docker eine Containerisierungsplattform ist, müssen Sie die Geschichte hinter der Containerisierung verstehen.

Die Geschichte vor der Containerisierung

Bevor die Containerisierung ins Spiel kam, bestand die beste Methode zum Isolieren und Organisieren von Anwendungen und ihren Abhängigkeiten darin, jede Anwendung in ihrer virtuellen Maschine zu platzieren.

Auf diesen Maschinen werden mehrere Anwendungen auf derselben physischen Hardware ausgeführt, und dieser Prozess ist nichts anderes als  Virtualisierung .

Die Virtualisierung hatte jedoch einige Nachteile, wie z. B. die sperrige Größe der virtuellen Maschinen. Darüber hinaus führt das Ausführen mehrerer virtueller Maschinen zu einer instabilen Leistung.

Der Startvorgang würde normalerweise lange dauern, und VMs würden Probleme wie Portabilität, Software-Updates oder kontinuierliche Integration und kontinuierliche Bereitstellung nicht lösen.

Diese Nachteile führten zur Entstehung einer neuen Technik namens Containerisierung .

Containerisierung ist eine Art der Virtualisierung, die die Virtualisierung auf die Betriebssystemebene bringt.

Während die Virtualisierung der Hardware Abstraktion verleiht, bringt die Containerisierung die Abstraktion des Betriebssystems.

Container vs. virtuelle Maschinen

Die Begriffe „Container“ und „virtuelle Maschinen“ werden oft synonym verwendet; Dies wird jedoch oft missverstanden.

Beides sind jedoch nur unterschiedliche Methoden zur Bereitstellung der Betriebssystemvirtualisierung.

Virtuelle Maschinen

Virtuelle Maschinen enthalten in der Regel ein ganzes Betriebssystem, Pakete und bei Bedarf einige Anwendungen.

Möglich macht dies ein Hypervisor, der der virtuellen Maschine eine Hardware-Virtualisierung zur Verfügung stellt.

Dadurch kann ein einzelner Server viele eigenständige Betriebssysteme als virtuelle Gäste ausführen. Im Allgemeinen ist eine virtuelle Maschine ein System, das genau wie ein Computer funktioniert.

Container

Container ähneln virtuellen Maschinen, außer dass Container keine ganzen Betriebssysteme sind. Container enthalten im Allgemeinen nur die erforderlichen Betriebssystempakete und Anwendungen.

Sie enthalten normalerweise kein vollständiges Betriebssystem oder keine Hardwarevirtualisierung. diese sind „leicht.“

Ein Container wird im Allgemeinen verwendet, um einen laufenden Prozess innerhalb eines einzelnen Hosts zu isolieren, um sicherzustellen, dass die isolierten Prozesse nicht mit anderen Prozessen innerhalb desselben Systems interagieren können – Container-Sandbox-Prozesse voneinander.

Einfach ausgedrückt, können Sie sich einen Docker-Container als leichtgewichtiges Äquivalent zu einer virtuellen Maschine vorstellen.

Docker ermöglicht das Erstellen und Arbeiten mit Containern so effizient wie möglich.

Gründe für die Verwendung von Docker-Containern

  • Container haben kein Gastbetriebssystem und verwenden das Betriebssystem des Hosts. Daher teilen sie relevante Bibliotheken und Ressourcen nach Bedarf.
  • App-Isolierung:Wenn Sie mehrere Anwendungen auf einem Server ausführen möchten, vermeiden Sie Probleme mit der Abhängigkeitsverwaltung, indem Sie die Komponenten jeder Anwendung in separaten Containern aufbewahren.
  • Verarbeitung und Ausführung von Anwendungen sind sehr schnell, da anwendungsspezifische Binärdateien und Bibliotheken von Containern auf dem Host-Kernel ausgeführt werden.
  • Das Hochfahren eines Containers dauert nur einen Bruchteil einer Sekunde.
  • Container sind leichtgewichtig und schneller als virtuelle Maschinen.

Was ist ein Docker-Container?

Docker ist eine Plattform, die verpackt eine Anwendung und alle ihre Abhängigkeiten in Form von Containern.

Es verwendet Container, um die Erstellung, Bereitstellung und Ausführung von Anwendungen zu vereinfachen. Docker bindet die Anwendung und ihre Abhängigkeiten in einen Container.

Container ermöglichen es einem Entwickler, eine Anwendung mit allen benötigten Teilen, wie z. B. Bibliotheken und anderen Abhängigkeiten, zu packen und alles als ein Paket zu versenden.

Angenommen, Sie müssen eine Anwendung erstellen. Um diese Anwendung der Öffentlichkeit zugänglich zu machen, benötigen Sie einen Ort, an dem sie gehostet werden kann. In der Vergangenheit mussten Sie Ihren Computer selbst bauen.

Dann müssten Sie einen dedizierten Webdienst namens „Server“ einrichten, einen Computer, der speziell für das Hosten von Websites oder Webdiensten bestimmt ist.

Allerdings darf Ihre Anwendung am Anfang nur eine ungefähre Größe von 300 Megabyte haben.

Warum sollten Sie also eine „virtuelle Maschine“ wollen, eine virtualisierte Umgebung, die aus der Virtualisierung resultiert, die eine Größe von 1 GB+ hat, wenn Ihre Anwendung viel kleiner ist?

Das Konzept des „Containers“ kommt ins Spiel, um das zu beheben. Docker macht es auf folgende Weise. Anstatt jedes Betriebssystem pro Anwendung zu hosten, können einige gemeinsame Ressourcen gemeinsam genutzt werden, und es gibt eine sogenannte „Docker-Engine“, die auf einem Betriebssystem sitzt.

Die Einführung von Docker oder Container bedeutet, dass Anwendungen schneller bereitgestellt oder nicht bereitgestellt werden können. Schneller starten und stoppen, schneller zu einem anderen „Bild“ wechseln, vieles schneller verarbeiten und erledigen.

Aber es wäre hilfreich, wenn Sie beim Einstieg die wesentlichen Elemente und Tools rund um das Docker-Ökosystem kennenlernen würden.

Dockerfile

Ein Dockerfile ist eine Reihe präziser Anweisungen, die angeben, wie ein neues Docker-Image erstellt wird – Standardeinstellungen für darauf basierend ausgeführte Container festlegen und einiges mehr.

Es ist ein Textdokument, das alle Befehle enthält, die ein Benutzer auf der Befehlszeile aufrufen kann, um ein Bild zusammenzustellen.

Docker kann also automatisch Images erstellen, indem es die Anweisungen aus einer Docker-Datei liest.

Docker-Image

Docker Image kann mit einer schreibgeschützten Vorlage verglichen werden, die zum Erstellen von Docker-Containern verwendet wird. Mit anderen Worten, ein Image ist eine Blaupause, von der aus eine beliebige Anzahl brandneuer Container gestartet werden kann.

In einem Image werden keine „aktuell ausgeführten Befehle“ gespeichert. Wenn Sie einen Container erstellen, ist das wie das Hochfahren einer Maschine, nachdem sie heruntergefahren wurde.

Docker-Container

Es ist eine laufende Instanz eines Docker-Images, da sie das gesamte Paket enthalten, das zum Ausführen der Anwendung benötigt wird.

Stellen Sie sich vor, Sie möchten einen Befehl isoliert von allem anderen auf dem System ausführen. Es sollte nur auf genau die Ressourcen zugreifen, die ihm erlaubt sind, und weiß nicht, dass sich noch etwas anderes auf der Maschine befindet.

Der Prozess, der in einem Container ausgeführt wird, denkt, dass er der einzige ist, der eine Barebones-Linux-Distribution mit dem im Bild beschriebenen Zeug sieht.

Eine Maschine, auf der der Container ausgeführt wird, sollte sich nicht zu sehr darum kümmern müssen, was sich darin befindet, und der dockerisierten App ist es egal, ob sie sich auf einem Kubernetes-Cluster oder einem einzelnen Server befindet – sie kann trotzdem ausgeführt werden.

Ein Container kann mehrere Prozesse gleichzeitig ausführen. So könnten Sie beispielsweise viele Dienste in einen einzigen Container packen und sie nebeneinander ausführen.

Wenn ein Docker-Container gelöscht wird, wird der Container durch einen Neustart des Images neu gestartet, ohne dass die Änderungen am zuvor ausgeführten Container vorgenommen wurden – diese Änderungen gehen verloren.

Docker-Volume

Bilder ändern sich nicht. Sie können neue erstellen, aber das war es auch schon. Container hingegen hinterlassen standardmäßig nichts. Daher gehen alle an einem Container vorgenommenen Änderungen verloren, sobald er entfernt wird.

Um Daten zu speichern (persistent) und zwischen Containern auszutauschen, entwickelte Docker das Konzept der Volumes . Volumes sind ganz einfach Verzeichnisse (oder Dateien) außerhalb des Standarddateisystems und existieren als Standardverzeichnisse und -dateien im Hostdateisystem.

Mit anderen Worten, Docker-Volumes ermöglichten es uns, Daten zu speichern und zwischen Containern zu teilen.

Fazit

Wir hoffen, dass dieser Artikel Ihnen geholfen hat, die grundlegenden Docker-Grundlagen zu verstehen, was Docker und Docker-Container sind und wie sie die Softwareentwicklung revolutioniert haben.

Mit dem oben genannten Wissen sollten Sie genau wissen, worum es bei Docker im Kern geht.

Weitere Informationen zu Docker finden Sie auf der Website des Projekts oder in der offiziellen Dokumentation.


Docker
  1. So teilen Sie Daten zwischen Docker-Containern

  2. So listen Sie Docker-Container auf

  3. Einführung in die Virtualisierung:Ein umfassender Leitfaden für Anfänger

  4. So sichern und wiederherstellen Sie Docker-Container

  5. So halten Sie Docker-Container an und setzen sie fort

Docker-Befehle zum Verwalten des Containerlebenszyklus (Definitive Guide)

Anfängerleitfaden zur Docker-Neustartrichtlinie

Was tun, wenn ein Docker-Container sofort beendet wird

So benennen oder umbenennen Sie Docker-Container

ctop – Top-ähnliche Schnittstelle zur Überwachung von Docker-Containern

Einsteigerleitfaden für die Docker-Welt