9

¿Qué es Docker? ¿Que son los contenedores? y ¿Por que no usar VMs?

Docker es una plataforma abierta para que desarrolladores y administradores de sistemas desarrollen, envíen y ejecuten aplicaciones distribuidas, ya sea en computadoras portátiles, maquinas virtuales de centros de datos o en la nube.

Docker empaqueta software en “contenedores” que incluyen en ellos todo lo necesario para que dicho software se ejecute, incluidas librerías. Con Docker se puede implementar y ajustar la escala de aplicaciones de una forma rápida en cualquier entorno con la garantía de que el código se ejecutará.

A primera vista se piensa en Docker como una especie de máquina virtual “liviana”, pero la verdad no lo es. En Docker no existe un hypervisor que virtualice hardware sobre el cual corra un sistema operativo completo. En Docker lo que se hace es usar las funcionalidades del Kernel para encapsular un sistema, de esta forma el proyecto que corre dentro de el no tendrá conocimiento que está en un contenedor. Los contenedores se encuentran aislados entre sí y se comportaran como máquinas independientes.

Iniciar un contenedor no tiene un gran impacto a diferencia de iniciar una máquina virtual ya que no tiene que iniciar un sistema operativo completo (desde cero). Gracias al uso de contenedores la demanda de recursos baja limitándose sólo al consumo de la aplicación que contenga. Un contenedor inicia en milisegundos.

Pero y ¿que son los contenedores?

Anteriormente hablamos de manera de introducción sobre los contenedores pero ahora definamos en sí este concepto, Docker trabaja con algo que se llama “contenedores de Linux” estos son un conjunto de tecnologías que juntas forman un contenedor (de Docker), este conjunto de tecnologías se llaman:

  • Namespaces: Permite a la aplicación que corre en un contenedor de Docker tener una vista de los recursos del sistema operativo.
  • Cgroups: Permite limitar y medir los recursos que se encuentran disponibles en el sistema operativo.
  • Chroot: Permite tener en el contenedor una vista de un sistema “falso” para el mismo, es decir, crea su propio entorno de ejecución con su propio root y home.

Algunas de las características más notables de un contenedor son:

  • Los contenedores son más livianos (ya que trabajan directamente sobre el Kernel) que las maquinas virtuales.
  • No es necesario instalar un sistema operativo por contenedor.
  • Menor uso de los recursos de la máquina.
  • Mayor cantidad de contenedores por equipo físico.
  • Mejor portabilidad.

Realicé un resumen del curso de Docker, aquí puedes verlo.

Escribe tu comentario
+ 2
Ordenar por:
4
3929Puntos
6 años

Apenas comenzaré a usar Docker y ya siento que lo amo

2
80536Puntos
6 años

Excelente artículo. Gracias, no tenia ni idea de lo que es docker y eso que trabajo con Linux desde hace años, definitivamente con ustedes cada día se aprende algo nuevo

1
15790Puntos
3 años

Muchas gracias por tu aporte! :gre

1
7266Puntos
4 años

Muy pertinente y compacta la info! Gracias!