Link to this sectionDémarre avec YOLOv5 🚀 dans Docker#
Bienvenue dans le guide de démarrage rapide Docker pour YOLOv5 d'Ultralytics ! Ce tutoriel fournit des instructions étape par étape pour configurer et exécuter YOLOv5 au sein d'un conteneur Docker. L'utilisation de Docker te permet d'exécuter YOLOv5 dans un environnement isolé et cohérent, simplifiant ainsi le déploiement et la gestion des dépendances sur différents systèmes. Cette approche exploite la conteneurisation pour regrouper l'application et ses dépendances.
Pour d'autres méthodes d'installation, consulte nos guides Colab Notebook
, GCP Deep Learning VM, ou Amazon AWS. Pour une vue d'ensemble de l'utilisation de Docker avec les modèles Ultralytics, consulte le Guide de démarrage rapide Docker d'Ultralytics.
Link to this sectionPrérequis#
Avant de commencer, assure-toi d'avoir installé les éléments suivants :
- Docker : Télécharge et installe Docker depuis le site officiel de Docker. Docker est essentiel pour créer et gérer des conteneurs.
- Pilotes NVIDIA (Requis pour la prise en charge des GPU) : Assure-toi d'avoir installé les pilotes NVIDIA version 455.23 ou supérieure. Tu peux télécharger les pilotes les plus récents sur le site de NVIDIA.
- NVIDIA Container Toolkit (Requis pour la prise en charge du GPU) : Ce kit d'outils permet aux conteneurs Docker d'accéder aux GPU NVIDIA de ta machine hôte. Suis le guide d'installation officiel du NVIDIA Container Toolkit pour des instructions détaillées.
Link to this sectionConfiguration du NVIDIA Container Toolkit (Utilisateurs de GPU)#
Tout d'abord, vérifie que tes pilotes NVIDIA sont correctement installés en exécutant :
nvidia-smiCette commande doit afficher des informations sur ton ou tes GPU et la version du pilote installée.
Ensuite, installe le NVIDIA Container Toolkit. Les commandes ci-dessous sont typiques des systèmes basés sur Debian comme Ubuntu et des systèmes basés sur RHEL comme Fedora/CentOS, mais réfère-toi au guide officiel lié ci-dessus pour des instructions spécifiques à ta 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.listMets à jour les listes de paquets et installe le NVIDIA Container Toolkit :
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitLink to this sectionVérifie tes périphériques CDI avec Docker#
Exécute nvidia-ctk cdi list pour t'assurer que les périphériques GPU CDI sont disponibles (le service nvidia-cdi-refresh de la boîte à outils génère et maintient la spécification automatiquement pour une version >= 1.18) :
nvidia-ctk cdi listTu devrais voir des entrées telles que nvidia.com/gpu=0 et nvidia.com/gpu=all. Sous Linux, les requêtes de périphériques CDI nécessitent Docker >= 28.2.0 et NVIDIA Container Toolkit >= 1.18. L'ancien drapeau --gpus all peut entraîner une perte d'accès au GPU après le rechargement du démon hôte, alors mets à jour les anciens hôtes Linux et utilise --device à la place.
Link to this sectionÉtape 1 : Récupérer l'image Docker de YOLOv5#
Ultralytics fournit des images officielles de YOLOv5 sur Docker Hub. Le tag latest suit le commit le plus récent du dépôt, te garantissant d'avoir toujours la version la plus nouvelle. Récupère l'image en utilisant la commande suivante :
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tTu peux parcourir toutes les images disponibles sur le dépôt Docker Hub de YOLOv5 d'Ultralytics.
Link to this sectionÉtape 2 : Exécuter le conteneur Docker#
Une fois l'image récupérée, tu peux l'exécuter en tant que conteneur.
Link to this sectionUtilisation du CPU uniquement#
Pour exécuter une instance de conteneur interactive en utilisant uniquement le CPU, utilise le flag -it. Le flag --ipc=host permet de partager l'espace de nom IPC de l'hôte, ce qui est important pour l'accès à la mémoire partagée.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tLink to this sectionUtilisation du GPU#
Pour activer l'accès au GPU dans le conteneur, utilise l'indicateur --device nvidia.com/gpu=... CDI. Cela nécessite que le NVIDIA Container Toolkit soit correctement installé.
# 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 $tConsulte la documentation Docker sur la commande run pour plus de détails sur les options de commande.
Link to this sectionMonter des répertoires locaux#
Pour travailler avec tes fichiers locaux (jeux de données, poids de modèles, etc.) à l'intérieur du conteneur, utilise le flag -v pour monter un répertoire de l'hôte dans le conteneur :
# 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 $tRemplace /path/on/host par le chemin réel sur ta machine et /path/in/container par le chemin souhaité à l'intérieur du conteneur Docker (par exemple, /usr/src/datasets).
Link to this sectionÉtape 3 : Utiliser YOLOv5 🚀 dans le conteneur Docker#
Tu es maintenant à l'intérieur du conteneur Docker YOLOv5 en cours d'exécution ! À partir de là, tu peux exécuter les commandes YOLOv5 standards pour diverses tâches de Machine Learning et de Deep Learning comme la Détection d'objets.
# 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 modelExplore la documentation pour une utilisation détaillée des différents modes :
Apprends-en plus sur les métriques d'évaluation comme Precision, Recall et mAP. Comprends les différents formats d'exportation comme ONNX, CoreML et TFLite, et explore les diverses Model Deployment Options. N'oublie pas de gérer efficacement tes model weights.

Tu as configuré et exécuté avec succès YOLOv5 au sein d'un conteneur Docker.