Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Docker

Vereinfachen Sie KI/ML-Workflows mit Docker! Erfahren Sie, wie Sie Modelle bereitstellen, Reproduzierbarkeit sicherstellen und effizient über verschiedene Umgebungen hinweg skalieren.

Docker ist eine Open-Source-Plattform, die die Bereitstellung, Skalierung und Verwaltung von Anwendungen durch Containerisierung. In dem sich schnell entwickelnden Bereich der künstlicher Intelligenz (KI) löst Docker eine kritische Herausforderung, die als "funktioniert auf meinem Rechner"-Problem bekannt ist. Durch das Verpacken eines Machine Learning (ML) -Modell zusammen mit seinem Code, Laufzeit, Systemtools und Bibliotheken in eine standardisierte Einheit, den Container, verpackt, garantiert Docker, dass die Software unabhängig von der Computerumgebung immer auf die gleiche Weise ausgeführt wird. Diese Konsistenz ist entscheidend für moderne MLOps-Pipelines und erleichtert reibungslose Übergänge von der lokalen Entwicklung zur Cloud-Computing-Infrastruktur oder Edge-Geräten.

Kernkonzepte von Docker

Um Docker zu verstehen, muss man mit drei grundlegenden Komponenten vertraut sein, die den Arbeitsablauf definieren.

  • Dockerdatei: Dies ist ein Textdokument, das alle Befehle enthält, die ein Benutzer auf der Kommandozeile aufrufen kann, um ein Befehlszeile aufrufen kann, um ein Image zusammenzustellen. Für ein KI-Projekt dient ein Dockerfile wie ein Rezept, das das Basis-Betriebssystem Betriebssystems, die Installation von Sprachen wie Pythonund die Einrichtung der notwendigen Frameworks wie PyTorch oder TensorFlow.
  • Docker-Abbild: Ein Image ist eine schreibgeschützte Vorlage mit Anweisungen zur Erstellung eines Docker-Containers. Es erfasst den Zustand der Anwendung zu einem bestimmten Zeitpunkt. Entwickler verwenden häufig optimierte Basis-Images von Registrierungsstellen wie NVIDIA NGC, um die vorinstallierten Treiber für GPU Beschleunigung zu nutzen.
  • Docker-Container: Ein Container ist eine lauffähige Instanz eines Images. Er isoliert die Anwendung vom dem Host-System isoliert, während er den Kernel des Host-Betriebssystems mitbenutzt. Diese Isolierung gewährleistet, dass Softwarekonflikte Softwarekonflikte minimiert werden, eine wichtige Voraussetzung für eine stabile Modellbereitstellung.

Docker in KI-Anwendungen der realen Welt

Docker ist unverzichtbar für den Einsatz robuster Computer Vision (CV) Lösungen.

  1. Edge AI-Bereitstellung: Bei der Bereitstellung von Modellen auf ressourcenbeschränkten Geräten wie dem NVIDIA Jetson, bieten Docker-Container eine leichtgewichtige Umgebung, die spezifische Abhängigkeiten wie OpenCV und hardwarespezifische Bibliotheken enthält. Zum Beispiel kann ein Ultralytics YOLO11 Modell, verpackt in einem Docker-Container kann problemlos an Tausende von Remote-Kameras zur Objekterkennung übertragen werden, ohne sich um die Konfiguration der einzelnen Geräte.
  2. Reproduzierbare Forschung und Ausbildung: In der akademischen und industriellen Forschung ist die Reproduzierbarkeit der Ergebnisse entscheidend. Durch die Verwendung von Docker können Forscher die genaue Version jeder Bibliothek, die während der Modellschulung. Dies beseitigt Diskrepanzen, die durch Software-Updates und ermöglicht es anderen, Ergebnisse zu überprüfen oder auf der Arbeit aufzubauen, was die Zusammenarbeit in der Datenwissenschaft.

Integration von Docker mit YOLO

Die Ausführung von Inferenz innerhalb eines Docker-Containers stellt sicher, dass Ihre Umgebung sauber bleibt und Ihre Abhängigkeiten nicht mit anderen Paketen auf Systemebene kollidieren. Nachfolgend finden Sie ein einfaches Python , das normalerweise innerhalb eines Docker Containers ausgeführt wird, um Bildsegmentierungs- oder Erkennungsaufgaben auszuführen.

from ultralytics import YOLO

# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")

# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")

# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")

Docker vs. Virtuelle Maschinen

Beide Technologien isolieren zwar Anwendungen, funktionieren aber unterschiedlich.

  • Virtuelle Maschinen (VMs): Eine VM emuliert ein ganzes Computersystem, einschließlich eines vollständigen Gastbetriebssystems system. Dies macht VMs schwer und langsamer beim Starten. Red Hat bietet einen detaillierten Vergleich der die architektonischen Unterschiede veranschaulicht.
  • Docker-Behälter: Container virtualisieren das Betriebssystem und nicht die Hardware. Sie teilen den Kernel des Hosts, was sie deutlich schlanker und effizienter macht. Diese Effizienz ist entscheidend, wenn Einsatz von Hochleistungsmodellen wie dem kommenden YOLO26, das die Geschwindigkeit und Genauigkeit bei minimalem minimalen Overhead.

Beziehung zu Kubernetes

Docker und Kubernetes sind unterschiedliche, aber komplementäre Werkzeuge. Docker wird zur Erstellung und Ausführung einzelner Container verwendet. Bei der Verwaltung von Hunderten von Containern in einem Cluster von Servern für die Bereitstellung von Modellen, wird ein Orchestrierungstool benötigt. Kubernetes koordiniert die Planung und Ausführung von Docker-Containern und gewährleistet hohe Verfügbarkeit und Skalierbarkeit für Enterprise-Grade KI-Agenten. Weitere Informationen über diese Synergie finden Sie in der Kubernetes-Dokumentation.

Künftige Entwicklungen im Ultralytics , wie etwa die kommende Ultralytics , werden diese Containerisierungsprinzipien nutzen, um die Arbeitsabläufe für Datenbeschaffung, Schulung und Bereitstellung zu optimieren und die Komplexität der Infrastrukturverwaltung weiter abstrahieren.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten