# 1.4.- Arquitectura de Docker.

La arquitectura de Docker se basa en un conjunto de componentes y herramientas que trabajan juntos para facilitar el empaquetado, la distribución y la ejecución de aplicaciones en contenedores. Esto permite a los desarrolladores y administradores de sistemas aprovechar la portabilidad, la eficiencia y el aislamiento de los contenedores para mejorar la calidad y la estabilidad de sus aplicaciones. A continuación se muestran de manera resumida los elementos que intervienen en esta tecnología:

- Docker Engine: Es el núcleo de la plataforma Docker y es responsable de crear, ejecutar y gestionar contenedores. Utiliza la virtualización a nivel de sistema operativo para aislar y ejecutar múltiples contenedores en una sola máquina.
- Imagenes: Las imágenes son plantillas inmutables que contienen la aplicación y todas sus dependencias, así como información sobre cómo debe ejecutarse la aplicación en un contenedor. Las imágenes se crean a partir de archivos de texto llamados Dockerfiles, que especifican las instrucciones y la configuración necesarias para construir una imagen.
- Contenedores: Un contenedor es una instancia en ejecución de una imagen. Los contenedores son ligeros y portátiles, ya que comparten el kernel del sistema operativo y solo incluyen las dependencias necesarias de la aplicación. Los contenedores se aíslan entre sí y del sistema host utilizando características del kernel de Linux, como namespaces y cgroups.
- Docker Hub y Registry: Docker Hub es un repositorio en línea donde los usuarios pueden compartir y descargar imágenes de contenedores. También es posible configurar registros privados para almacenar y distribuir imágenes dentro de una organización. Los usuarios pueden buscar imágenes, descargarlas (pull) y cargarlas (push) al registro.
- Docker Compose: Es una herramienta de Docker que permite definir y gestionar aplicaciones de varios contenedores utilizando archivos de configuración en formato YAML. Docker Compose facilita la creación, configuración y conexión de múltiples contenedores en una aplicación.
- Docker Swarm y Kubernetes: Docker Swarm y Kubernetes son sistemas de orquestación de contenedores que permiten gestionar, escalar y mantener aplicaciones de contenedores en clústeres de múltiples máquinas. Ambos sistemas facilitan la implementación y el escalado automático de aplicaciones basadas en contenedores en entornos distribuidos. Nota: Debemos decir que Docker Swarm y Kubernetes no son parte de la arquitectura básica de Docker, aunque si una herramienta muy útil para el manejo de múltiples contenedores y la generación de microservicios.

docker.com. Arquitectura de Docker (Todos los derechos reservados)

Es una característica de aislamiento de recursos del kernel de Linux. Nos permiten realizar visualizaciones restringidas de los recursos. Cuando ejecutamos un contenedor, Docker crea un conjunto de namespaces para ese contenedor. • Process trees (PID namespace) • Mounts (MNT namespace) • Network (NET namespace) • Unix Timesharing System (UTS namespace) • Inter Process Communication (IPC Namespace)

Es una característica del kernel de Linux que permite limitar y aislar recursos (CPU, memoria, disco I/O, red, etc.) utilizados por un grupo de procesos.

YAML es un acrónimo que significa "Yet Another Markup Language". Es un lenguaje de marcado ligeramente estructurado que se utiliza para representar datos en un formato legible y fácil de leer para las personas. YAML es muy similar a otros lenguajes de marcado como XML y JSON, pero se diferencia en que es más simple y legible para las personas. A diferencia de otros lenguajes de marcado, YAML no utiliza etiquetas o llaves para delimitar la estructura de los datos, sino que utiliza indentación y signos de puntuación para definir la estructura de los datos.

Kubernetes es una plataforma de código abierto extremadamente popular para la orquestación de contenedores. Su adopción puede aportar numerosos beneficios, como la automatización de la implementación, escalado y gestión de aplicaciones en contenedores, lo que facilita el manejo de cargas de trabajo distribuidas y resilientes.

Aquí tienes una lista de recursos gratuitos que te ayudarán a entender y aprender más sobre Kubernetes:

- Documentación oficial de Kubernetes: La documentación oficial es siempre un excelente punto de partida. Proporciona guías, tutoriales y referencias para todos los niveles. Puedes encontrarla en la web oficial de Kubernetes.
- Kubernetes Basics Interactive Tutorial: También en la página oficial de Kubernetes, este tutorial interactivo gratuito te permite probar Kubernetes en tu navegador. Es una excelente manera de obtener una experiencia práctica con Kubernetes sin necesidad de configurar tu propio entorno de prueba. Puedes acceder al tutorial aquí.
- Canal de YouTube de Kubernetes: El canal oficial de Kubernetes en YouTube ofrece una variedad de contenido, desde conferencias y tutoriales hasta demostraciones y charlas técnicas. Es un recurso fantástico para aprender de los expertos en Kubernetes. Puedes visitar el canal aquí.
- Play with Kubernetes: Es una plataforma en línea gratuita que proporciona un entorno de Kubernetes preconfigurado para aprender y experimentar. Puedes acceder a la plataforma aquí.
  Recuerda, la mejor manera de aprender Kubernetes es practicando. Aprovecha estos recursos y experimenta por ti mismo para familiarizarte con el sistema.

# Autoevaluación

# Pregunta 1

Docker Swarm y Kubernetes son componentes de la arquitectura básica de Docker y esencialmente realizan las mismas funciones.

Verdadero Falso

# Retroalimentación

Falso

Docker Swarm y Kubernetes no son parte de la arquitectura básica de Docker. Son sistemas de orquestación de contenedores que se pueden usar con Docker, pero no son componentes intrínsecos de Docker. Además, aunque ambos son sistemas de orquestación, tienen diferencias significativas en términos de funcionalidad, diseño y manejo.

Creado con eXeLearning (Ventana nueva)