Skip to main content

dock & roll: conociendo docker

Docker

Haciendo una analogía con el mundo de la moda, y no solo por el nombre, una de las tendencias que en IT esta pegando fuerte y que ya es un basic es Docker. En esta entrada vamos a ver en que consiste, para que podemos usarlo y pondremos los cimientos para ver más adelante como empezar a utilizarlo.

¿Qué es Docker?

En la web del proyecto tenemos una definición muy clara:

  • Docker es una plataforma abierta para desarrolladores y administradores de sistemas que permite construir, desplegar y ejecutar aplicaciones distribuidas. Consiste en el motor Docker, un runtime portable y ligero, una herramienta de empaquetado y Docker Hub, un servicio en la nube para compartir aplicaciones y automatizar flujos de trabajo.

  • Docker permite ensamblar aplicaciones rápidamente desde los componentes que las constituyen y elimina los problemas para el paso de las mismas entre los entornos de desarrollo, QA y producción. Como resultado de esto, desde sistemas se pueden desplegar las aplicaciones de forma más rápida al poder ejecutarlas, sin modificar, en equipos portátiles, máquinas virtuales, centros de datos y en la nube.

    En resumen, Docker proporciona una plataforma de virtualización ligera basada en contenedores con los flujos y las herramientas necesarias para gestionar y empaquetar aplicaciones que se pueden desplegar en múltiples entornos de manera rápida y sencilla.

¿En qué se diferencia de una máquina virtual?

virtualización versus docker

Una máquina virtual (VM) contiene el sistema operativo completo sobre el que se ejecutan las aplicaciones corriendo sobre un hipervisor que se ejecuta el sistema operativo del servidor anfitrión.

Docker, al contrario, proporciona una parte aislada del servidor anfitrión consistente en el kernel (sistema operativo) así como los binarios y librerías que sean apropiadas (los contenedores pueden compartir binarios y librerías si es posible).

Exponiéndolo de manera muy simplificada, si el servidor se apoya Red Hat Enterprise Linux como sistema operativo y tiene un contenedor Docker basado en Ubuntu Linux, el contenedor incorporará las partes que hacen diferente a Ubuntu Linux de Red Hat Enterprise Linux.

Arquitectura de Docker

Docker presenta una arquitectura cliente-servidor. El cliente Docker (interfaz de usuario con el demonio Docker) se comunica (vía SOCKETS o RESTful API) con el demonio Docker que es el que se encarga de la construcción, ejecución y distribución de los contenedores.

arquitectura de docker

Los tres componentes más importantes de Docker son:

  • Imágenes: Es el componente "constructor". Las imágenes son plantillas utilizadas para crear los contenedores.
  • Contenedores: Es el componente "ejecutor". Podemos imaginarlo como un directorio, aislado y seguro, que contiene todo lo necesario para que una aplicación funcione.
  • Registro: Es el componente "distribuidor". Es el almacén, público y/o privado, donde se guardan las imágenes.

Funcionamiento de Docker

funcionamiento de docker

El flujo de trabajo con Docker, se puede resumir en tres pasos:

  1. Construir imágenes (build) que alojen las aplicaciones.
  2. Crear (create) los contenedores a partir de las imágenes para ejecutar las aplicaciones.
  3. Compartir las imágenes en el registro (propio y/o público).

A continuación...

Una vez superada la parte teórica, en el siguiente post veremos de forma más practica como utilizar Docker. Empezando por su instalación, para pasar a ver como se trabaja con el y finalmente veremos unos ejemplos de uso.

Comentarios

Comments powered by Disqus