Docker-Grundlagen verstehen
Was ist Docker?
Docker ist eine Open-Source-Plattform, die Entwicklern ermöglicht, Anwendungen in einer containerisierten Umgebung zu erstellen, bereitzustellen und auszuführen. Container sind leichte, eigenständige und ausführbare Softwarepakete, die alles enthalten, was zum Ausführen einer Anwendung benötigt wird, einschließlich Code, Laufzeitumgebung, Systemtools und Bibliotheken.
Docker-Architektur
Docker folgt einer Client-Server-Architektur, bei der der Docker-Client mit dem Docker-Daemon kommuniziert, der für die Erstellung, Ausführung und Verteilung von Docker-Containern zuständig ist. Der Docker-Client kann auf demselben Host wie der Docker-Daemon oder auf einem Remote-Computer ausgeführt werden.
graph LR
subgraph Docker-Architektur
client[Docker Client]
daemon[Docker Daemon]
registry[Docker Registry]
client -- API --> daemon
daemon -- pull/push --> registry
end
Docker-Images und -Container
Docker-Images sind die Grundlage für Container. Ein Image ist ein leichtgewichtiges, eigenständiges, ausführbares Paket, das alles enthält, was zum Ausführen einer Anwendung benötigt wird, einschließlich Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen. Container sind Laufzeitinstanzen von Docker-Images.
Docker-Networking
Docker bietet integrierte Netzwerkfunktionen, die es Containern ermöglichen, miteinander und mit der Außenwelt zu kommunizieren. Docker unterstützt verschiedene Netzwerk-Driver, darunter Bridge-, Host- und Overlay-Netzwerke, die verwendet werden können, um komplexe Netzwerktopologien zu erstellen.
Docker-Volumes
Docker-Volumes werden verwendet, um von einem Container generierte Daten zu persistenten zu speichern. Volumes sind unabhängig vom Lebenszyklus des Containers und können zwischen Containern oder mit dem Hostsystem geteilt werden.
Docker Compose
Docker Compose ist ein Werkzeug zum Definieren und Ausführen von Multi-Container-Docker-Anwendungen. Es ermöglicht Ihnen, die Services, Netzwerke und Volumes, die Ihre Anwendung ausmachen, in einer einzigen YAML-Datei zu definieren und dann die gesamte Anwendung mit einem einzigen Befehl zu starten, zu stoppen und zu verwalten.