Glossar

Docker

Vereinfache KI/ML-Workflows mit Docker! Lerne, wie du Modelle bereitstellst, die Reproduzierbarkeit sicherstellst und effizient über verschiedene Umgebungen hinweg skalierst.

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

Docker ist eine leistungsstarke Plattform von Docker, Inc., die die Entwicklung, den Versand und die Ausführung von Anwendungen mithilfe von Containern vereinfacht. Container verpacken eine Anwendung mit allen notwendigen Komponenten, wie Bibliotheken, Systemtools, Code und Laufzeitumgebungen. Diese Paketierung stellt sicher, dass die Anwendung in verschiedenen Computerumgebungen konsistent läuft und minimiert die Unterschiede zwischen Entwicklungs-, Test- und Produktionssystemen. Für Fachleute, die im Bereich des maschinellen Lernens (ML) und der künstlichen Intelligenz (KI) arbeiten, bietet Docker einen optimierten Ansatz für die Verwaltung komplexer Softwareabhängigkeiten und die zuverlässige und effiziente Bereitstellung von Modellen. Diese Isolierung und Portabilität wird durch die Containerisierungstechnologie erreicht, die leichter ist als herkömmliche virtuelle Maschinen.

Kernkonzepte von Docker

Um Docker zu verstehen, musst du ein paar grundlegende Komponenten verstehen:

  • Dockerfile: Eine Textdatei mit Anweisungen für die Erstellung eines Docker-Images. Sie enthält das Basis-Betriebssystem, die Abhängigkeiten, den Code und die Befehle, die zum Einrichten der Anwendungsumgebung benötigt werden.
  • Docker Image: Eine schreibgeschützte Vorlage, die aus einer Dockerdatei erstellt wird. Es enthält den Anwendungscode, Bibliotheken, Abhängigkeiten, Tools und andere Dateien, die für die Ausführung einer Anwendung benötigt werden. Images werden verwendet, um Container zu erstellen.
  • Docker Container: Eine lauffähige Instanz eines Docker-Images. Container sind isolierte Umgebungen, in denen Anwendungen ausgeführt werden. Sie teilen sich den Kernel des Hostsystems, laufen aber in separaten Benutzerbereichen, um Konsistenz und Isolierung zu gewährleisten.
  • Docker Hub: Ein cloudbasierter Registry-Dienst von Docker, mit dem du Container-Images finden und teilen kannst. Er beherbergt Tausende von öffentlichen Images, darunter offizielle Images für beliebte Software wie Python, PyTorchund TensorFlow.

Du kannst diese Docker-Objekte und -Konzepte in der offiziellen Dokumentation näher kennenlernen.

Relevanz in KI und maschinellem Lernen

KI- und ML-Projekte umfassen oft komplizierte Umgebungen mit zahlreichen Abhängigkeiten(wie PyTorch oder OpenCV) und spezifischen Bibliotheksversionen. Die Verwaltung dieser Abhängigkeiten und die Sicherstellung konsistenter Umgebungen in verschiedenen Phasen (Entwicklung, Tests, Bereitstellung) kann eine große Herausforderung sein. Mit Docker lassen sich diese Probleme effektiv lösen:

  • Reproduzierbarkeit: Docker stellt sicher, dass die im Dockerfile definierte Umgebung überall dort, wo der Container läuft, identisch ist, was eine reproduzierbare Forschung und ein zuverlässiges Modellverhalten erleichtert.
  • Dependency Management: Es isoliert Projektabhängigkeiten innerhalb des Containers und verhindert so Konflikte zwischen verschiedenen Projekten oder mit den Bibliotheken des Hostsystems.
  • Vereinfachte Zusammenarbeit: Teams können Docker-Images gemeinsam nutzen und so sicherstellen, dass alle in der gleichen Umgebung arbeiten, unabhängig von der Konfiguration ihres lokalen Computers. Dies entspricht den Prinzipien von MLOps.
  • Effiziente Bereitstellung: Docker-Container vereinfachen die Bereitstellung des Modells, indem sie das Modell, die Abhängigkeiten und den Serving-Code in eine einzige, portable Einheit packen. Dies erleichtert die Bereitstellung auf verschiedenen Zielen, einschließlich Cloud-Plattformen und Edge-Geräten.
  • Skalierbarkeit: Container sind leichtgewichtig und lassen sich schnell starten, was sie ideal für die bedarfsgerechte Skalierung von KI-Anwendungen macht, die oft von Orchestrierungswerkzeugen verwaltet werden. Dies unterstützt die Anforderungen an die Skalierbarkeit von Berechnungen.

Reale Anwendungen in KI/ML

Der Nutzen von Docker zeigt sich in verschiedenen KI/ML-Szenarien:

  1. Einsatz von Objekterkennungsmodellen: Ein Team entwickelt ein Objekterkennungsmodell mit Ultralytics YOLO um Wildtiere in einem Naturschutzgebiet zu überwachen. Sie verwenden Docker, um das trainierte YOLO11 , die Inferenzskripte und die erforderlichen Bibliotheken(wie OpenCV) zu verpacken. Diese containerisierte Anwendung kann dann konsistent auf verschiedenen Edge-Geräten im Feld eingesetzt werden, um trotz unterschiedlicher Hardware eine zuverlässige Leistung zu gewährleisten. Ultralytics bietet eine Docker-Schnellstart-Anleitung, um diesen Prozess zu erleichtern.
  2. Skalierbare medizinische Bildanalyse: Ein Startup aus dem Gesundheitswesen entwickelt ein KI-Tool für die medizinische Bildanalyse, z. B. zur Tumorerkennung. Das Deep-Learning-Modell und seine API werden in einen Docker-Container gepackt. So kann die Anwendung als Teil einer Microservices-Architektur eingesetzt werden, in der mehrere Container-Instanzen je nach Anzahl der Analyseanfragen automatisch nach oben oder unten skaliert werden können, um eine effiziente Ressourcennutzung und Reaktionsfähigkeit zu gewährleisten.

Vergleich mit ähnlichen Begriffen

Docker ist zwar das Herzstück der Containerisierung, wird aber oft zusammen mit anderen Technologien eingesetzt:

  • Containerisierung: Das ist das allgemeine Konzept, Software in Container zu packen. Docker ist die beliebteste Plattform für die Containerisierung und bietet die Werkzeuge zum Erstellen, Ausliefern und Ausführen von Containern.
  • Kubernetes: Während Docker einzelne Container auf einem einzelnen Rechner verwaltet, ist Kubernetes eine Plattform zur Container-Orchestrierung. Sie automatisiert den Einsatz, die Skalierung und die Verwaltung von containerisierten Anwendungen über Cluster von Maschinen. Stell dir vor, Docker erstellt die Container und Kubernetes ist das System, das die Container und Ports verwaltet. Weitere Informationen findest du 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. Dadurch sind Container viel leichter, schneller und ressourceneffizienter als VMs, obwohl VMs eine stärkere Isolierung bieten.

Durch den Einsatz von Docker können KI- und Computer-Vision-Fachleute die Effizienz ihrer Arbeitsabläufe, die Zusammenarbeit und die Zuverlässigkeit der eingesetzten Modelle erheblich verbessern. Für einen allgemeinen Überblick über den Zweck von Docker bieten Ressourcen wie die Docker-Erklärung auf OpenSource.com eine verständliche Einführung. Tools wie Ultralytics HUB werden häufig mit Container-Technologien integriert, um den gesamten ML-Lebenszyklus vom Training bis zur Bereitstellung zu optimieren.

Alles lesen