Saltar a contenido

DOCKER

1. Introducción.

Docker es una plataforma de software de virtualización diseñadapara facilitar el desarrollo, envío y ejecución de aplicaciones. Su función principal es empaquetar una aplicación junto con todo lo que necesita para funcionar (código, librerías, dependencias, entorno y configuración) en una unidad estandarizada llamada contenedor.

Arregla el famoso:

🗣 "en mi máquina sí funciona"

2. Docker 🆚 Máquinas Virtuales (VM).

Ambos son herramientas de virtualización, pero operan en niveles diferentes:

diagrama

  • Capa de virtualización: Mientras que la VM virtualizaa todo el haradware y el SO (incluido el kernel), Docker virtualiza la capa de aplicaciones y reutiliza el kernel del SO del host.
  • Rendimiento y Tamaño: Las imágenes Docker son mucho más pequeñas (MB vs GB) y los contenedores se inician en milisegundos, comparado con los minuros que puede tardar una VM.
  • Compatibilidad: Docker nació para Linux, pero mediante Docker Desktop (que usa un hipervisor y una distribución ligera de Linux), es posible ejecutar contenedores de Linux en Windows y Mac.

3. Conceptos Fundamentales.

Para entender Docker, es imoprtante comprender estos términos:

  • Docker Image (Imagen): Es un "plano" (blueprint) o artefacto ejecutable que contiene todo lo necesario para ejecutar una aplicación. Incluye el código, el tiempo de ejecución (runtime) y las variables de entorno.
  • Docker Container (Contenedor): Es una instancia en ejecución de una imagen. Se pueden ejecutar múltiples contenedores a partir de una misma imagen.
  • Dockerfile: Es un archivo donde se define cómo construir una imagen.
  • Docker Registry (Registro): Un lugar de almaacenamiento para imágenes. Docker Hub es el registro público máasa grande, pero las empresas suelen usar registros privados (como AWS ECR o Azure Container Registry) para proteger su código.
  • Docker Repository (Repositorio): Está dentro de un registro. Es un espacio dedicado específicamente a las imágenes de una sola aplicación.
  • Volumes (Volúmenes): permiten persistir fuera del contenedor. Los contenedores son efímeros (pueden borrarse o reiniciarse en cualquier momento), por lo que si guardas datos dentro de ellos, se perderán. Los volúmenes solucionan esto guardando la información en el host o en ubicaciones externas.

4. Docker Registry (Registro) 🆚 Docker Repository (Repositorio).

  • Docker Registry (Registro)

    Es el servicio o plataforma que proporciona el almacenamietno para las imágenes. Se puede ver como el servidor o proveedor que aloja los datos. Ejemplos de esto son Docker hub (el registro público más grande), AWS ECR (Elastic Container Registry), Google Container Registry o Azure Container Registry (ACR).

  • Docker Repository (Repositorio)

    Se encuentra dentro de un registro. Un repositorio es un espacio dedicado específicamente a las imágenes de una sola aplicación. Por ejemplo, dentro del registro Docker Hub, puedes tener un repositorio para "Redis" y otro para "Nginx".

En resumen, mientras que el registry es el servicio global, el repository es la carpeta o colección específica dentro de ese servicio donde guardas las diferentes versiones o etiquetas (tags) de una misma aplicación.