¿Qué problema resuelve Docker (no los contenedores) exactamente?

Primero vino el sistema operativo. Permitió que el software compartiera hardware. A pesar de los mejores esfuerzos de los diseñadores, los sistemas operativos no aislaron suficientemente a los usuarios, las aplicaciones y los procesos entre sí. Intentar colocar una nueva aplicación en un sistema operativo fue una trampa total, ya que el estado del sistema operativo podría ser cualquier cosa, dependiendo de lo que se instaló o de qué hardware vivía debajo.

Ingrese a la virtualización a nivel del sistema operativo. Usando un hipervisor, el hardware físico podría representarse como una abstracción del hardware en el que podría instalar múltiples sistemas operativos independientes en la misma máquina. Ahora puede colocar una imagen de SO preconfigurada en la parte superior de un hipervisor sin ninguna preocupación. Este proceso fue bastante intensivo en recursos, a pesar de las toneladas de trucos geniales para compartir memoria y recursos.

Docker actúa como una plataforma de virtualización ligera que le permite beneficiarse de la virtualización a nivel del sistema operativo sin la sobrecarga de ejecutar múltiples sistemas operativos paralelos. Le permite colocar “contenedores” listos para ejecutar en CUALQUIER entorno de hardware que admita instancias de Docker. Hace que la implementación de aplicaciones y el escalado sean más fáciles.