Title: Arquitectura de Docker
Course: 2025 - LISI - Virtualizacion 2-2 > Section: Contenedores y Docker

🧱 Unidad 3: Arquitectura de Docker

🎯 Objetivo del tema

Comprender la arquitectura interna de Docker, sus componentes principales y cómo interactúan para permitir la creación, ejecución y gestión de contenedores de forma eficiente.

🧩 ¿Qué es Docker?

Docker es una plataforma de código abierto que permite desarrollar, enviar y ejecutar aplicaciones dentro de contenedores. Los contenedores son entornos ligeros, portables y consistentes que encapsulan una aplicación y sus dependencias.

🏗️ Componentes de la Arquitectura de Docker

1. Docker Engine

Es el núcleo de Docker. Se compone de tres partes principales:

- Docker Daemon (dockerd)
Es el proceso que se ejecuta en segundo plano. Se encarga de construir, ejecutar y gestionar contenedores. Escucha peticiones de la API de Docker.
- Docker API REST
Interfaz que permite a los clientes comunicarse con el daemon. Puede ser utilizada por herramientas externas o scripts para automatizar tareas.
- Docker CLI (docker)
Es la interfaz de línea de comandos que los usuarios utilizan para interactuar con Docker. Por ejemplo:
docker run ubuntu

2. Imágenes de Docker

Las imágenes son plantillas de solo lectura que contienen el sistema de archivos y las dependencias necesarias para ejecutar una aplicación. Se construyen a partir de un archivo llamado Dockerfile.

3. Contenedores

Son instancias en ejecución de una imagen. Cada contenedor es aislado, pero comparte el kernel del sistema operativo anfitrión.

4. Docker Registries

Son repositorios donde se almacenan y distribuyen imágenes. El más conocido es Docker Hub, pero también existen registros privados.

5. Docker Compose (opcional)

Herramienta que permite definir y ejecutar aplicaciones multicontenedor usando un archivo docker-compose.yml.

🔄 Flujo de trabajo típico en Docker

1. El usuario escribe un Dockerfile.
2. Usa docker build para crear una imagen.
3. Usa docker run para iniciar un contenedor desde esa imagen.
4. Docker Daemon gestiona el contenedor.
5. El contenedor se ejecuta de forma aislada en el host.

📌 Diagrama simplificado de la arquitectura

+----------------------+
|   Docker CLI         |
+----------+-----------+
           |
           v
+----------------------+
|   Docker API REST    |
+----------+-----------+
           |
           v
+----------------------+
|   Docker Daemon      |
+----------+-----------+
           |
           v
+----------------------+
|   Contenedores       |
|   Imágenes           |
|   Volúmenes          |
+----------------------+
           |
           v
+----------------------+
|   Sistema Operativo  |
|   Kernel compartido  |
+----------------------+


📌 Conclusión

La arquitectura de Docker está diseñada para ser modular, eficiente y escalable. Gracias a su enfoque basado en contenedores, permite a los desarrolladores y administradores de sistemas trabajar con entornos consistentes, portables y rápidos, facilitando el despliegue de aplicaciones en múltiples plataformas.