Compartir a través de


Terminología de Docker

Sugerencia

Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.

Miniatura de la portada del libro electrónico 'Arquitectura de microservicios de .NET para aplicaciones .NET contenedorizadas'.

En esta sección se enumeran los términos y definiciones con los que debe estar familiarizado antes de profundizar en Docker. Para obtener más definiciones, consulte el glosario extenso proporcionado por Docker.

Imagen de contenedor: un paquete con todas las dependencias e información necesarias para crear un contenedor. Una imagen incluye todas las dependencias (como marcos) más la configuración de implementación y ejecución que usará un entorno de ejecución de contenedor. Normalmente, una imagen se deriva de varias imágenes base que se apilan entre sí para formar el sistema de archivos del contenedor. Una imagen es inmutable una vez creada.

Dockerfile: un archivo de texto que contiene instrucciones para compilar una imagen de Docker. Es como un script por lotes, la primera línea indica la imagen base para comenzar y, a continuación, siga las instrucciones para instalar los programas necesarios, copiar archivos, etc., hasta que obtenga el entorno de trabajo que necesita.

Compilación: la acción de crear una imagen de contenedor basada en la información y el contexto proporcionados por su Dockerfile, además de archivos adicionales en la carpeta donde se compila la imagen. Puede compilar imágenes con el siguiente comando de Docker:

docker build

Contenedor: una instancia de una imagen de Docker. Un contenedor representa la ejecución de una sola aplicación, proceso o servicio. Consta del contenido de una imagen de Docker, un entorno de ejecución y un conjunto estándar de instrucciones. Al escalar un servicio, se crean varias instancias de un contenedor a partir de la misma imagen. O bien, un trabajo por lotes puede crear varios contenedores a partir de la misma imagen, pasando parámetros diferentes a cada instancia.

Volúmenes: ofrezca un sistema de archivos grabable que el contenedor pueda usar. Dado que las imágenes son de solo lectura, pero la mayoría de los programas necesitan escribir en el sistema de archivos, los volúmenes agregan una capa grabable, sobre la imagen de contenedor, por lo que los programas tienen acceso a un sistema de archivos grabable. El programa no sabe que está accediendo a un sistema de archivos en capas, es solo el sistema de archivos como de costumbre. Los volúmenes residen en el sistema host y se administran mediante Docker.

Etiqueta: una marca o etiqueta que se puede aplicar a las imágenes para que se puedan identificar diferentes imágenes o versiones de la misma imagen (según el número de versión o el entorno de destino).

Compilación en varias fases: es una característica, ya que Docker 17.05 o posterior, que ayuda a reducir el tamaño de las imágenes finales. Por ejemplo, una imagen base grande, que contiene el SDK se puede usar para compilar y publicar y, a continuación, se puede usar una imagen base de solo tiempo de ejecución pequeña para hospedar la aplicación.

Repositorio (repo): una colección de imágenes Docker relacionadas, marcadas con una etiqueta que indica la versión de la imagen. Algunos repositorios contienen varias variantes de una imagen específica, como una imagen que contiene SDK (más pesado), una imagen que solo contiene entornos de ejecución (más ligeros), etc. Esas variantes se pueden marcar con etiquetas. Un solo repositorio puede contener variantes de plataforma, como una imagen de Linux y una imagen de Windows.

Registro: un servicio que proporciona acceso a los repositorios. El registro predeterminado para la mayoría de las imágenes públicas es Docker Hub (propiedad de Docker como organización). Normalmente, un registro contiene repositorios de varios equipos. Las empresas suelen tener registros privados para almacenar y administrar imágenes que han creado. Azure Container Registry es otro ejemplo.

Imagen de varios arcos: para la arquitectura múltiple (o multiplataforma), es una característica de Docker que simplifica la selección de la imagen adecuada, según la plataforma en la que se ejecuta Docker. Por ejemplo, cuando un Dockerfile solicita una imagen base FROM mcr.microsoft.com/dotnet/sdk:8.0 del registro, en realidad obtiene 8.0-nanoserver-ltsc2022, 8.0-nanoserver-1809 o 8.0-bullseye-slim, en función del sistema operativo y la versión donde se ejecuta Docker.

Docker Hub: registro público para cargar imágenes y trabajar con ellas. Docker Hub proporciona hospedaje de imágenes de Docker, registros públicos o privados, desencadenadores de compilación y enlaces web e integración con GitHub y Bitbucket.

Azure Container Registry: un recurso público para trabajar con imágenes de Docker y sus componentes en Azure. Esto proporciona un registro que está cerca de las implementaciones en Azure y que proporciona control sobre el acceso, lo que permite usar los grupos y permisos de Azure Active Directory.

Registro de confianza de Docker (DTR): un servicio de registro de Docker (desde Docker) que se puede instalar localmente para que resida dentro del centro de datos y la red de la organización. Es conveniente para la gestión de imágenes privadas dentro de la empresa. El Registro de confianza de Docker se incluye como parte del producto Docker Datacenter.

Docker Desktop: herramientas de desarrollo para Windows y macOS para compilar, ejecutar y probar contenedores localmente. Docker Desktop para Windows proporciona entornos de desarrollo para contenedores de Linux y Windows. El host de Docker de Linux en Windows se basa en una máquina virtual de Hyper-V . El host para contenedores de Windows se basa directamente en Windows. Docker Desktop para Mac se basa en el marco de Hypervisor de Apple y en el hipervisor xhyve, que proporciona una máquina virtual host de Docker linux en macOS. Docker Desktop para Windows y para Mac reemplaza Docker Toolbox, que se basaba en Oracle VirtualBox.

Compose: Una herramienta de línea de comandos y un formato de archivo YAML con metadatos para definir y ejecutar aplicaciones con múltiples contenedores. Se define una sola aplicación basada en varias imágenes con uno o varios archivos .yml que pueden invalidar valores en función del entorno. Después de crear las definiciones, puede implementar toda la aplicación de varios contenedores con un solo comando (docker-compose up) que cree un contenedor por imagen en el host de Docker.

Clúster: una colección de hosts de Docker expuestos como si fuera un único host de Docker virtual para que la aplicación pueda escalar a varias instancias de los servicios distribuidos entre varios hosts dentro del clúster. Los clústeres de Docker se pueden crear con Kubernetes, Azure Service Fabric, Docker Swarm y Mesosphere DC/OS.

Orchestrator: herramienta que simplifica la administración de clústeres y hosts de Docker. Los orquestadores permiten administrar sus imágenes, contenedores y hosts a través de una interfaz de línea de comandos (CLI) o una interfaz gráfica de usuario. Puede administrar redes de contenedores, configuraciones, equilibrio de carga, detección de servicios, alta disponibilidad, configuración del host de Docker, etc. Un orquestador se encarga de ejecutar, distribuir, escalar y reparar las cargas de trabajo a través de una colección de nodos. Normalmente, los productos de orquestador son los mismos productos que proporcionan infraestructura de clúster, como Kubernetes y Azure Service Fabric, entre otras ofertas del mercado.