Arquitectura Docker
Docker sigue una arquitectura cliente-servidor. Los componentes clave de la arquitectura Docker incluyen:
Docker Client: El cliente Docker (Docker Client) es la interfaz principal a través de la cual los usuarios interactúan con Docker. Los usuarios pueden emitir comandos al cliente, que se comunica con el servidor Docker para llevar a cabo tareas como la creación de imágenes, la creación de contenedores y la gestión de recursos Docker.
Servidor Docker (Docker Daemon): El servidor Docker, a menudo denominado Docker Daemon, es responsable de gestionar objetos Docker como contenedores, imágenes, volúmenes y redes. Escucha las peticiones de la API Docker del cliente Docker y realiza las acciones solicitadas.
Imágenes Docker: Las imágenes Docker son los bloques de construcción de los contenedores. Son plantillas de sólo lectura que contienen el código de la aplicación, las bibliotecas y las dependencias necesarias para ejecutar una aplicación específica. Las imágenes suelen crearse a partir de un archivo Dockerfile y pueden almacenarse en un registro Docker.
Contenedor Docker: Un contenedor Docker es una instancia en ejecución de una imagen Docker. Los contenedores están aislados y comparten el núcleo del sistema operativo anfitrión, pero tienen su propio sistema de archivos y procesos. Este aislamiento permite que varios contenedores se ejecuten en el mismo host sin interferir entre sí.
Registro Docker: Los registros Docker son repositorios de imágenes Docker. El Docker Hub es un registro público donde se puede encontrar una amplia colección de imágenes Docker. Las organizaciones suelen crear registros privados para almacenar y distribuir sus imágenes personalizadas de forma segura.
Volúmenes Docker: Los volúmenes Docker se utilizan para gestionar la persistencia de datos en los contenedores. Son independientes del sistema de archivos del contenedor y permiten que los datos se compartan entre contenedores y persistan incluso cuando un contenedor se detiene o se elimina.
Redes Docker: Docker proporciona varias opciones de red, permitiendo a los contenedores comunicarse entre sí y con el mundo exterior. Docker crea puentes, redes superpuestas y redes host para facilitar las conexiones de red entre los contenedores y el sistema host.