Saltar al contenido principal
Página

Tema 1.1 - ¿Que es Docker?


Es una plataforma de software para la contenerización que permite que una aplicación y sus dependencias sean empaquetadas en contenedores.

Docker posee 3 elementos principales:

1.     Imágenes: Son el componente de compilación de Docker y son las plantillas de solo lectura que definen un sistema operativo de aplicación.

2.     Contenedores: Son el componente de ejecución de Docker que son creados a partir de imágenes.

3.     Registro: Es el componente de distribución de Docker, donde las imágenes son almacenadas, compartidas y manejadas.


¿Qué es un contenedor?

Este concepto ya es antiguo, y viene de Linux, pero por hacerte un símil con el mundo real, imagina un contenedor de esos que suelen llevar los barcos de mercancías, que contiene distintos productos.



Ahora, en el contexto de Docker un contenedor contiene:


• Un sistema operativo
• El Software construido por nosotros
• Las dependencias para correr ese software
• Variables de ambiente
• Y más …

 




¿Para qué se usa?

La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo. Docker es una herramienta diseñada para beneficiar tanto a desarrolladores, testers, como administradores de sistemas.

En el caso de los desarrolladores, el uso de Docker hace que puedan centrarse en desarrollar su código sin preocuparse de si dicho código funcionará en la máquina en la que se ejecutará.

Por eso Docker también es muy bueno para el testing, para tener entornos de pruebas. Por un lado, es muy sencillo crear y borrar un contenedor, además de que son muy ligeros (más que una máquina virtual), por lo que se pueden ejecutar varios contenedores en una misma máquina.

¿En qué se diferencia Docker de la virtualización tradicional?


En el gráfico, resaltados en color naranja, se listan los componentes que se usan para ejecutar una aplicación tanto en máquina virtual como en Docker; cuando se utilizan máquinas virtuales, es necesario virtualizar todo el sistema operativo, con el gasto de recursos que eso implica, minimizando la RAM, disco y procesador que podrá usar la aplicación en sí, en cambio, utilizando Docker, la cantidad de recursos para cada aplicación es mayor al usar directamente los binarios y librerías para ejecutar la aplicación dentro de una imagen.

En ambos casos, las aplicaciones que se ejecuten dentro de la máquina virtual o de la instancia de Docker, están aisladas del sistema operativo anfitrión, pudiendo ejecutarse tantas máquinas virtuales/instancias de contenedores como nos permita nuestro hardware. En el caso de Docker, al usarse menos recursos, es posible tener un mejor rendimiento de aplicaciones por servidor que las máquinas virtuales.


Docker vs Máquinas Virtuales

  •  Se pueden utilizar incluso sobre máquinas virtuales
  •  Ayudan para que el software se vuelva más portable
  •  Realmente es fácil de implementar (Pero se debe saber un poco de Linux)
  •  Permiten aprovechar toda la infraestructura disponible
  •  Permiten escalar horizontalmente
  •  Estandarización
  •  Reuso
  •  Versionable. Se puede ver como Infraestructura como código.
  •  La misma imagen puede ser utilizada en los stages (desarrollo, calidad y producción)
  •  Agnóstico
  •  Aislamiento


Arquitectura de Docker




Para que estos tres componentes trabajen juntos, el Docker Daemon (o Docker Engine) se ejecuta en una máquina host y hace el trabajo pesado de construir, correr y distribuir contenedores de Docker. El cliente es un binario Docker que acepta comandos del usuario y se comunica con el Motor.

El cliente se comunica con el motor que está ubicado en el mismo host o en un host diferente. El cliente utiliza el comando de extracción para solicitar al motor que extraiga una imagen del registro.

El motor luego descarga la imagen de Docker Store, o el registro que esté configurado. Se pueden descargar varias imágenes del registro e instalarlas en el motor.






Última modificación: lunes, 11 de mayo de 2020, 21:30