Explore how Docker enables reproducible AI workflows. Learn to containerize [YOLO26](https://docs.ultralytics.com/models/yolo26/) for seamless training and deployment.
Docker es una plataforma de código abierto que permite a los desarrolladores automatizar la implementación, el escalado y la gestión de aplicaciones mediante la contenedorización. En el contexto de la inteligencia artificial y el aprendizaje automático, Docker actúa como una unidad estandarizada de software que empaqueta el código y todas sus dependencias, como bibliotecas, herramientas del sistema y configuraciones, para que la aplicación se ejecute de forma rápida y fiable de un entorno informático a otro. Esto elimina el problema habitual de «funciona en mi máquina», garantizando que una red neuronal entrenada en el portátil de un investigador se comporte exactamente de la misma manera cuando se implementa en un servidor en la nube masivo o en un dispositivo periférico.
Las operacionesmodernas de aprendizaje automático (MLOps) dependen en gran medida de la reproducibilidad y la portabilidad. Un proyecto de IA suele implicar una compleja pila de software, que incluye versiones específicas de Python, CUDA para GPU y marcos de aprendizaje profundo como PyTorch o TensorFlow. Gestionar todo esto manualmente entre diferentes equipos e infraestructuras es propenso a errores.
Docker simplifica este proceso mediante la creación de contenedores independientes y ligeros. A diferencia de las máquinas virtuales (VM) tradicionales, que requieren un sistema operativo completo para cada instancia, los contenedores comparten el núcleo del sistema operativo de la máquina host, pero se ejecutan en espacios de usuario aislados . Esto los hace mucho más eficientes en cuanto a recursos y más rápidos de iniciar, lo cual es fundamental a la hora de escalar la infraestructura de servicio de modelos o ejecutar tareas de entrenamiento distribuidas.
Docker está presente en todo el ciclo de vida de la IA, desde la experimentación inicial hasta la implementación final.
Es útil distinguir Docker de otras tecnologías relacionadas para comprender su función específica:
El siguiente ejemplo muestra cómo podría ser un Python dentro de un contenedor Docker diseñado para visión artificial
. Este script utiliza el ultralytics paquete para cargar un modelo y realizar inferencias. El entorno del contenedor
garantiza que las dependencias correctas (como opencv-python y torch) ya están
presentes.
from ultralytics import YOLO
# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")
Para empezar con la contenedorización, los desarrolladores suelen definir un Dockerfile, que es un documento de texto
que contiene todos los comandos necesarios para ensamblar una imagen. Una vez creadas, estas imágenes se pueden almacenar en registros como
Docker Hub o el
Catálogo NVIDIA, que ofrece contenedores GPU.
Para aquellos que buscan optimizar el proceso de formación y despliegue sin tener que gestionar manualmente los archivos Dockerfiles, la Ultralytics ofrece herramientas integradas que gestionan la complejidad de los entornos en la nube. Esto permite a los usuarios centrarse en mejorar la precisión de los modelos en lugar de configurar la infraestructura. Además, puede consultar nuestra Guía de inicio rápido de Docker para aprender a ejecutar Ultralytics en contenedores de forma inmediata.