Sabemos que hoy en día la tecnología avanza a un ritmo muy acelerado y transformarnos digitalmente, sin duda debe ser nuestra principal prioridad, es por ello, la importancia de las nuevas aplicaciones que ayudan a realizar las actividades con mayor facilidad, rapidez y exactitud, además que  las aplicaciones solo requieren de librerías que proporciona el sistema operativo y no debe importar si es un Linux, Windows, IOS, Android, etc.

La demanda de nuevos sistemas y sobre todo de nuevos desarrollos de aplicaciones es cada vez más alta, por esta razón, para los desarrolladores es muy importante crear aplicaciones en cualquier plataforma, sin importar el idioma en el que este esté creado y mucho menos importante el servidor en el que este se ejecute. Empaquetar la aplicación y ejecutarla en un entorno multiplataforma hace que esta pueda inclusive ser ejecutada en portátiles u otros equipos de cómputo, llevarla de una plataforma a otra es la principal importancia para seguir construyendo la aplicación, estas son las facilidades que nos brinda Docker.

Docker se basa en contenedores, es decir, la aplicación se empaqueta en un contenedor y este tiene todo lo necesario para el despliegue de la aplicación, sólo ocupa un poco de espacio del sistema operativo y la ventaja del contenedor es que los procesos se ejecutan aislados del resto del sistema. En Docker, los contenedores que se ejecutan comparten el  kernel del Sistema Operativo.

A diferencia de Docker, las máquinas virtuales para su creación requieren de la instalación de un Hypervisor que ayuda a hacer la abstracción de los recursos informáticos (CPU, RAM, Disco y Red) que nos proporciona el hardware y el sistema operativo, estos recursos se virtualizan para usarlos posteriormente al crear una máquina virtual, instalando un sistema operativo y asignando los recursos que dicha máquina requiera, posteriormente a ello, se procede a instalar la aplicación sobre cada máquina virtual creada, por lo tanto este proceso tiene su penalización en recursos al pasar por varias capas.

En pocas palabras si vamos a instalar múltiples aplicaciones que requieran las mismas librerías, sin duda, es mucho más fácil obtenerlas de un solo sistema operativo que instalar un sistema operativo por cada aplicación, por lo que un contenedor es más eficiente que una máquina virtual, además que una máquina virtual no se puede ejecutar en cualquier plataforma sin realizar una conversión o proceso de migración de un hypervisor a otro.