domingo, 16 de agosto de 2015

Comprender la Arquitectura de Docker


Docker es un proyecto de código abierto con el que fácilmente podremos crear "contenedores". Estos contenedores de Docker podríamos definirlos como máquinas virtuales ligeras, menos exigentes con los chips y memorias de los equipos donde se ejecutarán.

Docker Architecture Diagram
 

Docker utiliza una arquitectura cliente - servidor, el “Docker daemon” es el encargado de realizar el trabajo "construir, ejecutar y distribuir" los contenedores, el cliente permite interactuar con el servidor “Docker daemon”
 
El cliente y servidor se comunica vía socker o través de una API REST.
Para comprender docker, vamos a definir los tres componentes que lo conforman: 
  • Docker images.
  • Docker registries.
  • Docker containers.
Imágenes  Docker.

Las imágenes  docker son una especie de plantillas de solo lectura, las cuales contiene la información necesaria para ejecutar un contendedor. Una imagen puede tener el sistema
operativo Ubuntu, un servidor web apache con módulos de php, y una base de datos mysql.

Cada imagen inicia desde una imagen base, por ejemplo "Ubuntu image", "Fedora image". A esta imagen base se agrega otros componentes ejemplo una base de datos NoSQL "mongodb", node.js, etc.

En términos de programación son las clases.
 
Contenedor Docker. 

Un contenedor es creado a partir de una imagen, estos pueden ser ejecutados, detenidos, iniciados, eliminados.  Contiene todo lo necesario para que una aplicación pueda ejecutarse “Sistema operativo, aplicaciones, archivos, metadatos, procesos, etc.”

Cada contenedor es una plataforma aislada y segura, son autosuficientes (aunque pueden depender de otros contenedores, por ejemplo, un wordpress que necesita una base de datos mysql) no necesitando nada más que la imagen del contenedor para que funcionen los servicios que ofrece.

En términos de programación son las instancias “objetos” de las clases.
 
Registros Docker.

Los registros docker son repositorios que contienen las imágenes de los cuales se pueden descargar, agregar o actualizar. Estos permiten compartir las imágenes. Estos pueden ser públicos o privados.
 
El Registro Público de Docker es https://hub.docker.com/

0 comentarios: