Saltar al contenido principal

🐳 Qué es Docker

Antes de aprender a utilizar Docker es importante entender por qué existe.

Docker no nació para crear contenedores porque sí.

Nació para solucionar uno de los problemas más habituales en el desarrollo de software:

“En mi máquina funciona.”

Seguramente hayas vivido esta situación alguna vez.

Desarrollas una aplicación, la pruebas en tu ordenador y todo funciona perfectamente. Subes el proyecto al repositorio o se lo envías a un compañero… y, cuando intenta ejecutarlo, aparecen errores que tú nunca habías visto.

🤔 ¿Por qué ocurre este problema?

Aunque el código sea exactamente el mismo, el entorno donde se ejecuta puede ser completamente diferente.

Por ejemplo, dos desarrolladores pueden tener:

  • Versiones distintas de Node.js
  • Sistemas operativos diferentes
  • Bibliotecas del sistema distintas
  • Versiones diferentes de bases de datos
  • Variables de entorno configuradas de otra manera
  • Dependencias incompatibles

Todo esto provoca que una aplicación funcione correctamente en un equipo y falle en otro.

📦 La solución que propone Docker

Docker elimina este problema encapsulando la aplicación junto con todo lo necesario para ejecutarla.

No solamente incluye el código.

También empaqueta:

  • Las dependencias
  • La configuración
  • Las bibliotecas necesarias
  • El entorno de ejecución

Todo ello queda contenido dentro de una unidad denominada contenedor.

🚀 Un contenedor funciona igual en cualquier lugar

Una vez creada la aplicación dentro de un contenedor, ese mismo contenedor puede ejecutarse exactamente igual en diferentes entornos:

  • Tu ordenador
  • El ordenador de un compañero
  • Un servidor
  • La nube
  • Cualquier máquina compatible con Docker

Ese es el verdadero valor de Docker:

El entorno viaja junto con la aplicación.

📦 ¿Por qué se llaman contenedores?

Para entender el concepto, el vídeo utiliza una analogía muy sencilla.

Piensa en los contenedores que transportan mercancías en los barcos.

Desde fuera todos tienen el mismo formato.

No importa si dentro llevan ropa, coches o alimentos.

Las grúas, barcos, camiones y puertos saben moverlos porque todos cumplen el mismo estándar.

Con Docker ocurre exactamente lo mismo.

El exterior del contenedor siempre es igual, mientras que el contenido puede ser completamente diferente según la aplicación que lleve dentro.

🚢 La analogía del barco

Por eso Docker utiliza la palabra contenedor.

Cada contenedor incluye todo lo necesario para que la aplicación funcione correctamente.

Quien ejecuta ese contenedor no necesita preocuparse por cómo está construido por dentro.

Simplemente lo ejecuta y funciona igual en cualquier entorno compatible.

Incluso el logotipo de Docker representa esta idea:

Un barco transportando contenedores estandarizados.

🎯 La idea más importante de Docker

Antes de aprender comandos, imágenes o Dockerfiles, conviene quedarse con un único concepto:

Docker existe para que una aplicación pueda ejecutarse de la misma forma independientemente del entorno donde se despliegue.

Todo lo demás que aprenderás durante el curso parte de esta idea fundamental.

📌 Ideas clave de esta clase

Quédate con estos conceptos:

  • Docker resuelve el clásico problema de “en mi máquina funciona”
  • Los errores suelen deberse a diferencias entre entornos de desarrollo
  • Docker empaqueta la aplicación junto con todas sus dependencias
  • Ese paquete recibe el nombre de contenedor
  • Un contenedor se ejecuta igual en cualquier máquina compatible
  • La analogía de los contenedores marítimos explica perfectamente su funcionamiento
  • Todo el ecosistema Docker gira alrededor de la portabilidad y la consistencia

🚀 Lo siguiente: instalar Docker

Ahora que entiendes cuál es el problema que Docker resuelve y cómo lo hace mediante contenedores, el siguiente paso será instalar Docker y comenzar a crear tus primeros contenedores para trabajar siempre sobre entornos reproducibles.


💡 Tip: Siempre que escuches a alguien decir “en mi máquina funciona”, probablemente estás viendo exactamente el tipo de problema que Docker fue diseñado para resolver.