Glossar

Docker

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

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 all ihren notwendigen Komponenten, wie Bibliotheken, Systemtools, Code und Laufzeitumgebungen. Durch diese Paketierung wird sichergestellt, dass die Anwendung in verschiedenen Computerumgebungen konsistent ausgeführt wird, wodurch Diskrepanzen zwischen Entwicklungs-, Test- und Produktions-Setups minimiert werden. 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, muss man ein paar grundlegende Komponenten kennen:

  • Dockerfile: Eine Textdatei mit Anweisungen für die Erstellung eines Docker-Images. Sie gibt das Basisbetriebssystem, die Abhängigkeiten, den Code und die Befehle an, die für die Einrichtung der Anwendungsumgebung erforderlich sind.
  • 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 erforderlich sind. Images werden zur Erstellung von Containern verwendet.
  • 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 Registrierungsdienst, der von Docker bereitgestellt wird, um Container-Images zu finden und zu teilen. Er beherbergt Tausende von öffentlichen Images, darunter offizielle Images für beliebte Software wie Python, PyTorch und TensorFlow.

Sie können diese Docker-Objekte und -Konzepte in der offiziellen Dokumentation näher untersuchen.

Relevanz für KI und maschinelles 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 Gewährleistung konsistenter Umgebungen in verschiedenen Phasen (Entwicklung, Tests, Bereitstellung) kann eine große Herausforderung darstellen. Docker löst diese Probleme effektiv:

  • 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.
  • Verwaltung von Abhängigkeiten: 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 derselben Umgebung arbeiten, unabhängig von der Konfiguration ihres lokalen Computers. Dies steht im Einklang mit den MLOps-Grundsätzen.
  • Effiziente Bereitstellung: Docker-Container vereinfachen die Modellbereitstellung, 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 häufig von Orchestrierungstools verwaltet werden. Dies unterstützt die Anforderungen an die Skalierbarkeit von Berechnungen.

Real-World-Anwendungen in AI/ML

Der Nutzen von Docker wird in verschiedenen KI/ML-Szenarien deutlich:

  1. Einsatz von Objekterkennungsmodellen: Ein Team entwickelt ein Objekterkennungsmodell mit Ultralytics YOLO zur Überwachung von Wildtieren in einem Naturschutzgebiet. Sie verwenden Docker, um das trainierte YOLO11-Modell, 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-Schnellstartanleitung, um diesen Prozess zu erleichtern.
  2. Skalierbare medizinische Bildanalyse: Ein Startup aus dem Gesundheitswesen entwickelt ein KI-Tool für die medizinische Bildanalyse, beispielsweise zur Tumorerkennung. Das Deep-Learning-Modell und seine API werden in einen Docker-Container verpackt. Dadurch kann die Anwendung als Teil einer Microservices-Architektur bereitgestellt 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 ein zentraler Bestandteil der Containerisierung, wird aber oft zusammen mit anderen Technologien eingesetzt:

  • Containerisierung: Dies ist das allgemeine Konzept der Verpackung von Software in Container. Docker ist die beliebteste Plattform für die Containerisierung und bietet die Tools zum Erstellen, Ausliefern und Ausführen von Containern.
  • Kubernetes: Während Docker einzelne Container auf einem einzelnen Host verwaltet, ist Kubernetes eine Container-Orchestrierungsplattform. Sie automatisiert die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen über Cluster von Maschinen. Stellen Sie sich Docker als das System vor, das die Container erstellt, und Kubernetes als das System, das die Container und Ports verwaltet. Weitere Informationen finden Sie auf der offiziellen Kubernetes-Website.
  • Virtuelle Maschinen (VMs): VMs bieten Isolierung durch Emulation ganzer Hardwaresysteme, einschließlich eines Gastbetriebssystems. Container, die von Docker verwaltet werden, virtualisieren das Betriebssystem und nutzen den Host-Kernel gemeinsam. 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-Experten die Effizienz der Arbeitsabläufe, die Zusammenarbeit und die Zuverlässigkeit der bereitgestellten Modelle erheblich verbessern. Für einen allgemeinen Überblick über den Zweck von Docker bieten Ressourcen wie die Docker-Erklärung von OpenSource.com eine verständliche Einführung. Tools wie Ultralytics HUB werden häufig in Container-Technologien integriert, um den gesamten ML-Lebenszyklus vom Training bis zur Bereitstellung zu optimieren.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert