Erste Schritte mit YOLOv5 🚀 in Docker#
Willkommen zum Ultralytics YOLOv5 Docker-Schnellstart-Leitfaden! Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung zum Einrichten und Ausführen von YOLOv5 in einem Docker-Container. Die Verwendung von Docker ermöglicht es dir, YOLOv5 in einer isolierten, konsistenten Umgebung auszuführen, wodurch die Bereitstellung und das Abhängigkeitsmanagement auf verschiedenen Systemen vereinfacht werden. Dieser Ansatz nutzt Containerisierung, um die Anwendung und ihre Abhängigkeiten zusammen zu verpacken.
Für alternative Einrichtungsmethoden kannst du unsere Leitfäden zum Colab Notebook
, zur GCP Deep Learning VM oder zu Amazon AWS heranziehen. Eine allgemeine Übersicht über die Verwendung von Docker mit Ultralytics-Modellen findest du im Ultralytics Docker Quickstart Guide.
Voraussetzungen#
Bevor du beginnst, stelle sicher, dass du Folgendes installiert hast:
- Docker: Lade Docker herunter und installiere es über die offizielle Docker-Website. Docker ist unerlässlich für das Erstellen und Verwalten von Containern.
- NVIDIA-Treiber (Erforderlich für die GPU-Unterstützung): Stelle sicher, dass die NVIDIA-Treiber in Version 455.23 oder höher installiert sind. Du kannst die neuesten Treiber von der NVIDIA-Website herunterladen.
- NVIDIA Container Toolkit (Erforderlich für die GPU-Unterstützung): Dieses Toolkit ermöglicht Docker-Containern den Zugriff auf die NVIDIA-GPUs deines Host-Systems. Folge der offiziellen Installationsanleitung für das NVIDIA Container Toolkit für detaillierte Anweisungen.
Einrichten des NVIDIA Container Toolkits (GPU-Benutzer)#
Überprüfe zunächst, ob deine NVIDIA-Treiber korrekt installiert sind, indem du Folgendes ausführst:
nvidia-smiDieser Befehl sollte Informationen über deine GPU(s) und die installierte Treiberversion anzeigen.
Installiere als Nächstes das NVIDIA Container Toolkit. Die unten stehenden Befehle sind typisch für Debian-basierte Systeme wie Ubuntu und RHEL-basierte Systeme wie Fedora/CentOS, aber beachte die oben verlinkte offizielle Anleitung für spezifische Anweisungen zu deiner Distribution:
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-toolkitÜberprüfe CDI-Geräte mit Docker#
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 generiert und pflegt 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äteanfragen Docker >= 28.2.0 und das NVIDIA Container Toolkit >= 1.18. Das ältere --gpus all-Flag kann nach Neustarts des Host-Daemons den GPU-Zugriff verlieren, aktualisiere daher ältere Linux-Hosts und verwende stattdessen --device.
Schritt 1: Das YOLOv5 Docker-Image abrufen (Pull)#
Ultralytics stellt offizielle YOLOv5-Images auf Docker Hub bereit. Der Tag latest verfolgt den neuesten Repository-Commit, sodass du immer die aktuellste Version erhältst. Lade das Image mit dem folgenden Befehl herunter:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tDu kannst alle verfügbaren Images im Ultralytics YOLOv5 Docker Hub-Repository durchstöbern.
Schritt 2: Den Docker-Container ausführen#
Sobald das Image geladen wurde, kannst du es als Container ausführen.
Nur CPU verwenden#
Um eine interaktive Container-Instanz nur mit der CPU auszuführen, verwende das -it-Flag. Das --ipc=host-Flag ermöglicht die Freigabe des IPC-Namespaces des Hosts, was für den Zugriff auf 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 --device nvidia.com/gpu=... CDI-Flag. Dies erfordert, dass das NVIDIA Container Toolkit korrekt installiert ist.
# 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 Details zu Befehlsoptionen findest du in der Docker run-Referenz.
Lokale Verzeichnisse einbinden (Mounting)#
Um mit deinen lokalen Dateien (Datensätzen, Modellgewichten usw.) im Inneren des Containers zu arbeiten, verwende das -v-Flag, um ein Host-Verzeichnis 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 Computer und /path/in/container durch den gewünschten Pfad innerhalb des Docker-Containers (z. B. /usr/src/datasets).
Schritt 3: YOLOv5 🚀 innerhalb des Docker-Containers verwenden#
Du befindest dich nun im laufenden YOLOv5 Docker-Container! Von hier aus kannst du Standard-YOLOv5-Befehle für verschiedene Machine Learning- und Deep Learning-Aufgaben 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 modelErkunde die Dokumentation für eine detaillierte Nutzung der verschiedenen Modi:
Erfahre mehr über Evaluierungsmetriken wie Precision, Recall und mAP. Verstehe verschiedene Exportformate wie ONNX, CoreML und TFLite und entdecke verschiedene Modellbereitstellungsoptionen. Denke daran, deine Modellgewichte effektiv zu verwalten.

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