DEFINICIÓN DOCKER

DEFINICIÓN DOCKER


  1. ¿Que es Docker?
  2. Arquitectura Docker.


 
1. ¿Que es Docker?

Proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software proporcionando una capa adicional de abstracción y automatización de virtualizacion de aplicaciones en múltiples SO. Con otras palabras, es un contenedor que incluye unas aplicaciones que pueden ejecutarse en cualquier máquina, independientemente del SO.

Se puede entender docker como una máquina virtual que en lugar de crear un S.O. virtual completo, permite que las aplicaciones usen el mismo kernel Linux que el sistema anfitrión en el que se ejecutan.

Utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups* y espacios de nombres(namespaces*), para permitir que dockers independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.


2. Arquitectura Docker

Arquitectura cliente-servidor, donde el cliente se comunica con el daemon* docker, que se encargar de construir, ejecutar y distribuir sus contenedores docker. Esta comunicación se realiza a través de sockets UNIX* o una interfaz de red. El cliente y daemon docker pueden ejecutarse en el mismo sistema, o puede conectar un cliente docker a un daemon docker remoto.





 


  • Daemon Docker(dockerd):  Escucha las solicitudes de la API de Docker y administra los objetos docker, como imágenes, contenedores, redes y volúmenes. Un daemon docker puede comunicarse con otros para administrar los servicios de Docker.
  •  Cliente Docker: Forma, principal, con la que muchos usuarios interactúan con Docker. Cuando el usuario ejecuta comandos docker envía estos comandos a dockerd(daemon docker), que los ejecuta. El comando docker utiliza la API de Docker.
  •  Registros Docker: Almacenan imágenes docker. Docker tiene configurado de forma predeterminada Docker Hub, un registro público en el que buscara imágenes. También puede buscar en su propio registro privado. Cuando el usuario ejecuta docker pull o docker run, las imágenes requeridas se extraen del registro que tiene configurado. Y cuando ejecuta docker push, la imágen se inserta en su registro configurado.
  • Imagen Docker: Plantilla, de solo lectura, con instrucciones para crear un contenedor docker. Es frecuente que una imagen este basada en otra, con alguna personalización. Por ejemplo, se puede crear una imagen basada en una imagen de Ubuntu, pero en el que se ha instalado y configurado un servidor web Apache.
  • Contenedor Docker: Instancia ejecutable de una imagen docker. Utilizando la API o la CLI de Docker se puede crear, iniciar, detener, mover o eliminar un contenedor. También se pueden conectar un contenedor a una o más redes, conectar entre sí dos o más contenedores, crear una nueva imagen en función del estado actual del contenedor, adjuntar almacenamiento, etc.
        Un contenedor esta aislado de otros contenedores y de la máquina anfitriona, permitiendo asi que los cambios en un contenedor no afecten al comportamiento de los demás contenedores y anfitrión. Cuando se elimina un contenedor, desaparecen todos los cambios en su estado que no se almacenan en el almacenamiento persistente.


*cgroups: Grupos de control de Linux para controlar la asignación de recursos a los procesos.
*namespaces: Característica del kernel de Linux que particiona los recursos de manera que varios conjuntos de procesos ven conjuntos de recursos diferentes.
*daemon: Proceso que se ejecuta en segundo plano, en vez de ser controlado por el usuario.


No hay comentarios:

Publicar un comentario