Link to this sectionEmpieza con YOLOv5 🚀 en Docker#
¡Bienvenido 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 de Docker. Usar 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 containerización para empaquetar la aplicación y sus dependencias conjuntamente.
Para métodos de configuración alternativos, consulta nuestro Colab Notebook
, o nuestras guías de GCP Deep Learning VM o Amazon AWS. Para una visión general del uso de Docker con modelos de Ultralytics, consulta la Guía de inicio rápido de Docker de Ultralytics.
Link to this sectionRequisitos 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 instalada la versión 455.23 o superior de los controladores de NVIDIA. 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 oficial de NVIDIA Container Toolkit para obtener instrucciones detalladas.
Link to this sectionConfiguració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 paquete nvidia-container-toolkit:
sudo apt-get updateInstala la última versión de nvidia-container-toolkit:
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1Opcional: instala una versión específica de nvidia-container-toolkit
Opcionalmente, puedes instalar una versión específica de nvidia-container-toolkit estableciendo la variable de entorno NVIDIA_CONTAINER_TOOLKIT_VERSION:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerLink to this sectionVerifica el tiempo de ejecución (runtime) de NVIDIA con Docker#
Ejecuta docker info | grep -i runtime para asegurarte de que nvidia aparece en la lista de entornos de ejecución:
docker info | grep -i runtimeDeberías ver nvidia listado como uno de los entornos de ejecución disponibles.
Link to this sectionPaso 1: Descarga (pull) la imagen de Docker de YOLOv5#
Ultralytics proporciona imágenes oficiales de YOLOv5 en Docker Hub. La etiqueta latest rastrea el commit más reciente del repositorio, asegurando que siempre obtengas la versión más nueva. Descarga la imagen usando 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.
Link to this sectionPaso 2: Ejecuta el contenedor de Docker#
Una vez descargada la imagen, puedes ejecutarla como un contenedor.
Link to this sectionUsando solo CPU#
Para ejecutar una instancia de contenedor interactivo usando solo 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 memoria compartida.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tLink to this sectionUsando GPU#
Para habilitar el acceso a la GPU dentro del contenedor, utiliza el indicador --gpus. Esto requiere que NVIDIA Container Toolkit esté instalado correctamente.
# Run with access to all available GPUs
sudo docker run -it --runtime=nvidia --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --runtime=nvidia --ipc=host --gpus '"device=2,3"' $tConsulta la referencia de ejecución de Docker para obtener más detalles sobre las opciones de comando.
Link to this sectionMontaje de directorios locales#
Para trabajar con tus archivos locales (datasets, 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 --runtime=nvidia --ipc=host --gpus 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 de Docker (por ejemplo, /usr/src/datasets).
Link to this sectionPaso 3: Usa YOLOv5 🚀 dentro del contenedor de Docker#
¡Ya estás dentro del contenedor de Docker en ejecución de YOLOv5! Desde aquí, puedes ejecutar comandos estándar de YOLOv5 para diversas tareas de Machine Learning y Deep Learning, 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 modelExplora la documentación para conocer el uso detallado de los diferentes modos:
Aprende más sobre métricas de evaluación como Precisión, Recall y mAP. Comprende los diferentes formatos de exportación como ONNX, CoreML y TFLite, y explora varias Opciones de Despliegue de Modelos. Recuerda gestionar tus pesos de modelo de manera efectiva.

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