====== 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.