Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Docker

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.

Por qué Docker es importante para la IA y el aprendizaje automático

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.

Aplicaciones en el mundo real

Docker está presente en todo el ciclo de vida de la IA, desde la experimentación inicial hasta la implementación final.

  1. Entornos de entrenamiento consistentes: un equipo de ciencia de datos puede utilizar imágenes Docker para compartir un entorno de desarrollo unificado. Por ejemplo, un investigador que trabaje en la detección de objetos puede extraer una imagen precompilada que contenga todos los controladores y bibliotecas necesarios. Esto garantiza que, cuando entrenen un modelo YOLO26, los resultados sean reproducibles por sus compañeros, independientemente de las diferencias de hardware subyacentes.
  2. Implementación de IA en el borde: En la vigilancia de ciudades inteligentes, los modelos actualizados deben enviarse a miles de dispositivos periféricos, como cámaras de tráfico o drones. Los contenedores Docker permiten a los ingenieros empaquetar una nueva versión del modelo e implementarla de forma inalámbrica. Dado que el contenedor incluye el tiempo de ejecución de la inferencia, el proceso de actualización es fluido y no interfiere con el sistema operativo central del dispositivo.

Docker frente a Kubernetes frente a máquinas virtuales

Es útil distinguir Docker de otras tecnologías relacionadas para comprender su función específica:

  • Docker frente a máquinas virtuales (VM): las VM virtualizan el hardware, lo que significa que cada VM ejecuta un sistema operativo completo (como Windows o Linux) sobre un hipervisor. Esto consume una cantidad significativa de memoria y CPU. Docker virtualiza el sistema operativo, lo que hace que los contenedores sean mucho más pequeños y rápidos que las VM.
  • Docker vs. Kubernetes: Son tecnologías complementarias, no competidoras. Docker es la herramienta utilizada para crear y ejecutar contenedores individuales. Kubernetes es una plataforma de orquestación de contenedores que gestiona clústeres de contenedores Docker, encargándose de tareas como el autoescalado, el equilibrio de carga y la autorreparación en entornos de computación en la nube a gran escala .

Ejemplo: Ejecución de inferencias en un contenedor

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.")

Integración de Docker en tu flujo de trabajo

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.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora