3.1 Docker Engine
Docker Engine ist der "Motor" von Docker, also die Hauptsoftware, die die Arbeit von Containern ermöglicht. Dieser Motor stellt eine Plattform für die Entwicklung, Bereitstellung und Ausführung von Anwendungen in isolierten Containern bereit. Docker Engine enthält mehrere Schlüsselkomponenten, die die volle Funktionalität von Docker gewährleisten.
Docker Engine besteht aus drei Hauptteilen:
- Docker Daemon: ein serverseitiger Prozess. Er führt die Hauptoperationen mit Containern aus.
- Docker API: eine Schnittstelle, die die Interaktion mit Docker Daemon über Programmanfragen ermöglicht.
- Docker CLI: Kommandozeile — ein Interface für die Arbeit mit Docker.
Die Rolle von Docker Engine:
Docker Engine verwaltet den Lebenszyklus der Container, von ihrer Erstellung und ihrem Start bis hin zu ihrer Löschung. Es stellt die Isolation der Container sicher, was ermöglicht, mehrere Container auf einem Host ohne Konflikte auszuführen. Docker Engine macht es möglich, komplexe Anwendungen und Microservices in Containern auszuführen, was deren Entwicklung, Testing und Implementierung erleichtert
.
Die Evolution von Docker Engine
Seit seiner Einführung hat Docker Engine viele Versionen und Verbesserungen durchlaufen. Jedes Update brachte neue Features und Leistungsverbesserungen. Zum Beispiel wurden Container-Orchestrierungsfunktionen wie Docker Swarm hinzugefügt, die es ermöglichen, Container-Cluster zu verwalten und die Bereitstellung von Anwendungen zu automatisieren.
3.2 Docker Daemon
Docker Daemon – das ist der Hauptserverprozess, der alle Docker-Operationen ausführt. Er läuft im Hintergrund und ist für die Verwaltung von Containern, Images, Netzwerken und anderen Docker-Ressourcen verantwortlich.
Funktionen des Docker Daemon:
- Erstellen und Verwalten von Containern: Der Docker Daemon verarbeitet Anfragen zum Erstellen, Starten, Stoppen und Löschen von Containern. Er sorgt für die Isolation der Container und teilt die Ressourcen zwischen ihnen auf.
- Arbeiten mit Images: Der Docker Daemon lädt und speichert Container-Images, die zur Erstellung von Containern verwendet werden. Er verwaltet auch den Image-Cache, um die Nutzung des Speicherplatzes zu optimieren.
- Netzwerkverwaltung: Der Docker Daemon erstellt und verwaltet Docker-Netzwerke, die den Containern erlauben, miteinander und mit externen Systemen zu interagieren. Er unterstützt verschiedene Netzwerk-Driver und Einstellungen, um Flexibilität und Sicherheit zu gewährleisten.
- Speicherverwaltung: Der Docker Daemon verwaltet Volumes und andere Arten von Speichern, die von Containern zur Datenspeicherung genutzt werden. Er sorgt für eine zuverlässige und effiziente Verwaltung der Daten innerhalb von Containern.
Architektur des Docker Daemon
Docker Daemon nutzt eine Client-Server-Architektur. Der Client (CLI oder API) sendet Befehle an den Docker Daemon, der diese verarbeitet und ausführt. Der Daemon läuft unter verschiedenen Betriebssystemen: Linux, MacOS oder Windows.
Rolle in der Sicherheit:
Der Docker Daemon spielt eine Schlüsselrolle bei der Sicherstellung der Sicherheit von Containern. Er verwaltet Zugriffsrechte, Netzwerkeinstellungen und die Isolation der Container, was hilft, potenzielle Bedrohungen und Schwachstellen zu begrenzen. Mithilfe von namespaces (einer Technologie zur Isolation von Prozessen und Ressourcen) und cgroups (ein Mechanismus zur Ressourcenverwaltung) isoliert der Docker Daemon Prozesse und kontrolliert die Ressourcennutzung der Container, um deren sicheren Betrieb zu gewährleisten.
3.3 Docker API
Docker API ist eine Programmierschnittstelle, mit der Entwickler*innen und Systemadministrator*innen Docker über Code steuern können. Es funktioniert nach dem RESTful-Prinzip (Representational State Transfer) – einem Architektur-Stil, bei dem die Interaktion über standardisierte HTTP-Anfragen wie GET, POST und DELETE erfolgt. Das erleichtert die Automatisierung von containerbezogenen Aufgaben und die Integration von Docker in andere Systeme und Tools.
Funktionen von Docker API:
- Container-Verwaltung: Docker API ermöglicht es, Container zu erstellen, zu starten, zu stoppen und zu löschen sowie Informationen über ihren Zustand und ihre Logs abzurufen.
- Arbeiten mit Images: Mit der API kannst du Container-Images herunterladen, erstellen, löschen und verwalten.
- Netzwerkoperationen: Die API unterstützt die Erstellung und Verwaltung von Docker-Netzwerken, einschließlich des Verbindens und Trennens von Containern von Netzwerken.
- Speicherverwaltung: Die API stellt Funktionen zur Verwaltung von Volumes und anderen Speichertypen bereit, die Container zur Datenspeicherung nutzen.
Verwendung von Docker API:
Docker API kann mit verschiedenen Programmiersprachen und Automatisierungstools wie Python, Go, Java und anderen genutzt werden. Damit kannst du Skripte und Anwendungen erstellen, um Entwicklungs-, Test- und Bereitstellungsprozesse von containerisierten Anwendungen zu automatisieren.
Beispiele für die Verwendung von Docker API:
- CI/CD: Automatisierung des Prozesses der kontinuierlichen Integration und Bereitstellung, bei dem jede Codeänderung automatisch einen neuen Container erstellt und testet.
- Monitoring und Logging: Integration mit Monitoring- und Logging-Systemen zur Überwachung des Containerzustands und Analyse ihrer Leistung.
- Orchestrierung: Verwaltung von Container-Clustern mit Docker Swarm oder Kubernetes, wobei Docker API zur Interaktion mit einzelnen Nodes und Containern verwendet wird.
3.4 Docker CLI
Docker CLI (Command Line Interface) — das ist die Kommandozeilen-Schnittstelle, die es den Nutzern ermöglicht, mit Docker Daemon zu interagieren und verschiedene Operationen mit Containern durchzuführen. Docker CLI bietet eine bequeme und intuitive Möglichkeit, Docker über das Terminal zu verwalten.
Hauptbefehle von Docker CLI:
Docker CLI unterstützt eine breite Palette von Befehlen, die es ermöglichen, alle grundlegenden Operationen mit Containern, Images, Netzwerken und Speichern durchzuführen. Einige dieser Befehle umfassen:
- docker run: einen neuen Container aus einem Image starten.
- docker build: ein neues Image aus einem Dockerfile erstellen.
- docker pull: ein Image aus Docker Hub oder einem anderen Registry herunterladen.
- docker push: ein lokales Image in ein Registry hochladen.
- docker ps: die Liste der laufenden Container anzeigen.
- docker stop: einen laufenden Container stoppen.
- docker rm: einen gestoppten Container löschen.
- docker network: die Netzwerke von Docker verwalten.
Besonderheiten von Docker CLI:
- Benutzerfreundlichkeit: Docker CLI wurde so entwickelt, dass es intuitiv und einfach zu bedienen ist. Die Befehle haben eine einfache und logische Struktur, wodurch sie auch für Anfänger leicht zugänglich sind.
- Skripts und Automatisierung: Docker CLI ermöglicht es, Skripts für die Automatisierung von Aufgaben im Zusammenhang mit Containern zu erstellen. Dies erleichtert die Verwaltung großer Container-Cluster und erlaubt die Integration von Docker mit anderen Tools und Systemen.
- Erweiterbarkeit: Docker CLI unterstützt Plugins, die es ermöglichen, die Funktionalität zu erweitern und neue Befehle hinzuzufügen. Dadurch wird Docker CLI flexibel und anpassungsfähig an verschiedene Anforderungen und Nutzungsszenarien.
Interaktion zwischen den Komponenten:
Docker CLI interagiert mit Docker Daemon über die Docker API. Wenn der Nutzer einen Befehl in Docker CLI eingibt, wird dieser zur Verarbeitung an Docker Daemon gesendet, der die entsprechenden Aktionen ausführt und das Ergebnis an CLI zurückgibt. Diese Interaktion bietet eine leistungsstarke und flexible Möglichkeit, Container und Ressourcen von Docker zu verwalten.
Beispiele für die Nutzung von Docker CLI:
- Entwicklung: Entwickler können Docker CLI nutzen, um schnell isolierte Entwicklungs- und Testumgebungen zu erstellen, was einen einfachen Wechsel zwischen verschiedenen Versionen von Bibliotheken und Frameworks ermöglicht.
- Deployment: Administratoren können Docker CLI nutzen, um die Bereitstellung von Anwendungen auf Servern und in Cloud-Umgebungen zu automatisieren, wodurch die Stabilität und Vorhersehbarkeit des Prozesses gewährleistet wird.
- Debugging und Monitoring: Mit Docker CLI kann man leicht auf die Logs von Containern zugreifen, ihren Zustand überprüfen und Anwendungen debuggen.

Docker Engine, Docker Daemon, Docker API und Docker CLI — das sind die Hauptkomponenten, die das Funktionieren und die Verwaltung von Containern im Docker-Ökosystem gewährleisten. Docker Engine ist der Kern des Systems, der Docker Daemon und Docker API umfasst. Docker Daemon führt alle Operationen zur Erstellung und Verwaltung von Containern aus, Docker API bietet eine Programmierschnittstelle für die Interaktion mit Daemon, und Docker CLI bietet eine bequeme Schnittstelle zum Ausführen verschiedener Befehle.
GO TO FULL VERSION