Docker
Docker es una tecnología utilizada para facilitar y agilizar la creación, prueba y despliegue de aplicaciones.
Docker utiliza unidades denominadas contenedores que están equipadas con todos los componentes necesarios para la ejecución de aplicaciones, incluidas herramientas del sistema, tiempo de ejecución, bibliotecas y código.
Sin embargo, debes entender que Docker no es ni un LXC, ni un sistema de gestión de configuración, ni una tecnología de Plataforma como Servicio (PaaS).
Cómo funciona Docker
Docker simplemente funciona proporcionando un entorno estándar para que los desarrolladores ejecuten código. Docker es típicamente un sistema operativo diseñado para contenedores. Su mecanismo de funcionamiento es casi similar a cómo funciona la virtualización eliminando la necesidad de disponer del hardware para tener acceso a los recursos.

Docker permite que varias aplicaciones y procesos se ejecuten por separado, lo que mejora la seguridad y acelera el proceso. Docker suele instalarse en servidores independientes y proporciona a los usuarios interfaces sencillas para crear, iniciar o detener contenedores.
Por qué usar Docker
Desde su lanzamiento, Docker ha experimentado un rápido aumento de popularidad entre los desarrolladores. Hay muchas razones por las que a los desarrolladores les gusta Docker, pero las principales incluyen.
Desarrollo rápido y rentable
Esta es la razón principal por la que los desarrolladores optan por Docker. Docker elimina los inconvenientes del desarrollo tradicional, como la personalización del hardware, que requiere mucho tiempo, junto con los gastos generales masivos que vienen con el proceso de desarrollo.
Modularidad y escalabilidad
Con Docker, es posible desmontar sólo ciertas partes de una aplicación para personalizarlas o repararlas, en lugar de desmontar toda la aplicación. Los desarrolladores también pueden integrar nuevas funcionalidades en las aplicaciones, lo que aumenta la velocidad de escalabilidad.
Rollback
Docker permite a los desarrolladores volver a imágenes anteriores, lo que apoya en gran medida la metodología de desarrollo ágil.
Flexibilidad
Con Docker, es posible realizar actualizaciones durante los ciclos de lanzamiento del producto, al tiempo que se realizan los cambios necesarios en los contenedores sin ninguna lucha. También facilita la implementación de nuevos parches de seguridad en las aplicaciones utilizando el mismo proceso.