Bien démarrer avec YOLOv5 🚀 dans Docker#
Bienvenue dans le guide de démarrage rapide Docker d'Ultralytics YOLOv5 ! Ce tutoriel fournit des instructions étape par étape pour configurer et exécuter YOLOv5 dans un conteneur Docker. Docker te permet d'exécuter YOLOv5 dans un environnement isolé et cohérent, ce qui simplifie le déploiement et la gestion des dépendances sur différents systèmes. Cette approche s'appuie sur la conteneurisation pour regrouper l'application et ses dépendances.
Pour découvrir d'autres méthodes de configuration, consulte nos guides Notebook Colab
, Deep Learning VM de GCP ou Amazon AWS. Pour une présentation générale de l'utilisation de Docker avec les modèles Ultralytics, consulte le guide de démarrage rapide Docker d'Ultralytics.
Prérequis#
Avant de commencer, vérifie que les éléments suivants sont installés :
- Docker : Télécharge et installe Docker depuis le site officiel de Docker. Docker est indispensable pour créer et gérer des conteneurs.
- Pilotes NVIDIA (requis pour la prise en charge du GPU) : Vérifie que la version 455.23 ou une version ultérieure des pilotes NVIDIA est installée. Tu peux télécharger les derniers pilotes depuis le site Web de NVIDIA.
- NVIDIA Container Toolkit (requis pour la prise en charge du GPU) : Cette boîte à outils permet aux conteneurs Docker d'accéder aux GPU NVIDIA de la machine hôte. Suis le guide officiel d'installation de NVIDIA Container Toolkit pour obtenir des instructions détaillées.
Configurer NVIDIA Container Toolkit (utilisateurs de GPU)#
Commence par vérifier que les 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é.
Installe ensuite NVIDIA Container Toolkit. Les commandes ci-dessous sont courantes sur les systèmes basés sur Debian, comme Ubuntu, et sur ceux basés sur RHEL, comme Fedora/CentOS. Consulte toutefois le guide officiel mentionné ci-dessus pour obtenir les instructions propres à 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 NVIDIA Container Toolkit :
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVérifier les appareils CDI avec Docker#
Exécute nvidia-ctk cdi list pour vérifier que les appareils GPU CDI sont disponibles (le service nvidia-cdi-refresh de la boîte à outils génère et maintient automatiquement la spécification avec toolkit >= 1.18) :
nvidia-ctk cdi listTu devrais voir des entrées comme nvidia.com/gpu=0 et nvidia.com/gpu=all. Sous Linux, les requêtes d'appareils CDI nécessitent Docker >= 28.2.0 et NVIDIA Container Toolkit >= 1.18. L'option héritée --gpus all peut entraîner une perte d'accès au GPU après le rechargement du démon hôte. Mets donc à niveau les anciens hôtes Linux et utilise plutôt --device.
Étape 1 : Récupérer l'image Docker YOLOv5#
Ultralytics fournit des images officielles YOLOv5 sur Docker Hub. La balise latest suit le commit le plus récent du dépôt, ce qui te garantit de toujours obtenir la dernière version. Récupère l'image à l'aide de 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 dans le dépôt Docker Hub d'Ultralytics YOLOv5.
Étape 2 : Exécuter le conteneur Docker#
Une fois l'image récupérée, tu peux l'exécuter dans un conteneur.
Utiliser uniquement le CPU#
Pour exécuter un conteneur interactif en utilisant uniquement le CPU, utilise l'option -it. L'option --ipc=host permet de partager l'espace de noms IPC de l'hôte, ce qui est important pour accéder à la mémoire partagée.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tUtiliser un GPU#
Pour activer l'accès au GPU depuis le conteneur, utilise l'option CDI --device nvidia.com/gpu=... CDI. NVIDIA Container Toolkit doit être 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 référence de la commande Docker run pour en savoir plus sur les options de commande.
Monter des répertoires locaux#
Pour accéder à tes fichiers locaux (jeux de données, poids des modèles, etc.) depuis le conteneur, utilise l'option -v afin de 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é dans le conteneur Docker (par exemple, /usr/src/datasets).
Étape 3 : Utiliser YOLOv5 🚀 dans le conteneur Docker#
Tu te trouves maintenant dans le conteneur Docker YOLOv5 en cours d'exécution ! Tu peux y exécuter les commandes YOLOv5 habituelles pour différentes tâches d'apprentissage automatique et d'apprentissage profond, 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 modelConsulte les tutoriels Entraîner sur des données personnalisées et Exportation de modèles pour obtenir des instructions détaillées.
Découvre les métriques d'évaluation comme la précision, le rappel et la mAP. Familiarise-toi avec différents formats d'exportation comme ONNX, CoreML et TFLite, puis explore les différentes options de déploiement des modèles. Pense à gérer efficacement les poids de tes modèles.

Tu as configuré et exécuté YOLOv5 avec succès dans un conteneur Docker.
FAQ#
Les processus de chargement des données de PyTorch partagent des tenseurs via la mémoire partagée, et la limite par défaut de Docker, fixée à 64 Mo, est trop faible.
--ipc=hostpartage le segment de mémoire de l'hôte ;--shm-size=8gest une autre solution si tu préfères isoler le conteneur.Exécute
nvidia-smisur l'hôte pour vérifier que le pilote fonctionne, vérifie que NVIDIA Container Toolkit est installé avecnvidia-ctk cdi list, et assure-toi que Docker est en version 28.2 ou ultérieure pour que--device nvidia.com/gpu=allsoit accepté.Monte les répertoires de l’hôte avec
-v /path/on/host:/path/in/containeret indique--dataet--projectcomme chemins des répertoires montés. Les fichiers écrits ailleurs dans le conteneur sont supprimés lorsque celui-ci est retiré.Oui, mais le conteneur doit pouvoir accéder à un serveur d’affichage. Consulte les instructions X11 et Wayland dans le guide Docker d’Ultralytics. Sans affichage, enregistre plutôt les résultats avec
--save-txtou dans le répertoire de sortie par défautruns/detect/.