Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Docker-Architektur und ihre Komponenten für Einsteiger

Docker-Architektur
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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 sich darauf beziehen dieser vorherige Artikel.

Ich glaube, Sie verstehen die Bedeutung von Docker in DevOps. Jetzt muss hinter diesem fantastischen Werkzeug 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.

Traditional vs. New-Generation Virtualization

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

Im Fall eines Docker-Containers haben Sie jetzt ein einziges Betriebssystem, und die Ressourcen werden von den Containern gemeinsam genutzt. Daher ist es leicht und bootet in Sekunden.

Traditionelle vs neue Gen.

Docker Architecture

Unten sehen Sie das einfache Diagramm einer Docker-Architektur.

Docker-Architektur

Lassen Sie mich Ihnen die Komponenten einer Docker-Architektur erklären.

Docker-Engine

Es ist der Kern des gesamten Docker-Systems. Docker Engine ist eine folgende Anwendung Client-Server-Architektur. Es ist auf dem Host-Computer installiert. Die Docker Engine besteht aus drei Komponenten:

  • Server: Es heißt der Docker-Daemon Dockerd. Es kann Docker-Images erstellen und verwalten. Container, Netzwerke usw.
  • Rest API: Es wird verwendet, um den Docker-Daemon anzuweisen, was zu tun ist.
  • Befehlszeilenschnittstelle (CLI): Es ist ein Client, der zur Eingabe verwendet wird Docker-Befehle.

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-Register

Dies ist der Ort, an dem die Docker-Bilder gespeichert werden. Dies kann eine öffentliche Docker-Registrierung oder eine private Docker-Registrierung sein. Docker Hub ist der Standardort für Docker-Images, die öffentliche Registrierung der Stores. Sie können auch eigene erstellen und ausführen private Registrierung.

Wenn Sie Docker Pull- oder Docker Run-Befehle ausführen, wird das erforderliche Docker-Image aus der konfigurierten Registrierung abgerufen. 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 und 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 unverändert verwendet werden, oder Sie können dem Basis-Image zusätzliche Anweisungen hinzufügen und ein neues und geändertes Docker-Image erstellen. Sie können Ihre eigenen Docker-Bilder auch mit a erstellen Docker-Datei. Erstellen Sie eine Docker-Datei mit allen Anweisungen zum Erstellen und Ausführen eines Containers. Es wird Ihr benutzerdefiniertes Docker-Image erstellt.

Das Docker-Image verfügt über eine schreibgeschützte Basisebene, und die oberste Ebene kann geschrieben werden. Wenn Sie eine Docker-Datei 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, wird ein Docker-Container erstellt. 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 finden Sie einen Beispielbefehl zum Ausführen eines Ubuntu-Docker-Containers:

docker run -i -t ubuntu /bin/bash

Volumes

Die vom Docker generierten und von Docker-Containern verwendeten persistenten Daten 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 Ebene eines Containers zu speichern, ist es immer eine gute Option, Volumes dafür zu verwenden. Der Inhalt des Volumes befindet sich außerhalb des Lebenszyklus eines Containers, sodass die Verwendung des 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 Geekflare-Container.

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

Netzwerke

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

  1. Bridge: Dies ist der Standard-Netzwerktreiber für einen Container. Sie verwenden dieses Netzwerk, wenn Ihre Anwendung auf eigenständigen Containern ausgeführt wird, dh auf mehreren Containern, die mit demselben Docker-Host kommunizieren.
  2. Gastgeber: Dieser Treiber entfernt die Netzwerkisolation zwischen Docker-Containern und Docker-Host. Es wird verwendet, wenn Sie keine Netzwerkisolation zwischen Host und Container benötigen.
  3. Auflage: Dieses Netzwerk ermöglicht es Schwarmdiensten, miteinander zu kommunizieren. Es wird verwendet, wenn die Container auf verschiedenen Docker-Hosts ausgeführt werden oder wenn Schwarmdienste von mehreren Anwendungen gebildet werden.
  4. Andere: Dieser Treiber deaktiviert das gesamte Netzwerk.
  5. Macvlan: Dieser Treiber weist Containern eine Mac-Adresse 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 während der Migration eines VM-Setups wie ein physisches Gerät aussehen sollen.

Conclusion

Ich hoffe, dies gibt Ihnen eine Vorstellung von der Docker-Architektur und ihren wesentlichen Komponenten. Navigieren Sie in Docker, um mehr zu erfahren. Wenn Sie an praktischen Schulungen interessiert sind, lesen Sie diese Informationen Docker Mastery Kurs.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder