1. introducción

Docker es una plataforma abierta para desarrollar, enviar y ejecutar aplicaciones. Docker le permite separar sus aplicaciones de su infraestructura para que pueda entregar software rápidamente. Con Docker, puede administrar su infraestructura de la misma manera que administra sus aplicaciones. Al aprovechar las metodologías de Docker para enviar, probar e implementar el código rápidamente, puede reducir significativamente la demora entre escribir el código y ejecutarlo en producción.

Docker se basa en "imágenes" que empaquetan aplicaciones. Cuando se ejecuta una imagen se crea un "contenedor".

Contenedores vs. Máquinas virtuales


 Docker containerized appliction blue border 2 Container vm whatcontainer 2


Los contenedores son una abstracción en la capa de la aplicación que empaqueta el código y las dependencias juntos. Varios contenedores pueden ejecutarse en la misma máquina y compartir el kernel del sistema operativo con otros contenedores, cada uno ejecutándose como procesos aislados en el espacio del usuario. Los contenedores ocupan menos espacio que las máquinas virtuales (las imágenes de contenedores suelen tener un tamaño de decenas de MB), pueden manejar más aplicaciones y requieren menos máquinas virtuales y sistemas operativos.

Las máquinas virtuales (VM) son una abstracción del hardware físico que convierte un servidor en muchos servidores. El hipervisor permite que varias máquinas virtuales se ejecuten en una sola máquina. Cada máquina virtual incluye una copia completa de un sistema operativo, la aplicación, los archivos binarios y las bibliotecas necesarios, lo que ocupa decenas de GB. Las máquinas virtuales también pueden tardar en arrancar.

¿Por qué Docker (resumen)?

  • más que solo entornos virtuales
  • entornos aislados para todas las dependencias
  • variedad de servicios
  • fáciles de desplegar
  • mismo entorno para todos los desarrolladores
  • se puede elegir la versión de python
  • etc