Grundlagen des Docker Engine
Was ist Docker Engine?
Docker Engine ist ein Kernkomponente der Containerisierungstechnologie, die Entwicklern ermöglicht, Container effizient zu erstellen, auszuführen und zu verwalten. Als Laufzeitumgebung bietet es eine leichte und portierbare Lösung für die Softwarebereitstellung auf verschiedenen Computing-Plattformen.
Hauptkomponenten von Docker Engine
graph TD
A[Docker Client] --> B[Docker Daemon]
B --> C[Container Runtime]
B --> D[Image Management]
B --> E[Netzwerk-Konfiguration]
Komponente |
Beschreibung |
Funktion |
Docker Client |
Benutzeroberfläche |
Sendet Befehle an den Docker Daemon |
Docker Daemon |
Hintergrunddienst |
Verwaltet Container, Images und Ressourcen |
Container Runtime |
Ausführungsumgebung |
Führt und verwaltet den Container-Lebenszyklus |
Installation unter Ubuntu 22.04
## Paketindex aktualisieren
sudo apt-get update
## Abhängigkeiten installieren
sudo apt-get install ca-certificates curl gnupg
## Offiziellen GPG-Schlüssel von Docker hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
## Repository einrichten
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Docker Engine installieren
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Architektur des Docker Engine
Docker Engine arbeitet nach einem Client-Server-Architektur. Der Docker Client kommuniziert mit dem Docker Daemon, der den Container-Lebenszyklus, die Image-Speicherung und die Systemressourcen verwaltet. Diese Architektur ermöglicht eine effiziente Containerisierung und Ressourcenverwaltung.
Ausführung der Container-Runtime
## Einen einfachen Container ausführen
## Liste der laufenden Container anzeigen
## Containerdetails anzeigen
Docker Engine bietet eine robuste Laufzeitumgebung, die die Komplexität des Systems abstrahiert und eine nahtlose Containerbereitstellung und -verwaltung über verschiedene Infrastrukturplattformen hinweg ermöglicht.