Saltar al contenido principal

¿Que es Docker?

Es una plataforma de código abierto que permite crear, empaquetar, probar y ejecutar aplicaciones rápidamente.

Docker está desarrollada para empaquetar software en unidades estandarizadas llamadas contendores, que incluyen lo necesario para que el software se ejecute.

Usamos Docker dentro de los equipos para ayudar a los desarrolladores puedan acelerar la entrega de aplicaciones de una forma ágil y moderna entre otros beneficios.

👨‍💻 Como funciona Docker

Docker funciona de forma similar a una máquina virtual, pero elimina gran parte de las cosas que no son necesarias para ejecutar Cualquier aplicacion de software, en esté caso en Docker se busca llevar solamente las dependencias necesarias que requieren los productos para funcionar, dándonos grandes ventajas a la hora de compartir con nuestros compañeros o en otros ocaciones hasta desplegar a producción de una forma facilmente.

contenedor

⚙️ Docker Engine

Es el motor que corre detrás de Docker es el encargado de construir las imágenes, gestionar el contendor, redes, volúmenes, etc. este corre dos partes:

  • Docker demon: corre en segundo plano.
  • Docker CLI: la herramienta que usamos para interactuar con el demon.

🛠️ Cuadro de comparación

Algunas de las caracteristicas que tenemos son las siguiente:

CaracterísticaMáquina Virtual (VM)Contenedor Docker
AislamientoFuerte (SO completo por VM)Moderado (comparten el núcleo del SO)
InicioLento (minutos)Rápido (segundos)
Uso de recursosAltoBajo
PortabilidadMenorAlta
TamañoGrande (GBs)Pequeño (MBs)
DependenciasIncluye SO completoSolo las necesarias para la aplicación
RendimientoMenor eficiencia por virtualizaciónAlta eficiencia por compartir kernel
GestiónMás complejaSimplificada con herramientas Docker

😄 ¿Porque usar Docker?

  1. Nos permite crear arquitectura de micro servicios, nos permite simplificar un ambiente muy fácil.
  2. Modulación al implementar una aplicación podemos realizar reparaciones modulares de tal forma que no afecte al producto final.
  3. Creación de imagen con un control de versiones.
  4. Tamaño y eficiencia contar con un sistema fácil y rápido de empaquetar.
  5. Implementación rápida de nuevas versiones.