← Zurück zur Bibliothek
Infrastructure Anbieter: Docker Inc.

Docker

Docker ist die Industrie-Standardplattform zum Entwickeln, Versenden und Ausführen von Anwendungen in Containern. 2013 eingeführt, revolutionierte Docker die Software-Bereitstellung durch Verpackung von Anwendungen und ihren Abhängigkeiten in leichtgewichtige, portable Container, die konsistent über jede Umgebung hinweg laufen—vom Entwickler-Laptop bis zur Produktions-Cloud-Infrastruktur. Docker-Container bieten Isolation, Reproduzierbarkeit und Effizienz und sind essentiell für modernes DevOps, Microservices-Architekturen und KI/ML-Workflows.

Docker
docker containerisierung devops container deployment infrastruktur

Was ist Docker?

Docker ist eine Containerisierungsplattform, die es Entwicklern ermöglicht, Anwendungen mit allen ihren Abhängigkeiten—Code, Runtime, Systemtools, Bibliotheken—in standardisierte Einheiten namens Container zu verpacken. Im Gegensatz zu virtuellen Maschinen, die ganze Betriebssysteme virtualisieren, teilen Docker-Container den Host-OS-Kernel, während sie isolierte Benutzerbereiche beibehalten. Dies macht Container leichtgewichtig (Megabytes vs. Gigabytes), schnell startend (Sekunden vs. Minuten) und effizient in der Ressourcennutzung. Ein Docker-Container läuft identisch, ob auf einem MacBook des Entwicklers, einem Linux-Server oder in einer Cloud-Umgebung wie AWS oder Azure.

Docker besteht aus mehreren Schlüsselkomponenten: Docker Engine (die Runtime, die Container baut und ausführt), Docker Hub (eine Registry zum Teilen von Container-Images), Dockerfile (ein Skript, das definiert, wie ein Container-Image gebaut wird) und Docker Compose (ein Tool zum Definieren von Multi-Container-Anwendungen). Die Plattform ist grundlegend für moderne Softwareentwicklung geworden, mit über 20 Millionen Entwicklern und 13 Millionen Container-Images auf Docker Hub. Für KI- und ML-Anwendungen bietet Docker reproduzierbare Umgebungen für Modelltraining, vereinfacht die Bereitstellung von Inferenz-Services und ermöglicht konsistentes Experimentieren über Teams hinweg.

Hauptmerkmale und Komponenten

Kern-Docker-Features

  • Containerisierung - Apps mit Abhängigkeiten in isolierten Containern verpacken
  • Image-basierte Bereitstellung - Einmal bauen, überall aus Container-Images ausführen
  • Dockerfile - Deklarative Skripte für reproduzierbare Container-Builds
  • Layer-Caching - Effiziente Builds durch Wiederverwendung unveränderter Layer
  • Docker Compose - Multi-Container-Orchestrierung mit YAML-Konfiguration
  • Volume-Mounting - Persistente Datenspeicherung und Datei-Sharing mit Containern
  • Netzwerk-Isolation - Virtuelle Netzwerke für Container-Kommunikation
  • Ressourcen-Limits - CPU-, Speicher- und I/O-Beschränkungen pro Container

Docker für KI/ML-Workflows

  • GPU-Passthrough mit NVIDIA Container Toolkit
  • Reproduzierbare Trainingsumgebungen mit fixierten Abhängigkeiten
  • Modell-Serving-Container für Inferenz-Bereitstellung
  • Jupyter-Notebook-Container für Forschung und Entwicklung
  • Multi-Stage-Builds zur Trennung von Training- und Inferenz-Images
  • Registry-Verwaltung für versionierte Modell-Images
  • Integration mit Kubernetes für Produktions-ML-Pipelines
  • Unterstützung für Frameworks (PyTorch, TensorFlow, JAX) in vorgefertigten Images

Anwendungsfälle

Docker ist allgegenwärtig in moderner Softwareentwicklung und -betrieb:

  • Microservices-Architekturen - Services in isolierten Containern bereitstellen
  • CI/CD-Pipelines - Konsistente Build- und Test-Umgebungen
  • ML-Modelltraining - Reproduzierbare Experimentumgebungen
  • Inferenz-Serving - Modelle in leichtgewichtigen Containern bereitstellen
  • Entwicklungsumgebungen - Produktion exakt auf lokalen Maschinen nachbilden
  • Multi-Tenant-Anwendungen - Kunden-Workloads isolieren
  • Legacy-Anwendungsmodernisierung - Monolithen inkrementell containerisieren
  • Cross-Platform-Bereitstellung - Gleicher Container läuft auf Windows, Linux, macOS
  • Batch-Processing - Worker dynamisch für parallele Aufgaben hochfahren
  • Testing und QA - Isolierte Testumgebungen für Integrationstests

Docker vs. Virtuelle Maschinen und Kubernetes

Im Vergleich zu virtuellen Maschinen (VMs) sind Docker-Container dramatisch leichtgewichtiger und effizienter. VMs virtualisieren ganze Betriebssysteme (Gigabytes, Minuten zum Booten), während Container den Host-OS-Kernel teilen (Megabytes, Sekunden zum Starten). Ein einzelner Server kann Hunderte von Containern ausführen, aber nur eine Handvoll VMs. VMs bieten jedoch stärkere Isolation und unterstützen das Ausführen unterschiedlicher OS-Kernel, was sie zu komplementären Technologien macht, anstatt direkte Ersetzungen zu sein.

Docker und Kubernetes werden oft zusammen verwendet, dienen aber unterschiedlichen Zwecken. Docker ist eine Containerisierungsplattform zum Bauen und Ausführen einzelner Container. Kubernetes ist ein Orchestrierungssystem zur Verwaltung von Containern im großen Maßstab über Cluster hinweg. Viele Produktionsbereitstellungen verwenden Docker zum Bauen von Container-Images und stellen sie dann über Kubernetes mit automatischer Skalierung, Self-Healing und Load Balancing bereit. Für kleinere Bereitstellungen oder Entwicklung bietet Docker Compose einfache Multi-Container-Orchestrierung ohne Kubernetes-Komplexität.

Erste Schritte mit Docker

Der Einstieg in Docker ist unkompliziert. Installieren Sie Docker Desktop (für Mac/Windows) oder Docker Engine (für Linux) von docker.com. Überprüfen Sie die Installation mit `docker --version`. Beginnen Sie mit vorgefertigten Images von Docker Hub—führen Sie `docker run hello-world` aus, um Ihr Setup zu testen, oder `docker run -it python:3.11` für eine interaktive Python-Umgebung. Erstellen Sie Ihr erstes Dockerfile zum Containerisieren einer Anwendung, bauen Sie dann mit `docker build -t myapp .` und führen Sie mit `docker run myapp` aus.

Für KI/ML-Anwendungen bietet NVIDIA CUDA-fähige Base-Images (nvidia/cuda) und Framework-Images (nvcr.io/nvidia/pytorch). Diese enthalten vorkonfigurierte GPU-Treiber und Bibliotheken. Installieren Sie NVIDIA Container Toolkit, um GPU-Zugriff in Containern zu ermöglichen. Verwenden Sie Docker Compose zum Definieren von Multi-Container-KI-Pipelines (Training + Inferenz + Datenbank). Dockers offizielle Dokumentation bietet umfassende Tutorials, Best Practices und Referenzleitfäden zum Containerisieren jeder Anwendungs-Stack.

Integration mit 21medien-Services

21medien verwendet Docker als Grundlage unserer KI-Bereitstellungsinfrastruktur. Wir containerisieren alle ML-Modelle für konsistente Bereitstellung über Kundenumgebungen hinweg—von On-Premises-Servern bis zu Cloud-Plattformen. Unser Team bietet Docker-Beratungs- und Implementierungsdienste an und hilft Kunden, Legacy-Anwendungen zu containerisieren, Dockerfiles für Build-Geschwindigkeit und Image-Größe zu optimieren und Docker-basierte CI/CD-Pipelines zu entwerfen. Wir spezialisieren uns auf GPU-beschleunigte Container für KI-Workloads, Multi-Stage-Builds für effizientes Modell-Serving und Docker Compose-Stacks für vollständige KI-Anwendungsbereitstellungen.

Preise und Zugang

Docker Engine (die Kern-Runtime) ist kostenlos und Open-Source unter Apache 2.0-Lizenz. Docker Desktop für persönliche Nutzung ist kostenlos, aber kommerzielle Nutzung erfordert ein Docker Business-Abonnement (7 $/Nutzer/Monat, jährliche Abrechnung). Docker Business umfasst Docker Desktop, erweitertes Image-Management, Single Sign-On und Priority-Support. Docker Hub bietet kostenloses öffentliches Image-Hosting (unbegrenzte öffentliche Repos) und kostenlose private Repos für Einzelpersonen. Docker Hub Pro (5 $/Monat) fügt unbegrenzte private Repositories und parallele Builds hinzu. Docker Hub Team (7 $/Nutzer/Monat) fügt Team-Collaboration-Features hinzu. Enterprise-Kunden können Docker Enterprise mit erweiterten Sicherheits-, Compliance-Features und dediziertem Support nutzen (Preise über Vertrieb). Die meisten Organisationen verwenden kostenloses Docker Engine auf Linux-Servern plus Docker Hub für Image-Registry-Bedürfnisse.

Offizielle Ressourcen

https://www.docker.com