Curaduría open-source · Python-first · en español

El catálogo

Nº13 · Infraestructura

Docker

Empaqueta cualquier herramienta del stack en un contenedor reproducible.

InfraestructuraIntroData Engineer

¿Qué es?

Docker es una plataforma de contenedores: empaqueta una aplicación junto con todas sus dependencias (librerías, binarios, configuración) en una unidad portable que corre de forma idéntica en cualquier máquina. A diferencia de una máquina virtual, un contenedor comparte el kernel del sistema operativo anfitrión, por lo que es mucho más liviano y arranca en segundos.

En el trabajo de datos, esto resuelve el problema clásico de "en mi máquina funciona": si el contenedor corre localmente, corre igual en producción.

¿Para qué sirve?

  • Levantar herramientas del stack al instante. PostgreSQL, Airflow, Superset, Trino o cualquier otra herramienta del ecosistema tiene imagen oficial en Docker Hub; la tienes corriendo con un solo comando, sin instalar nada directamente en el sistema.
  • Entornos reproducibles. Un Dockerfile define exactamente qué versión de cada dependencia usa tu pipeline; cualquier miembro del equipo reconstruye el mismo entorno en minutos.
  • Despliegue consistente. La misma imagen que probaste localmente es la que se despliega en el servidor, eliminando diferencias entre entornos de desarrollo y producción.

¿Cuándo usarla / cuándo no?

Úsalo cuando:

  • Necesitas probar o integrar una herramienta del data stack (bases de datos, orquestadores, catálogos) sin contaminar tu sistema.
  • Quieres que el entorno de desarrollo sea reproducible para todo el equipo.
  • Vas a desplegar un servicio de datos y necesitas que el comportamiento sea predecible en cualquier host.

Piénsalo dos veces si:

  • Solo tienes un script trivial en Python: un entorno virtual (uv, venv) es suficiente y más simple.
  • Necesitas orquestar cargas a escala con múltiples nodos; para eso existe Kubernetes — Docker es la unidad de empaquetado, no el orquestador de producción a gran escala.

Empieza en 1 minuto

Levantar una instancia de PostgreSQL lista para pruebas:

docker run --rm \
  -e POSTGRES_PASSWORD=secreto \
  -p 5432:5432 \
  postgres:16

Conecta con cualquier cliente en localhost:5432, usuario postgres, contraseña secreto. Al detener el contenedor, se limpia solo (--rm).

Para explorar imágenes del data stack: hub.docker.com Doc oficial: docs.docker.com

Trivia rápida — pon a prueba lo que acabas de leer.

¿Qué tanto sabes de Docker?

Documentación oficial

La fuente de verdad vive ahí. Acá orientamos; la profundidad la pones tú.

Abrir documentación oficial

Qué aprender después

Ver también

Nº13 · Actualizado 2026-06-08