Kubernetes
Eine Open-Source-Plattform zur Automatisierung von Deployment, Skalierung und Verwaltung von Container-Anwendungen – der Standard für Container-Orchestrierung.
Eine Technologie, die Anwendungen mit allen Abhängigkeiten in isolierte, portable Pakete verpackt – damit sie überall gleich laufen.
Docker ist die Technologie, die das “Works on my machine”-Problem gelöst hat. Ein Docker-Container verpackt eine Anwendung zusammen mit allen Abhängigkeiten – Python-Version, Bibliotheken, Konfiguration – in eine portable Einheit. Dieser Container läuft identisch auf jedem System, das Docker unterstützt. Für KI-Projekte ist Docker unverzichtbar: ML-Modelle haben oft sehr spezifische Abhängigkeiten (CUDA-Version, PyTorch-Version), die in Containern zuverlässig reproduziert werden.
Docker verpackt deine Anwendung mit allem, was sie braucht, in einen Container. Dieser Container läuft überall gleich – auf deinem Laptop, im Rechenzentrum oder in der Cloud.
Warum ist das wichtig?
“Works on my machine” ist Geschichte. Mit Docker hat jeder exakt dieselbe Umgebung – gleiche Python-Version, gleiche Bibliotheken, gleiche Konfiguration.
Dockerfile → Image → Container:
Dockerfile (Bauplan) → docker build → Image (Vorlage) → docker run → Container (laufend)
Beispiel Dockerfile für ML:
FROM python:3.11
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "serve.py"]
| Aspekt | Container | VM |
|---|---|---|
| Startzeit | Sekunden | Minuten |
| Größe | MBs | GBs |
| Overhead | Minimal | Hoch |
| Isolation | Prozess-Level | Hardware-Level |
| OS | Teilt Host-Kernel | Eigenes OS |
--gpus all für NVIDIA GPU-ZugriffEin Container ist wie ein Schiffscontainer: Egal was drin ist und wohin er transportiert wird – er passt auf jedes Schiff, jeden LKW und jeden Kran. Die Anwendung läuft überall gleich, unabhängig von der Umgebung.
Verpackt Anwendung + Abhängigkeiten in ein portables, isoliertes Paket
Docker ist die populärste Container-Plattform
Standard für ML-Model-Serving, Microservices und CI/CD-Pipelines
ML-Model-Serving
ML-Modelle mit allen Dependencies in einem Container deployen
Entwicklungsumgebung
'Works on my machine' eliminieren – alle nutzen denselben Container
Microservices
Jeder Service in einem eigenen Container, unabhängig deploybar
CI/CD
Reproduzierbare Build- und Test-Umgebungen
VMs virtualisieren die gesamte Hardware inkl. Betriebssystem (schwer, langsam zu starten). Container teilen sich den Host-Kernel und virtualisieren nur die Anwendungsebene (leicht, startet in Sekunden). Container sind effizienter, VMs bieten stärkere Isolation.
Für Produktion fast immer ja. Docker stellt sicher, dass dein Modell mit exakt den richtigen Python-Versionen, CUDA-Treibern und Bibliotheken läuft. Für lokale Entwicklung ist es optional aber empfehlenswert.
Um ein Docker-Container-Image zu erstellen, benötigen Sie eine Dockerfile, die die Anweisungen zum Erstellen des Images enthält. Mit dem Befehl 'docker build' können Sie dann das Image aus der Dockerfile erstellen und es lokal oder in einem Registry speichern.
Docker-Container sind leichter und schneller als virtuelle Maschinen, da sie den Kernel des Hosts gemeinsam nutzen und keine vollständige Betriebssysteminstanz benötigen. Dies führt zu schnelleren Startzeiten und einem geringeren Ressourcenverbrauch.