Docker
Entdecke, wie Docker reproduzierbare AI-Bereitstellungen ermöglicht. Lerne, Ultralytics YOLO26-Modelle in Containern zu verpacken und nahtlos von der Cloud bis zu Edge-Geräten zu skalieren.
Docker ist eine Open-Source-Plattform, mit der Entwickler die Bereitstellung, Skalierung und Verwaltung von Anwendungen mithilfe der Containerisierung automatisieren können. Im Kontext von künstlicher Intelligenz und maschinellem Lernen fungiert Docker als standardisierte Softwareeinheit, die Code und alle seine Abhängigkeiten – etwa Bibliotheken, Systemwerkzeuge und Einstellungen – bündelt, sodass die Anwendung schnell und zuverlässig von einer Computerumgebung in eine andere ausgeführt werden kann. Dadurch entfällt das häufige Problem „Auf meinem Computer funktioniert es“, und es wird sichergestellt, dass sich ein auf dem Laptop eines Forschers trainiertes neuronales Netzwerk bei der Bereitstellung auf einem großen Cloud-Server oder einem Edge-Gerät exakt gleich verhält.
Warum Docker für KI und maschinelles Lernen wichtig ist#
Moderne Prozesse für den Betrieb maschineller Lernsysteme (MLOps) sind stark auf Reproduzierbarkeit und Portabilität angewiesen. Ein KI-Projekt umfasst häufig einen komplexen Software-Stack, darunter bestimmte Versionen von Python, CUDA-Treiber für die GPU-Beschleunigung sowie Deep-Learning-Frameworks wie PyTorch oder TensorFlow. Die manuelle Verwaltung dieser Komponenten über verschiedene Teams und Infrastrukturen hinweg ist fehleranfällig.
Docker vereinfacht dies durch die Erstellung leichtgewichtiger, eigenständiger Container. Anders als herkömmliche virtuelle Maschinen (VMs), die für jede Instanz ein vollständiges Betriebssystem benötigen, nutzen Container den Betriebssystemkernel des Hostcomputers gemeinsam, laufen jedoch in isolierten Benutzerbereichen. Dadurch benötigen sie deutlich weniger Ressourcen und starten schneller. Das ist entscheidend, wenn die Infrastruktur für das Bereitstellen von Modellen skaliert oder verteilte Trainingsaufträge ausgeführt werden.
Anwendungen in der Praxis#
Docker ist im gesamten KI-Lebenszyklus weit verbreitet – von ersten Experimenten bis zur abschließenden Bereitstellung.
-
Einheitliche Trainingsumgebungen: Ein Data-Science-Team kann Docker-Images verwenden, um eine einheitliche Entwicklungsumgebung gemeinsam zu nutzen. So kann ein Forscher, der an Objekterkennung arbeitet, ein vorgefertigtes Image mit allen erforderlichen Treibern und Bibliotheken abrufen. Dadurch ist sichergestellt, dass die Ergebnisse beim Training eines YOLO26-Modells von den Kollegen reproduziert werden können – unabhängig von den Unterschieden bei der zugrunde liegenden Hardware.
-
Bereitstellung von KI am Edge: Bei der Überwachung intelligenter Städte müssen aktualisierte Modelle an Tausende Edge-Geräte wie Verkehrskameras oder Drohnen verteilt werden. Mit Docker-Containern können Ingenieure eine neue Modellversion bündeln und drahtlos bereitstellen. Da der Container die Laufzeitumgebung für die Inferenz enthält, verläuft die Aktualisierung nahtlos und beeinträchtigt das grundlegende Betriebssystem des Geräts nicht.
Docker im Vergleich zu Kubernetes und virtuellen Maschinen#
Um die spezifische Rolle von Docker zu verstehen, ist es hilfreich, Docker von verwandten Technologien abzugrenzen:
- Docker im Vergleich zu virtuellen Maschinen (VMs): VMs virtualisieren die Hardware. Das bedeutet, dass jede VM ein vollständiges Betriebssystem wie Windows oder Linux auf einem Hypervisor ausführt. Dies beansprucht beträchtliche Mengen an Arbeitsspeicher und CPU. Docker virtualisiert das Betriebssystem, wodurch Container deutlich kleiner und schneller als VMs sind.
- Docker im Vergleich zu Kubernetes: Diese Technologien ergänzen sich und stehen nicht miteinander im Wettbewerb. Docker ist das Werkzeug zum Erstellen und Ausführen einzelner Container. Kubernetes ist eine Plattform zur Containerorchestrierung, die Cluster aus Docker-Containern verwaltet und Aufgaben wie automatische Skalierung, Lastverteilung und Selbstheilung in groß angelegten Cloud-Computing-Umgebungen übernimmt.
Beispiel: Inferenz in einem Container ausführen#
Das folgende Beispiel zeigt, wie ein Python-Skript in einem für Computer Vision entwickelten Docker-Container aussehen könnte. Dieses Skript verwendet das Paket ultralytics, um ein Modell zu laden und eine Inferenz durchzuführen. Die Containerumgebung stellt sicher, dass die richtigen Abhängigkeiten wie opencv-python und torch bereits vorhanden sind.
from ultralytics import YOLO
# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")Docker in deinen Arbeitsablauf integrieren#
Für den Einstieg in die Containerisierung definieren Entwickler typischerweise eine Dockerfile. Dabei handelt es sich um ein Textdokument mit allen Befehlen zum Zusammenstellen eines Images. Nach dem Erstellen können diese Images in Registries wie Docker Hub oder dem NVIDIA NGC Catalog gespeichert werden, der für GPUs optimierte Container anbietet.
Wenn du den Trainings- und Bereitstellungsprozess vereinfachen möchtest, ohne Dockerfiles manuell zu verwalten, bietet die Ultralytics Platform integrierte Werkzeuge, die die Komplexität von Cloud-Umgebungen bewältigen. Dadurch kannst du dich auf die Verbesserung der Modellgenauigkeit konzentrieren, statt die Infrastruktur zu konfigurieren. Außerdem kannst du unseren Docker-Schnellstartleitfaden lesen, um zu erfahren, wie du Ultralytics-Modelle sofort in Containern ausführst.






