Mit YOLOv5 🚀 in Docker loslegen#
Willkommen bei der Ultralytics-YOLOv5-Docker-Schnellstartanleitung! Dieses Tutorial erklärt Schritt für Schritt, wie du YOLOv5 in einem Docker-Container einrichtest und ausführst. Mit Docker kannst du YOLOv5 in einer isolierten, konsistenten Umgebung ausführen und so die Bereitstellung und Abhängigkeitsverwaltung auf verschiedenen Systemen vereinfachen. Dabei kommt Containerisierung zum Einsatz, um die Anwendung samt ihren Abhängigkeiten zu bündeln.
Für alternative Einrichtungsmöglichkeiten sieh dir unsere Colab-Notebook-Anleitung
, die Anleitungen zur GCP Deep Learning VM oder zu Amazon AWS an. Eine allgemeine Übersicht zur Verwendung von Docker mit Ultralytics-Modellen findest du in der Ultralytics-Docker-Schnellstartanleitung.
Voraussetzungen#
Stelle vor dem Start 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 (für GPU-Unterstützung erforderlich): Stelle sicher, dass NVIDIA-Treiber ab Version 455.23 installiert sind. Die neuesten Treiber kannst du von der NVIDIA-Website herunterladen.
- NVIDIA Container Toolkit (für GPU-Unterstützung erforderlich): Mit diesem Toolkit können Docker-Container auf die NVIDIA-GPUs deines Hostcomputers zugreifen. Eine ausführliche Anleitung findest du in der offiziellen Installationsanleitung für das NVIDIA Container Toolkit.
NVIDIA Container Toolkit einrichten (für GPU-Nutzer)#
Prüfe zunächst mit dem folgenden Befehl, ob die NVIDIA-Treiber korrekt installiert sind:
nvidia-smiDieser Befehl sollte Informationen zu deiner/deinen GPU(s) und zur installierten Treiberversion anzeigen.
Installiere anschließend das NVIDIA Container Toolkit. Die folgenden Befehle sind für Debian-basierte Systeme wie Ubuntu und RHEL-basierte Systeme wie Fedora/CentOS üblich. Eine Anleitung speziell für deine Distribution findest du jedoch in der oben verlinkten offiziellen Anleitung:
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 Dienst nvidia-cdi-refresh des Toolkits erstellt und verwaltet die Spezifikation ab Toolkit-Version >= 1.18 automatisch):
nvidia-ctk cdi listEs sollten Einträge wie nvidia.com/gpu=0 und nvidia.com/gpu=all angezeigt werden. Unter Linux erfordern CDI-Geräteanforderungen Docker >= 28.2.0 und NVIDIA Container Toolkit >= 1.18. Das veraltete Flag --gpus all kann nach dem Neuladen des Host-Daemons den GPU-Zugriff verlieren lassen. Aktualisiere daher ältere Linux-Hosts und verwende stattdessen --device.
Schritt 1: YOLOv5-Docker-Image abrufen#
Ultralytics stellt offizielle YOLOv5-Images auf Docker Hub bereit. Das Tag latest verweist auf den neuesten Commit des Repositorys, sodass du immer die aktuelle Version erhältst. Rufe das Image mit folgendem 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 findest du im Ultralytics-YOLOv5-Repository auf Docker Hub.
Schritt 2: Docker-Container ausführen#
Nachdem du das Image abgerufen hast, kannst du es als Container ausführen.
Nur CPU verwenden#
Verwende das Flag -it, um eine interaktive Containerinstanz nur mit der CPU auszuführen. Mit dem Flag --ipc=host wird der IPC-Namensraum des Hosts freigegeben, 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#
Verwende das CDI-Flag --device nvidia.com/gpu=... CDI, um den GPU-Zugriff im Container zu aktivieren. 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 Docker-Referenz zu run.
Lokale Verzeichnisse einbinden#
Um im Container 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 Computer 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! Hier kannst du Standardbefehle für YOLOv5-Aufgaben wie maschinelles Lernen, Deep Learning und 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 modelAusführliche Anleitungen zur Verwendung findest du in den Tutorials Benutzerdefinierte Daten trainieren und Modell exportieren.
Erfahre mehr über Bewertungsmetriken wie Precision, Recall und mAP. Informiere dich über verschiedene Exportformate wie ONNX, CoreML und TFLite und entdecke verschiedene Optionen zur Modellbereitstellung. Achte darauf, deine Modellgewichte sinnvoll zu verwalten.

Du hast YOLOv5 erfolgreich in einem Docker-Container eingerichtet und ausgeführt.
Häufig gestellte Fragen#
PyTorch-Dataloader-Worker geben Tensoren über den gemeinsam genutzten Speicher weiter, und der Docker-Standardwert von 64 MB ist dafür zu klein.
--ipc=hostgibt das Speichersegment des Hosts frei.--shm-size=8gist eine Alternative, wenn du den Container lieber isoliert halten möchtest.Führe auf dem Host
nvidia-smiaus, um zu überprüfen, ob der Treiber funktioniert. Prüfe mitnvidia-ctk cdi list, ob das NVIDIA Container Toolkit installiert ist, und stelle sicher, dass Docker Version 28.2 oder höher verwendet wird, damit--device nvidia.com/gpu=allakzeptiert wird.Binde Host-Verzeichnisse mit
-v /path/on/host:/path/in/containerein und verweise mit--dataund--projectauf die eingebundenen Pfade. Dateien, die an anderen Stellen im Container geschrieben werden, gehen verloren, wenn der Container entfernt wird.Ja, aber der Container benötigt Zugriff auf einen Anzeigeserver. Eine Anleitung findest du in den X11- und Wayland-Anweisungen im Ultralytics Docker-Leitfaden. Ohne Anzeige kannst du Ergebnisse stattdessen mit
--save-txtoder der standardmäßigen Ausgaberuns/detect/speichern.