He aprovechado las navidades para verme los dos primeros vídeos super didácticos que Docker tiene en su web. Como es un tema interesante, he decidido a hacerme un pequeño resumen.
1. Introducción a Docker
1.1. ¿Qué es docker?
«Docker es una plataforma para desarrollar, enviar y correr aplicaciones usando tecnología de virtualización de containers».
1.2. Ok… ¿Qué es un container?
«La virtualización basada en containers usa el kernel del sistema operativo del host para correr múltiples instancias guest» (llamadas containers). Cada container tiene su propio:
- root filesystem
- procesos
- memoria
- devices
- puertos de red
Si estás pensando en que suena a una máquina virtual, en efecto, los containers serían la evolución de las máquinas virtuales, pues a diferencia de éstas, los containers no necesitan un sistema operativo guest instalado en cada máquina virtual, ni un hypervisor, con el consiguiente ahorro descomunal de recursos. Aquí una comparativa entre un servidor físico que aloja máquinas virtuales (izquierda) y otro que aloja containers (derecha) sacada directamente de los vídeos de Docker:
Así pues, los containers usan el kernel del sistema operativo para crear entornos aislados en los que correr una aplicación y todas las librerías de las que depende.