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 en un contenedor de Docker. Docker te permite ejecutar YOLOv5 en un entorno aislado y coherente, lo que simplifica la implementación y la gestión de dependencias en distintos sistemas. Este enfoque aprovecha la contenedorización para empaquetar la aplicación y sus dependencias.
Como alternativas de configuración, consulta nuestras guías del Notebook de Colab
, GCP Deep Learning VM o Amazon AWS. Para obtener una descripció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 instalado lo siguiente:
- 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 instalados los controladores de NVIDIA versión 455.23 o posterior. Puedes descargar los controladores más recientes desde el sitio web de NVIDIA.
- NVIDIA Container Toolkit (necesario para la compatibilidad con GPU): este conjunto de herramientas permite que los contenedores de Docker accedan a las GPU de NVIDIA de tu máquina anfitriona. Sigue la guía oficial de instalación de NVIDIA Container Toolkit para consultar instrucciones detalladas.
Configura NVIDIA Container Toolkit (usuarios de GPU)#
Primero, comprueba que los controladores de NVIDIA estén instalados correctamente ejecutando:
nvidia-smiEste comando debería mostrar información sobre las 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; consulta la guía oficial enlazada arriba para ver las instrucciones específicas de 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 NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVerificar dispositivos CDI con Docker#
Ejecuta nvidia-ctk cdi list para comprobar que los dispositivos CDI de GPU están disponibles (el servicio nvidia-cdi-refresh del kit de herramientas genera y mantiene automáticamente la especificación 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. La opción heredada --gpus all puede hacer que se pierda el acceso a la GPU después de recargar los demonios del host; actualiza las máquinas Linux más antiguas y usa --device en su lugar.
Paso 1: Descarga la imagen de Docker de YOLOv5#
Ultralytics ofrece imágenes oficiales de YOLOv5 en Docker Hub. La etiqueta latest corresponde a la confirmación más reciente del repositorio, por lo que siempre tendrás la versión más reciente. 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 consultar todas las imágenes disponibles en el repositorio de Ultralytics YOLOv5 en Docker Hub.
Paso 2: Ejecuta el contenedor de Docker#
Una vez descargada la imagen, puedes ejecutarla como contenedor.
Usa solo la CPU#
Para ejecutar un contenedor interactivo que use solo la CPU, utiliza la opción -it. La opción --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 $tUsa la GPU#
Para habilitar el acceso a la GPU dentro del contenedor, usa la opción --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.
Monta directorios locales#
Para trabajar con tus archivos locales (conjuntos de datos, pesos de modelos, etc.) dentro del contenedor, usa la opción -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 máquina y /path/in/container por la ruta que quieras usar dentro del contenedor de Docker (por ejemplo, /usr/src/datasets).
Paso 3: Usa YOLOv5 🚀 dentro del contenedor de Docker#
Ya 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 los tutoriales Entrena con datos personalizados y Exportación de modelos para obtener instrucciones detalladas.
Descubre más sobre métricas de evaluación como precisión, exhaustividad y mAP. Conoce distintos formatos de exportación, como ONNX, CoreML y TFLite, y explora varias opciones de implementación de modelos. Recuerda gestionar eficazmente los pesos de tus modelos.

Has configurado y ejecutado YOLOv5 correctamente en un contenedor de Docker.
Preguntas frecuentes#
Los trabajadores del cargador de datos de PyTorch comparten tensores mediante la memoria compartida, y los 64 MB predeterminados de Docker no son suficientes.
--ipc=hostcomparte el segmento de memoria del host;--shm-size=8ges una alternativa si prefieres mantener aislado el contenedor.Ejecuta
nvidia-smien el host para confirmar que el controlador funciona, comprueba que NVIDIA Container Toolkit esté instalado connvidia-ctk cdi listy asegúrate de que Docker sea la versión 28.2 o posterior para que se acepte--device nvidia.com/gpu=all.Monta directorios del host con
-v /path/on/host:/path/in/containery apunta--datay--projecta las rutas montadas. Los archivos escritos en cualquier otro lugar del contenedor se descartan cuando se elimina.Sí, pero el contenedor necesita acceso a un servidor de visualización. Consulta las instrucciones de X11 y Wayland en la guía de Docker de Ultralytics. Si no tienes una pantalla, guarda los resultados con
--save-txto usa la salida predeterminadaruns/detect/.