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 sich darauf beziehen diese previous 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, möchte ich das p vorstellenrevaktuelle und aktuelle Virtualisierungssysteme.
Traditionelle vs. Virtualisierung der neuen Generation
Früher haben wir Cre gemachtate virtuelle Maschinen, und jede VM hatte ein Betriebssystem, das viel Platz beanspruchte und schwer war.
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.

Docker-Architektur
Unten sehen Sie das einfache Diagramm einer 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 passierenate und Docker-Images 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 Docker-Daemon, der sie ausführt. Die Docker-API wird von Docker-Befehlen verwendet. Der Docker-Client kann kommunizierenate mit mehr als einem Daemon.
Docker-Register
Dies ist der Ort, an dem die Docker-Images gespeichert werden. Es kann sich um eine öffentliche Docker-Registrierung oder eine private handelnate Docker-Registrierung. Docker Hub ist der Standardspeicherort für Docker-Images, die öffentliche Registrierung seiner Stores. Sie können auch erstellenate und betreibe dein eigenes private Registratur.
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 Vorlagenplates with instructions to create ein Docker-Container. Das Docker-Image kann von einem Docker-Hub abgerufen und so verwendet werden, wie es ist, oder Sie können dem Basis-Image und der Erstellung zusätzliche Anweisungen hinzufügenate ein neues und modifiziertes Docker-Image. Sie können erstellenate Ihre eigenen Docker-Bilder auch mit a Docker-Datei. Create eine Docker-Datei mit allen Anweisungen zum Erstellenate einen Container und führen Sie ihn aus; es wird Create Ihr benutzerdefiniertes Docker-Image.
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 es erstelltatesa 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 finden Sie einen Beispielbefehl zum Ausführen eines Ubuntu-Docker-Containers:
docker run -i -t ubuntu /bin/bash
Volumes
Das persistente DatengenerateVon Docker erstellte und von Docker verwendete Container werden in Volumes gespeichert. Sie werden vollständig von Docker über die Docker-CLI oder die Docker-API verwaltet. Volumes funktionieren auf beiden Windows- und Linux-Container. Anstatt Daten in der beschreibbaren Ebene eines Containers beizubehalten, ist es immer eine gute Option, dafür Volumes zu verwenden. Der Inhalt eines Volumes existiert außerhalb des Lebenszyklus eines Containers, sodass die Verwendung eines Volumes die Größe eines Containers nicht erhöht.
You can use -v or –mount flag to start a container with a volume. In this sample command, you are using geekvolume volume with geekflare Container.
docker run -d --name geekflare -v geekvolume:/app nginx:latest
Netzwerke
Docker-Netzwerke sind ein Durchgang, durch den alle isoliert sindated Containerkommunikationate. In Docker gibt es hauptsächlich fünf Netzwerktreiber:
- 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.
- 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.
- Auflage: Dieses Netzwerk ermöglicht die Kommunikation von Schwarmdienstenate miteinander. Es wird verwendet, wenn die Container auf verschiedenen Docker-Hosts laufen oder wenn Schwarmdienste aus mehreren Anwendungen gebildet werden.
- Andere: This driver disables all the networking.
- 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.
Fazit
Ich hoffe, dass Ihnen dies eine Vorstellung von der Docker-Architektur und ihren wesentlichen Komponenten vermittelt. Navigierenate Wenn Sie mehr über Docker erfahren möchten und an einer praktischen Schulung interessiert sind, schauen Sie sich dies an Docker Mastery Kurs.