Mit YOLOv5 🚀 in Docker loslegen#
Willkommen beim Docker-Schnellstartleitfaden für Ultralytics YOLOv5! Dieses Tutorial enthält eine Schritt-für-Schritt-Anleitung zum Einrichten und Ausführen von YOLOv5 in einem Docker-Container. Mit Docker kannst du YOLOv5 in einer isolierten, konsistenten Umgebung ausführen und so die Bereitstellung und Verwaltung von Abhängigkeiten auf verschiedenen Systemen vereinfachen. Dieser Ansatz nutzt die Containerisierung, um die Anwendung und ihre Abhängigkeiten gemeinsam zu verpacken.
Für alternative Einrichtungsmethoden kannst du unser Colab Notebook
, die Anleitungen zur GCP Deep Learning VM oder zu Amazon AWS verwenden. Eine allgemeine Übersicht über die Verwendung von Docker mit Ultralytics-Modellen findest du im Ultralytics Docker Quickstart Guide.
Voraussetzungen#
Stelle vor Beginn sicher, dass Folgendes installiert ist:
- Docker: Lade Docker von der offiziellen Docker-Website herunter und installiere es. Docker ist für das Erstellen und Verwalten von Containern erforderlich.
- NVIDIA-Treiber (erforderlich für die GPU-Unterstützung): Stelle sicher, dass NVIDIA-Treiber in Version 455.23 oder höher installiert sind. Die neuesten Treiber kannst du von der NVIDIA-Website herunterladen.
- NVIDIA Container Toolkit (erforderlich für die GPU-Unterstützung): Mit diesem Toolkit können Docker-Container auf die NVIDIA-GPUs deines Hostrechners zugreifen. Eine ausführliche Anleitung findest du im offiziellen Installationsleitfaden für das NVIDIA Container Toolkit.
NVIDIA Container Toolkit einrichten (für GPU-Nutzer)#
Überprüfe zunächst, ob deine NVIDIA-Treiber korrekt installiert sind, indem du Folgendes ausführst:
nvidia-smiDieser Befehl sollte Informationen zu deiner GPU bzw. deinen GPUs und zur installierten Treiberversion anzeigen.
Installiere als Nächstes das NVIDIA Container Toolkit. Die folgenden Befehle sind typisch für Debian-basierte Systeme wie Ubuntu und RHEL-basierte Systeme wie Fedora/CentOS. Eine distributionsspezifische Anleitung findest du im oben verlinkten offiziellen Leitfaden:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listAktualisiere die Paketlisten und installiere das NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitCDI-Geräte mit Docker überprüfen#
Führe nvidia-ctk cdi list aus, um sicherzustellen, dass die GPU-CDI-Geräte verfügbar sind (der nvidia-cdi-refresh-Dienst des Toolkits erzeugt und verwaltet die Spezifikation ab Toolkit >= 1.18 automatisch):
nvidia-ctk cdi listDu solltest Einträge wie nvidia.com/gpu=0 und nvidia.com/gpu=all sehen. Unter Linux erfordern CDI-Geräteanforderungen Docker >= 28.2.0 und das NVIDIA Container Toolkit >= 1.18. Das veraltete --gpus all-Flag kann nach dem Neuladen der Host-Daemons den GPU-Zugriff verlieren. Aktualisiere daher ältere Linux-Hosts und verwende stattdessen --device.
Schritt 1: Das YOLOv5-Docker-Image abrufen#
Ultralytics stellt offizielle YOLOv5-Images auf Docker Hub bereit. Das Tag latest folgt dem neuesten Commit des Repositorys, sodass du immer die aktuellste Version erhältst. Rufe das Image mit dem folgenden Befehl ab:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tAlle verfügbaren Images kannst du im Ultralytics-YOLOv5-Repository auf Docker Hub durchsuchen.
Schritt 2: Den Docker-Container ausführen#
Nachdem das Image abgerufen wurde, kannst du es als Container ausführen.
Nur CPU verwenden#
Um eine interaktive Containerinstanz ausschließlich mit der CPU auszuführen, verwende das Flag -it. Das Flag --ipc=host ermöglicht die gemeinsame Nutzung des IPC-Namensraums des Hosts, was für den Zugriff auf den gemeinsam genutzten Speicher wichtig ist.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tGPU verwenden#
Um den GPU-Zugriff innerhalb des Containers zu aktivieren, verwende das CDI-Flag --device nvidia.com/gpu=.... Dafür muss das NVIDIA Container Toolkit korrekt installiert sein.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $tWeitere Informationen zu den Befehlsoptionen findest du in der Referenz zu Docker Run.
Lokale Verzeichnisse einbinden#
Um innerhalb des Containers mit deinen lokalen Dateien (Datensätzen, Modellgewichten usw.) zu arbeiten, verwende das Flag -v, um ein Hostverzeichnis in den Container einzubinden:
# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $tErsetze /path/on/host durch den tatsächlichen Pfad auf deinem Rechner und /path/in/container durch den gewünschten Pfad im Docker-Container (z. B. /usr/src/datasets).
Schritt 3: YOLOv5 🚀 im Docker-Container verwenden#
Du befindest dich jetzt im laufenden YOLOv5-Docker-Container! Von hier aus kannst du standardmäßige YOLOv5-Befehle für verschiedene Aufgaben des maschinellen Lernens und Deep Learnings wie die Objekterkennung ausführen.
# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training
# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy
# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection
# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export modelIn der Dokumentation findest du ausführliche Informationen zur Verwendung der verschiedenen Modi:
Erfahre mehr über Evaluierungsmetriken wie Precision, Recall und mAP. Informiere dich über verschiedene Exportformate wie ONNX, CoreML und TFLite und erkunde verschiedene Optionen zur Modellbereitstellung. Denke daran, deine Modellgewichte effektiv zu verwalten.

Du hast YOLOv5 erfolgreich in einem Docker-Container eingerichtet und ausgeführt.