Empieza a usar YOLOv5 🚀 en Docker#
¡Te damos la bienvenida a la guía de inicio rápido de Ultralytics YOLOv5 para Docker! Este tutorial proporciona instrucciones paso a paso para configurar y ejecutar YOLOv5 dentro de un contenedor de Docker. Docker te permite ejecutar YOLOv5 en un entorno aislado y uniforme, lo que simplifica la implementación y la gestión de dependencias en distintos sistemas. Este enfoque utiliza la contenedorización para empaquetar la aplicación y sus dependencias conjuntamente.
Para consultar métodos de configuración alternativos, echa un vistazo a nuestro Cuaderno de Colab
, o a las guías de GCP Deep Learning VM y Amazon AWS. Para obtener una visión general del uso de Docker con modelos de Ultralytics, consulta la Guía de inicio rápido de Docker de Ultralytics.
Requisitos previos#
Antes de empezar, asegúrate de tener instalados los siguientes componentes:
- Docker: descarga e instala Docker desde el sitio web oficial de Docker. Docker es esencial para crear y gestionar contenedores.
- Controladores de NVIDIA (necesarios para la compatibilidad con GPU): asegúrate de tener instalada la versión 455.23 o posterior de los controladores de NVIDIA. Puedes descargar los controladores más recientes desde el sitio web de NVIDIA.
- NVIDIA Container Toolkit (necesario para la compatibilidad con GPU): este kit de herramientas permite que los contenedores de Docker accedan a las GPU de NVIDIA de tu máquina host. Sigue la guía oficial de instalación de NVIDIA Container Toolkit para consultar instrucciones detalladas.
Configuración de NVIDIA Container Toolkit (usuarios de GPU)#
En primer lugar, verifica que los controladores de NVIDIA estén instalados correctamente ejecutando:
nvidia-smiEste comando debería mostrar información sobre tu GPU o GPU y la versión del controlador instalado.
A continuación, instala NVIDIA Container Toolkit. Los comandos siguientes son habituales en sistemas basados en Debian, como Ubuntu, y en sistemas basados en RHEL, como Fedora/CentOS, pero consulta la guía oficial enlazada anteriormente para obtener instrucciones específicas para tu distribución:
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.listActualiza las listas de paquetes e instala el NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVerificar dispositivos CDI con Docker#
Ejecuta nvidia-ctk cdi list para asegurarte de que los dispositivos GPU de CDI estén disponibles (el servicio nvidia-cdi-refresh del kit de herramientas genera y mantiene la especificación automáticamente en toolkit >= 1.18):
nvidia-ctk cdi listDeberías ver entradas como nvidia.com/gpu=0 y nvidia.com/gpu=all. En Linux, las solicitudes de dispositivos CDI requieren Docker >= 28.2.0 y NVIDIA Container Toolkit >= 1.18. El indicador heredado --gpus all puede provocar la pérdida del acceso a la GPU después de recargar los demonios del host, así que actualiza los hosts Linux antiguos y utiliza --device en su lugar.
Paso 1: extrae la imagen de Docker de YOLOv5#
Ultralytics proporciona imágenes oficiales de YOLOv5 en Docker Hub. La etiqueta latest sigue el commit más reciente del repositorio, lo que garantiza que siempre obtengas la versión más nueva. Extrae la imagen con el siguiente comando:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tPuedes consultar todas las imágenes disponibles en el repositorio de YOLOv5 de Ultralytics en Docker Hub.
Paso 2: ejecuta el contenedor de Docker#
Una vez extraída la imagen, puedes ejecutarla como contenedor.
Uso exclusivo de CPU#
Para ejecutar una instancia de contenedor interactiva utilizando únicamente la CPU, usa el indicador -it. El indicador --ipc=host permite compartir el espacio de nombres IPC del host, algo importante para acceder a la memoria compartida.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tUso de GPU#
Para habilitar el acceso a la GPU dentro del contenedor, utiliza el indicador --device nvidia.com/gpu=... de CDI. Para ello, NVIDIA Container Toolkit debe estar instalado correctamente.
# 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 $tConsulta la referencia de docker run para obtener más información sobre las opciones del comando.
Montaje de directorios locales#
Para trabajar con tus archivos locales (conjuntos de datos, pesos del modelo, etc.) dentro del contenedor, utiliza el indicador -v para montar un directorio del host en el contenedor:
# 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 $tSustituye /path/on/host por la ruta real de tu equipo y /path/in/container por la ruta deseada dentro del contenedor de Docker (por ejemplo, /usr/src/datasets).
Paso 3: utiliza YOLOv5 🚀 dentro del contenedor de Docker#
¡Ahora estás dentro del contenedor de Docker de YOLOv5 en ejecución! Desde aquí, puedes ejecutar comandos estándar de YOLOv5 para distintas tareas de aprendizaje automático y aprendizaje profundo, como la detección de objetos.
# 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 modelConsulta la documentación para obtener información detallada sobre el uso de los distintos modos:
Obtén más información sobre métricas de evaluación como la precisión, la exhaustividad y mAP. Conoce los distintos formatos de exportación, como ONNX, CoreML y TFLite, y explora varias opciones de implementación de modelos. Recuerda gestionar eficazmente tus pesos del modelo.

Has configurado y ejecutado YOLOv5 correctamente dentro de un contenedor de Docker.