top of page

🐳DOCKER: #1 Introducción a Docker

  • Foto del escritor: Brayan Neciosup
    Brayan Neciosup
  • hace 3 días
  • 2 Min. de lectura

Actualizado: hace 2 días

De los conflictos de dependencias a la portabilidad real

1. El problema antes de Docker

Antes de Docker, las aplicaciones compartían:

  • Dependencias

  • Librerías

  • Versiones del lenguaje

  • Configuraciones del sistema

Esto provocaba conflictos constantes entre proyectos y entornos.

2. Primeras soluciones: Virtual Machines

Las máquinas virtuales permitieron aislar aplicaciones en sistemas operativos independientes.

Ventajas:

  • Aislamiento total

Desventajas:

  • Arranque lento

  • Alto consumo de recursos

  • Poca escalabilidad

3. Virtual Environments en Python

Para Python, la solución fue aislar dependencias mediante entornos virtuales.

Enfoque con Pip:
ree
Enfoque moderno con UV:
ree

Esto resuelve conflictos de dependencias a nivel lenguaje, pero presenta limitaciones:

  • No aísla el sistema operativo

  • Depende del entorno del host

  • No es ideal para producción

4. ¿Qué es Docker?

Docker es una plataforma que permite empaquetar una aplicación junto con:

  • Sistema base

  • Dependencias

  • Librerías

  • Configuración

Todo en una imagen, que se ejecuta como contenedor.

5. Arquitectura de Docker

ree

Los contenedores:

  • Comparten el kernel del host

  • Son livianos

  • Arrancan en segundos

6. Docker en Windows y macOS

Docker Desktop crea internamente una VM ligera con kernel Linux, debido que Docker se basa en características del kernel Linux. Aquí algunas diferencias:

  • En Linux: Docker se ejecuta directamente sobre el kernel del sistema operativo, aprovechando las características nativas del kernel Linux para la ejecución de contenedores.

  • En Windows/macOS: Docker requiere de una máquina virtual que emule un entorno Linux, permitiendo agregar una capa adicional de virtualización y, aunque Docker Desktop se encarga de todo esto automáticamente, no se obtiene el mismo rendimiento que en Linux debido a la sobrecarga de virtualización.

7. Virtual Environments vs Máquinas Virtuales vs Docker

Característica

Virtual Env (Python)

Máquina Virtual

Docker

Aislamiento de Python

Aislamiento de SO

⚠️ (parcial)

Kernel propio

Consumo de recursos

Muy bajo

Muy alto

Bajo

Velocidad de arranque

Instantáneo

Lento

Muy rápido

Reproducibilidad

Baja

Media

Alta

Ideal para producción

✍️🐳 Conclusión

Los virtual environments siguen siendo útiles para desarrollo local, pero Docker es la herramienta que permite portabilidad real, despliegue consistente y escalabilidad. Docker no reemplaza a Python, ni a uv, ni a venv, los complementa y los lleva a un nivel profesional.

Comentarios


IngenieriaDatos.jpg

Tomar decisiones sin datos es como navegar en la oscuridad...

En la era digital, los datos son el activo más valioso de las empresas; su correcta recopilación, análisis y aplicación estratégica son clave para impulsar la toma de decisiones informada, la innovación y el éxito empresarial

  • GitHub
  • LinkedIn
  • Youtube

Copyrights © 2025 Brayan Neciosup Bolaños All rights reserved.

bottom of page