Exploración de Docker
El administrador de Windows Server de Contoso debe comprender Docker, los contenedores de Docker, los runtimes de contenedor y cómo se pueden ejecutar en Windows Server.
Introducción a Docker y los entornos de ejecución de contenedor
Docker Inc. es una empresa que ha reunido una colección de herramientas de código abierto, soluciones y servicios basados en la nube que proporcionan un modelo común para el empaquetar (también conocido como incluir en contenedores) código de aplicación en una unidad normalizada para el desarrollo de software. Esta unidad estandarizada, denominada contenedor de Docker, es un software encapsulado en un sistema de archivos completo que incluye todo lo que necesita ejecutar: código, entorno de ejecución, herramientas del sistema, bibliotecas del sistema y todo lo que se puede instalar en un servidor.
Para admitir un contenedor de Docker, hay dos componentes subyacentes que entran en juego, que normalmente están ocultos o desapercibidos por el usuario que ejecuta un contenedor. Estos dos componentes son el entorno de ejecución del contenedor y las características del sistema operativo para admitir contenedores. En Windows Server, la característica que admite el contenedor de Docker simplemente se denomina "Contenedores". Esta característica interactúa con un componente denominado Servicio de proceso de host (HCS). HCS es responsable de orquestar la plataforma de virtualización en Windows Server y es la API inferior que admite contenedores y máquinas virtuales de Hyper-V.
Encima de la característica del sistema operativo que programa contenedores, es un entorno de ejecución de contenedor. Un entorno de ejecución de contenedor se encuentra entre la CLI, la interfaz de usuario o el orquestador de contenedores y la característica del sistema operativo subyacente. Es el trabajo del entorno de ejecución del contenedor para traducir comandos del usuario o del orquestador de contenedores a las funcionalidades de la plataforma del sistema operativo. Por ejemplo, al pedir a la CLI de Docker que ejecute un nuevo contenedor, la CLI interactuará con el entorno de ejecución del contenedor, que a su vez envía el comando al sistema operativo de una manera que comprenda. Los entornos de ejecución de contenedor existen para que las capas anteriores no tengan que saber cómo el sistema operativo espera recibir comandos. Desde el punto de vista del usuario, esto es importante porque los distintos entornos de ejecución de contenedor tendrán diferentes características y funcionalidades.
Hay muchos entornos de ejecución de contenedor diferentes disponibles para ejecutar contenedores en Windows Server. Las más comunes son:
- Moby Project. Moby es el proyecto de código abierto desde el que Docker compila sus proyectos comerciales. En Windows Server, Moby es un proyecto compatible con la comunidad que aprovecha Dockerd como el entorno de ejecución del contenedor. Moby es ideal para probar contenedores en Windows Server. Cuando se instala, Moby proporciona no solo el entorno de ejecución del contenedor dockerd, sino también la CLI para interactuar con contenedores en Windows Server.
Precaución
Dockerd en Windows y Windows Server usa HCSv1. En Linux, Moby ha cambiado para usar en containerD como tiempo de ejecución del contenedor. Actualmente hay trabajo que sucede para mover Moby a containerD en Windows, aprovechando la interfaz HCSv2 más reciente y mejorada.
ContainerD. ContainerD es un entorno de ejecución de contenedor de código abierto y se ha establecido recientemente como el entorno de ejecución de contenedor preferido para los entornos de Kubernetes. ContainerD se puede usar en entornos de producción y es el entorno de ejecución de contenedor predeterminado para Windows Server 2022 cuando se ejecuta en entornos de Kubernetes. Cuando se instala, ContainerD no proporciona una CLI para interactuar con contenedores. En su lugar, se pueden usar otras CLIs de código abierto, como CRICTL o NerdCTL.
Entorno de ejecución de contenedor de Mirantes (MCR). MCR, formalmente conocido como Docker Enterprise Edition (Docker EE), proporciona la misma funcionalidad que Docker CE y características adicionales creadas específicamente para implementaciones empresariales. Se recomienda MCR al usar Docker Swarm como orquestador de contenedores. Cuando se instala, MCR proporciona el entorno de ejecución del contenedor y la misma experiencia de la CLI que Docker y Moby.
Nota:
Otro componente denominado Docker Desktop para Windows se puede usar en Windows 10 y 11 para fines de desarrollo.
Ejecución de contenedores en Windows Server
Antes de ejecutar contenedores en Windows Server, debe averiguar qué entorno de ejecución de contenedor desea usar en su entorno. El entorno de ejecución del contenedor determinará el proceso de instalación que debe seguir. Para obtener más información sobre las opciones de Windows Server y cómo instalar cada una, vea cómo preparar el host de Windows Server para contenedores.
Importante
Si tiene previsto usar el modo de aislamiento de Hyper-V para los contenedores, también tendrá que instalar el rol de servidor de Hyper-V en el servidor host. Además, si el servidor host es una máquina virtual, debe habilitar la virtualización anidada antes de instalar el rol de Hyper-V. Dado que Windows 10 y 11 ejecuta contenedores basados en Windows de forma predeterminada en el modo de aislamiento de Hyper-V, para admitir este modo predeterminado, la característica de Hyper-V debe estar instalada en el entorno de host de Windows 10 y 11.
Docker Hub
Los contenedores se basan en las imágenes de contenedor y estas imágenes se pueden almacenar en repositorios. Los repositorios actúan como una ubicación en la que puede compilar, almacenar, proteger y compartir imágenes de contenedor. Docker Hub es un servicio de biblioteca en línea basado en web, administrado por Docker, en el que puede:
Registrar, almacenar y administrar sus propias imágenes de Docker en un repositorio en línea y compartirlas con otras personas.
Acceder a más de 100 000 imágenes de contenedor de proveedores de software, proyectos de código abierto y otros miembros de la comunidad.
Registro de contenedor de Microsoft
Microsoft proporciona imágenes de contenedor a través de Microsoft Container Registry (MCR) en mcr.microsoft.com. Este es el origen oficial de las imágenes de contenedor proporcionadas por Microsoft. Independientemente de dónde se detecten las imágenes de contenedor de Microsoft, el origen de extracción es mcr.microsoft.com.
Nota:
Azure Container Registry es un servicio de Azure que puede usar para crear su propio repositorio de imágenes de contenedor. Puede usar este repositorio para almacenar y administrar imágenes para todos los tipos de implementaciones de contenedor.