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 automatisiert, indem sie Virtualisierung auf Betriebssystemebene verwendet, um Software in Paketen, sogenannten Containern, bereitzustellen. Für Machine Learning (ML)-Ingenieure und Data Scientists ist Docker ein entscheidendes Werkzeug, das das häufige Problem von Inkonsistenzen in der Umgebung löst – das berüchtigte Problem "es funktioniert auf meinem Rechner". Indem es den Code einer Anwendung mit allen Bibliotheken, Frameworks wie PyTorch und anderen Abhängigkeiten bündelt, die für die Ausführung erforderlich sind, stellt Docker sicher, dass ein Modell unabhängig davon, wo es bereitgestellt wird, identisch funktioniert. Diese Konsistenz ist grundlegend für eine zuverlässige Modellbereitstellung und ein Eckpfeiler moderner MLOps-Praktiken. Ultralytics bietet eine Docker-Schnellstartanleitung, um Benutzern den Einstieg in die Containerisierung ihrer Anwendungen zu erleichtern.

Wie Docker funktioniert

Der Workflow von Docker dreht sich um einige Kernkomponenten, die zusammenarbeiten, um Anwendungen zu verpacken und auszuführen:

  • Dockerfile: Dies ist eine einfache Textdatei, die eine Liste von sequenziellen Befehlen oder Anweisungen enthält. Diese Anweisungen sagen Docker, wie ein bestimmtes Docker-Image erstellt werden soll. Für ein ML-Projekt würde eine Dockerfile ein Basisbetriebssystem, Befehle zur Installation von Abhängigkeiten wie Python und OpenCV, das Kopieren der Modelldateien und des Inferenzcodes sowie den Befehl definieren, der beim Start des Containers ausgeführt werden soll. Weitere Informationen zu Dockerfiles finden Sie in der offiziellen Docker-Dokumentation.
  • Docker Image: Ein Image ist ein schlankes, eigenständiges und ausführbares Paket, das alles enthält, was zum Ausführen einer Software benötigt wird, einschließlich des Codes, einer Laufzeitumgebung, Bibliotheken, Umgebungsvariablen und Konfigurationsdateien. Es ist eine schreibgeschützte Vorlage, die aus einer Dockerfile erstellt wurde. ML-spezifische Images sind oft in Registries wie NVIDIA NGC verfügbar, die vorkonfiguriert mit GPU-Treibern und ML-Frameworks geliefert werden.
  • Docker Container: Ein Container ist eine ausführbare Instanz eines Docker-Images. Wenn Sie ein Image ausführen, wird es zu einem Container, einem isolierten Prozess, der auf dem Kernel des Host-Rechners läuft. Mehrere Container können auf demselben Rechner laufen und sich den Betriebssystem-Kernel mit anderen Containern teilen, wobei jeder als isolierter Prozess im User Space läuft. Dies macht sie im Vergleich zur traditionellen Virtualisierung äußerst effizient. Die Technologie wird von Organisationen wie der Open Container Initiative (OCI) standardisiert.

KI/ML-Anwendungen in der realen Welt

Docker vereinfacht den gesamten Lebenszyklus eines KI-Modells, von der Experimentierphase bis zur Produktion.

  1. Computer-Vision-Modelle am Edge bereitstellen: Ein für die Objekterkennung trainiertes Ultralytics YOLO11-Modell kann in einen Docker-Container verpackt werden. Dieser Container enthält die Modellgewichte, das Inferenzskript und alle notwendigen Abhängigkeiten wie bestimmte CUDA-Bibliotheksversionen. Dieser einzelne Container kann dann konsistent auf verschiedenen Plattformen bereitgestellt werden, von einer leistungsstarken Cloud-GPU bis hin zu einem ressourcenbeschränkten Edge-KI-Gerät wie einem NVIDIA Jetson. Dies stellt sicher, dass das Modell wie erwartet funktioniert, eine kritische Anforderung für Echtzeit-Inferenz in Anwendungen wie intelligenter Überwachung.
  2. Erstellung reproduzierbarer Forschungsumgebungen: Ein Data Scientist, der einen neuen Algorithmus für die Bildsegmentierung entwickelt, kann einen Docker-Container erstellen, der bestimmte Versionen von Python, TensorFlow und anderen Bibliotheken festlegt. Diese Container-Umgebung kann mit Mitarbeitern geteilt oder zusammen mit einer Forschungsarbeit veröffentlicht werden, sodass andere die Trainings-Umgebung perfekt replizieren und die Ergebnisse überprüfen können. Plattformen wie Ultralytics HUB sind in Container-Technologien integriert, um diesen Prozess weiter zu optimieren.

Vergleich mit ähnlichen Begriffen

Docker steht zwar im Zentrum der Containerisierung, wird aber oft zusammen mit anderen Technologien eingesetzt:

  • Containerisierung: Dies ist das allgemeine Konzept, Software in Container zu verpacken. Docker ist die beliebteste Plattform für die Containerisierung und bietet die Werkzeuge zum Erstellen, Versenden und Ausführen von Containern.
  • Kubernetes: Während Docker einzelne Container auf einem einzelnen Host verwaltet, ist Kubernetes eine Container-Orchestrierungsplattform. Es automatisiert die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen über Maschinencluster hinweg. Stellen Sie sich Docker als das Erstellen der Schiffscontainer und Kubernetes als das System vor, das die Schiffe und Häfen verwaltet. Weitere Informationen finden Sie auf der offiziellen Kubernetes-Website.
  • Virtuelle Maschinen (VMs): VMs bieten Isolation, indem sie ganze Hardwaresysteme emulieren, einschließlich eines Gastbetriebssystems. Container, die von Docker verwaltet werden, virtualisieren das Betriebssystem und teilen sich den Host-Kernel. Dies macht Container wesentlich schlanker, schneller und ressourceneffizienter als VMs, obwohl VMs eine stärkere Isolation bieten. Die offizielle Docker-Website bietet einen guten Vergleich.

Durch die Nutzung von Docker können KI- und Computer Vision (CV)-Experten die Workflow-Effizienz, die Zusammenarbeit und die Zuverlässigkeit der bereitgestellten Modelle erheblich verbessern. Einen allgemeinen Überblick über den Zweck von Docker bieten Ressourcen wie die Docker-Erklärung von OpenSource.com, die einen leicht zugänglichen Einstieg bietet. Diese Technologie ist ein wichtiger Faktor für eine breite Palette von Optionen zur Modellbereitstellung.

Treten Sie der Ultralytics-Community bei

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

Jetzt beitreten
Link in die Zwischenablage kopiert