====== Docker Desktop – Container-Virtualisierung ====== ===== Grundinformationen ===== * **Name des Systems:** Docker Desktop * **Hersteller / Entwickler:** Docker Inc. * **Art der Virtualisierung:** Container-Virtualisierung (Betriebssystem-Level-Virtualisierung) * **Typ des Hypervisors:** Kein klassischer Hypervisor (unter Windows/macOS Nutzung einer leichten VM im Hintergrund, z. B. Hyper-V oder WSL2 → Typ-2) * **Downloadlink:** https://www.docker.com/products/docker-desktop/ ===== Systemfunktionen & Besonderheiten ===== ==== Welche Betriebssysteme laufen darauf? ==== Docker selbst virtualisiert kein komplettes Betriebssystem, sondern isolierte Container. Container teilen sich den Kernel des Host-Systems. * Linux-Container (Standard) * Windows-Container (nur unter Windows) * Beliebige Linux-Distributionen innerhalb eines Containers (z. B. Ubuntu, Alpine, Debian) Host-Systeme für Docker Desktop: * Windows * macOS * Linux ---- ==== Verwaltung von Containern ==== Container werden verwaltet über: * **CLI (Command Line Interface)** z. B.: docker run ubuntu docker ps docker stop * **GUI (Docker Desktop Oberfläche)** - Übersicht über laufende Container - Images verwalten - Logs anzeigen - Container starten/stoppen ---- ==== Ressourcenverwaltung (CPU, RAM, Speicher) ==== Docker ermöglicht: * Begrenzung von CPU-Kernen * Begrenzung von RAM * Speicherlimits für Container * Volume-Management für persistente Daten Beispiel für RAM-Begrenzung: docker run -m 512m ubuntu ---- ==== Besonderheiten ==== * Sehr schnelle Startzeit (Sekunden) * Geringer Ressourcenverbrauch * Port-Mapping (z. B. Webserver erreichbar machen) * Netzwerkverwaltung zwischen Containern * Docker Images als Vorlage für Container * Docker Hub (Online-Repository für fertige Images) * Snapshot-ähnliche Funktion durch Images * Automatisierung mit Docker Compose ----- ===== Vor- und Nachteile ===== ==== Vorteile ==== * Sehr hohe Performance (nahe an nativer Geschwindigkeit) * Geringer Ressourcenverbrauch * Schnelles Starten und Stoppen von Containern * Plattformunabhängig * Ideal für Entwicklung und Testing * Einfache Verteilung von Anwendungen ---- ==== Nachteile ==== * Kein vollständiges eigenes Betriebssystem pro Container * Linux-Kernel erforderlich (Windows/macOS benötigen VM im Hintergrund) * Sicherheitsrisiko bei falscher Konfiguration * Weniger Isolation als klassische Vollvirtualisierung ---- ==== Performance ==== * Sehr effizient, da kein kompletter Gastkernel gestartet wird * Container teilen sich den Kernel des Host-Systems * Deutlich schneller als klassische VMs ---- ==== Benutzerfreundlichkeit ==== * Einfache Installation * GUI vorhanden * Starke CLI-Unterstützung * Große Community und viele Anleitungen ---- ==== Sicherheit ==== * Prozess-Isolation * Namespace- und Cgroup-Technologie * Zugriffsbeschränkung möglich * Sicherheit hängt stark von Konfiguration und Images ab ---- ==== Typische Einsatzgebiete ==== * Softwareentwicklung * Testumgebungen * Microservices-Architektur * Continuous Integration / Continuous Deployment (CI/CD) * Cloud-Umgebungen * Webserver und Datenbanken ----- ===== Installation von Docker und Live-Demonstration ===== * [[:inf:Virtualisierung:Docker:Installation]] ===== Zusammenfassung ===== Docker Desktop ist eine moderne Container-Virtualisierungslösung. Im Gegensatz zur klassischen Vollvirtualisierung werden keine vollständigen Betriebssysteme virtualisiert, sondern isolierte Container, die sich den Kernel des Host-Systems teilen. Dadurch ist Docker besonders schnell, ressourcenschonend und ideal für Entwicklungs- und Testumgebungen.