Empieza con YOLOv5 🚀 en Docker#
¡Te damos la bienvenida a la Guía de inicio rápido de Docker para Ultralytics YOLOv5! Este tutorial ofrece instrucciones paso a paso para configurar y ejecutar YOLOv5 dentro de un contenedor Docker. El uso de Docker te permite ejecutar YOLOv5 en un entorno aislado y coherente, lo que simplifica el despliegue y la gestión de dependencias en diferentes sistemas. Este enfoque aprovecha la containerization para empaquetar la aplicación y sus dependencias juntas.
Para métodos de configuración alternativos, consulta nuestras guías de Colab Notebook
, GCP Deep Learning VM o Amazon AWS. Para obtener una visión general del uso de Docker con los modelos de Ultralytics, consulta la Ultralytics Docker Quickstart Guide.
Requisitos previos#
Antes de empezar, asegúrate de tener instalado lo siguiente:
- Docker: Descarga e instala Docker desde el sitio web oficial de Docker. Docker es fundamental para crear y gestionar contenedores.
- Controladores NVIDIA (Requeridos para compatibilidad con GPU): Asegúrate de tener instalados los controladores NVIDIA versión 455.23 o superior. Puedes descargar los controladores más recientes desde el sitio web de NVIDIA.
- NVIDIA Container Toolkit (Requerido para compatibilidad con GPU): Este kit de herramientas permite que los contenedores de Docker accedan a las GPU NVIDIA de tu máquina anfitriona. Sigue la guía de instalación de NVIDIA Container Toolkit oficial para obtener instrucciones detalladas.
Configuración de NVIDIA Container Toolkit (usuarios de GPU)#
Primero, verifica que tus controladores NVIDIA estén instalados correctamente ejecutando:
nvidia-smiEste comando debería mostrar información sobre tus GPU y la versión del controlador instalado.
A continuación, instala NVIDIA Container Toolkit. Los comandos siguientes son típicos para sistemas basados en Debian como Ubuntu y sistemas basados en RHEL como Fedora/CentOS, pero consulta la guía oficial enlazada arriba 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-toolkitVerifica los dispositivos CDI con Docker#
Ejecuta nvidia-ctk cdi list para asegurarte de que los dispositivos CDI de la GPU estén disponibles (el servicio nvidia-cdi-refresh del kit de herramientas genera y mantiene la especificación automáticamente en versiones del kit de herramientas >= 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 perder el acceso a la GPU después de reiniciar el demonio del anfitrión, así que actualiza los hosts Linux más antiguos y usa --device en su lugar.
Paso 1: Descarga (pull) la imagen de Docker de YOLOv5#
Ultralytics ofrece imágenes oficiales de YOLOv5 en Docker Hub. La etiqueta latest realiza un seguimiento de la confirmación más reciente del repositorio, lo que garantiza que siempre obtengas la versión más nueva. Descarga 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 explorar todas las imágenes disponibles en el repositorio de Docker Hub de Ultralytics YOLOv5.
Paso 2: Ejecuta el contenedor de Docker#
Una vez descargada la imagen, puedes ejecutarla como un contenedor.
Usando solo CPU#
Para ejecutar una instancia de contenedor interactiva utilizando únicamente la CPU, utiliza el indicador -it. El indicador --ipc=host permite compartir el espacio de nombres IPC del host, lo cual es importante para el acceso a la memoria compartida.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tUsando GPU#
Para habilitar el acceso a la GPU dentro del contenedor, utiliza el indicador CDI --device nvidia.com/gpu=.... Esto requiere que NVIDIA Container Toolkit esté 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 ejecución de Docker para obtener más detalles sobre las opciones de comandos.
Montaje de directorios locales#
Para trabajar con tus archivos locales (conjuntos de datos, pesos de modelos, 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 $tReemplaza /path/on/host con la ruta real en tu máquina y /path/in/container con la ruta deseada dentro del contenedor Docker (por ejemplo, /usr/src/datasets).
Paso 3: Usa YOLOv5 🚀 dentro del contenedor de Docker#
¡Ya estás dentro del contenedor Docker de YOLOv5 en ejecución! Desde aquí, puedes ejecutar comandos estándar de YOLOv5 para diversas tareas de Machine Learning y Deep Learning como Object Detection.
# 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 modelExplora la documentación para conocer el uso detallado de los diferentes modos:
Obtén más información sobre métricas de evaluación como Precision, Recall y mAP. Comprende diferentes formatos de exportación como ONNX, CoreML y TFLite, y explora varias Model Deployment Options. Recuerda gestionar tus model weights de forma eficaz.

Has configurado y ejecutado con éxito YOLOv5 dentro de un contenedor de Docker.