Familiaricémonos con la arquitectura de Docker y sus componentes esenciales.
Supongo que tiene una comprensión básica de Docker. Si no, puede consultar este artículo anterior.
Creo que comprende la importancia de Docker en DevOps. Ahora, detrás de esta fantástica herramienta, tiene que haber una arquitectura sorprendente y bien pensada. ¿no es así?
Pero antes de hablar de eso, permítanme mostrar los sistemas de virtualización anteriores y actuales.
Tabla de contenido
Virtualización tradicional frente a virtualización de nueva generación
Anteriormente, solíamos crear máquinas virtuales, y cada VM tenía un sistema operativo que ocupaba mucho espacio y lo hacía pesado.
Ahora, en el caso del contenedor docker, tiene un solo sistema operativo y los recursos se comparten entre los contenedores. Por lo tanto, es liviano y arranca en segundos.
Arquitectura acoplable
A continuación se muestra el diagrama simple de una arquitectura Docker.
Déjame explicarte los componentes de una arquitectura docker.
Motor acoplable
Es la parte central de todo el sistema Docker. Docker Engine es una aplicación que sigue una arquitectura cliente-servidor. Se instala en la máquina host. Hay tres componentes en Docker Engine:
- Servidor: Es el demonio docker llamado dockerd. Puede crear y administrar imágenes acoplables. Contenedores, redes, etc.
- Rest API: se utiliza para instruir al demonio docker qué hacer.
- Interfaz de línea de comandos (CLI): es un cliente que se utiliza para ingresar comandos de la ventana acoplable.
Cliente acoplable
Los usuarios de Docker pueden interactuar con Docker a través de un cliente. Cuando se ejecuta cualquier comando docker, el cliente lo envía al daemon dockerd, que lo lleva a cabo. Los comandos de Docker utilizan la API de Docker. El cliente Docker puede comunicarse con más de un daemon.
Registros acoplables
Es la ubicación donde se almacenan las imágenes de Docker. Puede ser un registro docker público o un registro docker privado. Docker Hub es el lugar por defecto de las imágenes docker, el registro público de sus tiendas. También puede crear y ejecutar su propio registro privado.
Cuando ejecuta los comandos docker pull o docker run, la imagen de docker requerida se extrae del registro configurado. Cuando ejecuta el comando push de la ventana acoplable, la imagen de la ventana acoplable se almacena en el registro configurado.
Objetos acoplables
Cuando trabaja con Docker, utiliza imágenes, contenedores, volúmenes, redes; todos estos son objetos Docker.
Imágenes
Las imágenes de Docker son plantillas de solo lectura con instrucciones para crear un contenedor de Docker. La imagen de Docker se puede extraer de un concentrador de Docker y usar tal cual, o puede agregar instrucciones adicionales a la imagen base y crear una imagen de Docker nueva y modificada. Puede crear sus propias imágenes acoplables también utilizando un archivo acoplable. Cree un dockerfile con todas las instrucciones para crear un contenedor y ejecútelo; creará su imagen acoplable personalizada.
La imagen de Docker tiene una capa base que es de solo lectura y la capa superior se puede escribir. Cuando edita un dockerfile y lo reconstruye, solo la parte modificada se reconstruye en la capa superior.
Contenedores
Después de ejecutar una imagen acoplable, se crea un contenedor acoplable. Todas las aplicaciones y su entorno se ejecutan dentro de este contenedor. Puede usar la API o la CLI de Docker para iniciar, detener y eliminar un contenedor de Docker.
A continuación se muestra un comando de muestra para ejecutar un contenedor docker de ubuntu:
docker run -i -t ubuntu /bin/bash
Volúmenes
Los datos persistentes generados por Docker y utilizados por los contenedores de Docker se almacenan en Volúmenes. Están completamente administrados por Docker a través de Docker CLI o Docker API. Los volúmenes funcionan en contenedores de Windows y Linux. En lugar de conservar los datos en la capa de escritura de un contenedor, siempre es una buena opción usar volúmenes para ello. El contenido del volumen existe fuera del ciclo de vida de un contenedor, por lo que usar el volumen no aumenta el tamaño de un contenedor.
Puede usar el indicador -v o –mount para iniciar un contenedor con un volumen. En este comando de muestra, está utilizando el volumen geekvolume con el contenedor kirukiru.es.
docker run -d --name kirukiru.es -v geekvolume:/app nginx:latest
Redes
La red Docker es un pasaje a través del cual se comunican todos los contenedores aislados. Hay principalmente cinco controladores de red en Docker:
Conclusión
Espero que esto le dé una idea sobre la arquitectura de Docker y sus componentes esenciales. Navegue por Docker para obtener más información y, si está interesado en recibir capacitación práctica, consulte esto Curso Docker Docker.
¿Te gustó leer el artículo? ¿Qué tal compartir con el mundo?