Docker-Architektur und -Komponenten
Docker Engine
Die Kernkomponente der Docker-Plattform ist der Docker Engine, der für das Erstellen, Ausführen und Verwalten von Docker-Containern zuständig ist. Der Docker Engine besteht aus folgenden Hauptkomponenten:
- Docker Daemon: Der Hintergrundprozess, der die Docker-Container und -Images verwaltet.
- Docker API: Die API, die es Clients ermöglicht, mit dem Docker Daemon zu interagieren.
- Docker CLI: Die Befehlszeilenschnittstelle, die es Benutzern erlaubt, mit dem Docker Daemon zu interagieren.
Docker Images
Docker-Images sind die Bausteine von Docker-Containern. Sie sind schreibgeschützte Vorlagen, die den Inhalt eines Containers definieren, einschließlich des Betriebssystems, der Software und des Anwendungscodes. Docker-Images können mithilfe einer Dockerfile erstellt werden, einer Textdatei, die die Anweisungen zum Erstellen des Images enthält.
Hier ist ein Beispiel für eine Dockerfile, die einen einfachen Webserver mit dem Nginx-Webserver erstellt:
FROM nginx:latest
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Docker-Container
Docker-Container sind die Laufzeitinstanzen von Docker-Images. Sie sind leichte, portablen und eigenständige Umgebungen, die Anwendungen und Dienste ausführen können. Container sind vom Hostsystem und voneinander isoliert, um sicherzustellen, dass sie in verschiedenen Umgebungen konsistent ausgeführt werden können.
Um einen Container aus einem Docker-Image zu erstellen, können Sie den Befehl docker run
verwenden:
docker run -d -p 80:80 --name my-web-server nginx
Dieser Befehl erstellt einen neuen Container aus dem nginx
-Image, ordnet den Port 80 des Hosts dem Port 80 im Container zu und startet den Container im detachierten Modus.
Docker-Networking
Docker bietet ein integriertes Netzwerkssystem, das es Containern ermöglicht, miteinander und mit dem Hostsystem zu kommunizieren. Docker unterstützt verschiedene Netzwerk-Driver, einschließlich Bridge-, Host- und Overlay-Netzwerke, die verwendet werden können, um benutzerdefinierte Netzwerkkonfigurationen für Ihre Anwendungen zu erstellen.
graph TD
A[Docker Host] --> B[Docker Engine]
B --> C[Container 1]
B --> D[Container 2]
C --> E[Bridge Network]
D --> E
In den nächsten Abschnitten werden wir die Installation und Konfiguration von Docker sowie das Erstellen, Ausführen und Verwalten von Docker-Containern untersuchen.