Docker te permite empaquetar una aplicación con todas sus dependencias en una unidad estandarizada para el desarrollo de software, además de ayudarte en el desarrollo,ejecución y administración de contenedores.
Un contenedor es envolver una pieza de software en un completo sistema de archivos que contiene todo lo que necesitas para ejecutar tu aplicación: el código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema, todo lo que tu puedas instalar en un servidor. Esto garantiza que siempre se ejecutará sin ningún problema, sin importar el entorno en el cual se esté ejecutando.
Los contenedores tienen algunas similitudes con las máquinas virtuales pero son diferentes en el enfoque arquitectónico, lo que hace a los contenedores mas portables y eficientes.
Cada máquina virtual tiene su aplicación, las bibliotecas y los binarios y un sistema operativo “invitado”. Todo esto puede ser al menos 10 Gb de almacenamiento en Disco.
Los contenedores incluyen la aplicación y todas sus dependencias, además comparten el kernel con otros contenedores. Cada contenedor se ejecuta como un proceso aislado en el espacio de usuario del sistema operativo huésped. Docker puede correr en cualquier computadora, o en cualquier infraestructura de cómputo en la nube.
A continuación mostramos en un vídeo las diferentes partes de Docker que van desde el Docker Engine y Docker Hub hasta el manejo de volúmenes en Docker. Gracias al apoyo de la Comunidad de PHP Puebla y del ponente Miguel Angel.
Fuente: Docker