Docker-Architektur und ihre Komponenten für Einsteiger

Machen wir uns mit der Docker-Architektur und ihren wesentlichen Komponenten vertraut.

Ich gehe davon aus, dass Sie ein grundlegendes Verständnis von Docker haben. Wenn nicht, können Sie auf diesen vorherigen Artikel verweisen.

Ich glaube, Sie verstehen die Bedeutung von Docker in DevOps. Hinter diesem fantastischen Tool muss nun eine erstaunliche, gut durchdachte Architektur stehen. Ist es nicht?

Aber bevor ich darüber spreche, lassen Sie mich die früheren und aktuellen Virtualisierungssysteme vorstellen.

Herkömmliche vs. Virtualisierung der neuen Generation

Früher haben wir virtuelle Maschinen erstellt, und jede VM hatte ein Betriebssystem, das viel Platz beanspruchte und es schwer machte.

Im Fall des Docker-Containers haben Sie jetzt ein einziges Betriebssystem, und die Ressourcen werden zwischen den Containern geteilt. Daher ist es leicht und bootet in Sekunden.

Docker-Architektur

Unten sehen Sie das einfache Diagramm einer Docker-Architektur.

Lassen Sie mich Ihnen die Komponenten einer Docker-Architektur erläutern.

Docker-Engine

Es ist das Herzstück des gesamten Docker-Systems. Docker Engine ist eine Anwendung, die einer Client-Server-Architektur folgt. Es wird auf dem Host-Rechner installiert. Die Docker Engine besteht aus drei Komponenten:

  • Server: Es ist der Docker-Daemon namens dockerd. Es kann Docker-Images erstellen und verwalten. Container, Netzwerke usw.
  • Rest-API: Wird verwendet, um den Docker-Daemon anzuweisen, was zu tun ist.
  • Command Line Interface (CLI): Es ist ein Client, der zur Eingabe von Docker-Befehlen verwendet wird.
  So fügen Sie jedem Fenster Transparenz hinzu und heften es oben an

Docker-Client

Docker-Benutzer können über einen Client mit Docker interagieren. Wenn Docker-Befehle ausgeführt werden, sendet der Client sie an den dockerd-Daemon, der sie ausführt. Die Docker-API wird von Docker-Befehlen verwendet. Der Docker-Client kann mit mehr als einem Daemon kommunizieren.

Docker-Registrierungen

Es ist der Ort, an dem die Docker-Images gespeichert werden. Es kann sich um eine öffentliche Docker-Registrierung oder eine private Docker-Registrierung handeln. Docker Hub ist der Standardort für Docker-Images, die öffentliche Registrierung seiner Stores. Sie können auch Ihre eigene private Registrierung erstellen und ausführen.

Wenn Sie Docker-Pull- oder Docker-Run-Befehle ausführen, wird das erforderliche Docker-Image aus der konfigurierten Registrierung gezogen. Wenn Sie den Docker-Push-Befehl ausführen, wird das Docker-Image in der konfigurierten Registrierung gespeichert.

Docker-Objekte

Wenn Sie mit Docker arbeiten, verwenden Sie Images, Container, Volumes, Netzwerke; all dies sind Docker-Objekte.

Bilder

Docker-Images sind schreibgeschützte Vorlagen mit Anweisungen zum Erstellen eines Docker-Containers. Das Docker-Image kann von einem Docker-Hub abgerufen und so verwendet werden, wie es ist, oder Sie können dem Basis-Image zusätzliche Anweisungen hinzufügen und ein neues und modifiziertes Docker-Image erstellen. Sie können Ihre eigenen Docker-Images auch mit einer Docker-Datei erstellen. Erstellen Sie eine Dockerdatei mit allen Anweisungen zum Erstellen eines Containers und führen Sie ihn aus. Es erstellt Ihr benutzerdefiniertes Docker-Image.

  So ändern Sie Ihren Standort auf einem Samsung Galaxy S8

Das Docker-Image hat eine schreibgeschützte Basisschicht, und die oberste Schicht kann geschrieben werden. Wenn Sie eine Dockerdatei bearbeiten und neu erstellen, wird nur der geänderte Teil in der obersten Ebene neu erstellt.

Behälter

Nachdem Sie ein Docker-Image ausgeführt haben, erstellt es einen Docker-Container. Alle Anwendungen und ihre Umgebung werden in diesem Container ausgeführt. Sie können die Docker-API oder CLI verwenden, um einen Docker-Container zu starten, zu stoppen und zu löschen.

Unten ist ein Beispielbefehl zum Ausführen eines Ubuntu-Docker-Containers:

docker run -i -t ubuntu /bin/bash

Bände

Die persistenten Daten, die von Docker generiert und von Docker-Containern verwendet werden, werden in Volumes gespeichert. Sie werden vollständig von Docker über die Docker-CLI oder die Docker-API verwaltet. Volumes funktionieren sowohl auf Windows- als auch auf Linux-Containern. Anstatt Daten in der beschreibbaren Schicht eines Containers zu speichern, ist es immer eine gute Option, Volumes dafür zu verwenden. Der Inhalt des Volumes existiert außerhalb des Lebenszyklus eines Containers, sodass die Verwendung von Volumes die Größe eines Containers nicht erhöht.

Sie können das Flag -v oder –mount verwenden, um einen Container mit einem Volume zu starten. In diesem Beispielbefehl verwenden Sie das geekvolume-Volume mit dem wdzwdz-Container.

docker run -d --name wdzwdz  -v geekvolume:/app nginx:latest

Netzwerke

Das Docker-Netzwerk ist ein Durchgang, über den alle isolierten Container kommunizieren. Es gibt hauptsächlich fünf Netzwerktreiber in Docker:

  So verwenden Sie die McDonald's-App
  • Bridge: Dies ist der Standardnetzwerktreiber für einen Container. Sie verwenden dieses Netzwerk, wenn Ihre Anwendung auf eigenständigen Containern ausgeführt wird, dh mehrere Container, die mit demselben Docker-Host kommunizieren.
  • Host: Dieser Treiber hebt die Netzwerkisolation zwischen Docker-Containern und Docker-Host auf. Es wird verwendet, wenn Sie keine Netzwerkisolation zwischen Host und Container benötigen.
  • Overlay: Dieses Netzwerk ermöglicht es Schwarmdiensten, miteinander zu kommunizieren. Es kommt zum Einsatz, wenn die Container auf unterschiedlichen Docker-Hosts laufen oder Swarm-Services aus mehreren Anwendungen gebildet werden.
  • Keine: Dieser Treiber deaktiviert alle Netzwerke.
  • macvlan: Dieser Treiber weist Containern Mac-Adressen zu, damit sie wie physische Geräte aussehen. Der Datenverkehr wird zwischen Containern über ihre Mac-Adressen geleitet. Dieses Netzwerk wird verwendet, wenn die Container beispielsweise beim Migrieren eines VM-Setups wie ein physisches Gerät aussehen sollen.
  • Fazit

    Ich hoffe, dies gibt Ihnen eine Vorstellung von der Docker-Architektur und ihren wesentlichen Komponenten. Navigieren Sie durch Docker, um mehr zu erfahren, und wenn Sie an praktischen Schulungen interessiert sind, dann sehen Sie sich dies an Docker Mastery-Kurs.

    Haben Sie den Artikel gerne gelesen? Wie wäre es mit der Welt zu teilen?