Propósito
Consistencia entre entornos
Docker estandariza el empaquetado, la distribución y la ejecución de aplicaciones mediante contenedores. Esta ficha presenta qué es Docker, qué no es, y cómo se organiza internamente su arquitectura.
Concepto 1 de 4
Plataforma open source que permite ejecutar una misma aplicación de forma consistente entre entornos de desarrollo, pruebas y producción.
Docker estandariza la unidad de despliegue en software mediante el contenedor. Encapsula la aplicación con sus dependencias y configuración necesaria, mitigando el problema clásico de “en mi máquina funciona”.
Compara la misma aplicación desplegada en tres entornos, sin contenedor y con contenedor.
Desarrollo
✓ Funciona
Pruebas
✗ Falla
Producción
✗ Falla
Cada entorno instala sus propias versiones. La aplicación funciona en la máquina del desarrollador, pero falla en pruebas y producción.
Versiones ilustrativas.
Consistencia entre entornos
Contenedores con aislamiento a nivel de kernel
Open source (componentes Moby)
Concepto 2 de 4
Docker es una implementación del modelo de contenedores, no la única. La interoperabilidad existe gracias a estándares abiertos.
Concepto general. Un proceso o conjunto de procesos aislados que comparten el kernel del host.
Una plataforma específica que implementa ese concepto. Estandariza la unidad de despliegue apoyándose en OCI, sin depender de los detalles internos con los que la aplicación fue construida.
Concepto 3 de 4
La Open Container Initiative define los estándares que permiten que imágenes y runtimes de distintas herramientas sean compatibles entre sí.
Combina una herramienta de construcción con una de ejecución. La imagen OCI viaja de una a otra sin cambios.
Construcción
Ejecución
✓ Compatible
Docker construye con BuildKit y produce una imagen compatible con OCI.
containerd descarga la imagen del registro, la desempaqueta y delega en runc la creación del contenedor.
Combinaciones probadas: 1 de 6 · todas compatibles
Concepto 4 de 4
Los componentes internos que colaboran para construir y ejecutar contenedores, organizados por capas de responsabilidad.
Explora cada componente o sigue el recorrido de una orden. docker run atraviesa la pila de ejecución; docker build se desvía hacia BuildKit.
Ejecución
Construcción
Docker CLI
Interfaz de línea de comandos utilizada por el desarrollador. Envía instrucciones al daemon mediante la API.
Interfaz de línea de comandos utilizada por el desarrollador. Envía instrucciones al daemon mediante la API. Comando docker.
Expone la API y orquesta las operaciones principales. Gestiona builds, ejecuciones, pull/push, redes y volúmenes. Proceso dockerd.
Gestiona el ciclo de vida de los contenedores. Se encarga de descargar imágenes, crear snapshots y delegar la ejecución al runtime.
Crea el contenedor a nivel de kernel utilizando namespaces, cgroups y mounts. Es el componente más cercano al sistema operativo.
Motor de construcción de imágenes. Opera en paralelo con el flujo de ejecución. Optimiza mediante caché eficiente y paralelismo de etapas.
Autoevaluación
Cuatro preguntas rápidas para verificar las ideas clave de la lectura. Cada respuesta incluye una explicación.
0/4 respuestas correctas