¿Qué es un contenedor?
Un contenedor es un entorno aislado donde se puede ejecutar una aplicación.
El contenedor, la aplicación y todas sus dependencias se construyen con partes de los recursos del host, como un sistema operativo de kernel, CPU y memoria, y, luego, se separan lógicamente de otros contenedores y del propio host.
En el siguiente diagrama, se ilustra cómo un contenedor rojo y amarillo coexiste dentro del mismo host utilizando el mismo sistema operativo de hardware y kernel, pero están dentro de su espacio individual, lo que les permite ejecutar sus aplicaciones sin interferencias externas.
Tenga en cuenta cómo el mismo hardware y el sistema operativo instalado en ese hardware pueden ejecutar sus propias aplicaciones y servicios, además de ser independientes de lo que sucede en cada contenedor.
Cómo crear y ejecutar contenedores en Windows Server
Los contenedores se pueden ejecutar en varias plataformas, como los sistemas operativos Linux, Windows y Mac. Sin embargo, este artículo/demostración se centra en la ejecución de contenedores en Windows Server.
Existen varias formas de trabajar con contenedores de Windows, incluidos Windows Admin Center (WAC) o Visual Studio. Sin embargo, en este artículo/demostración se utiliza Docker.
Docker es un producto de plataforma como servicio que se puede usar para combinar una aplicación, todas sus dependencias e información de configuración en un solo paquete llamado contenedor. Docker se puede utilizar para enviar, ejecutar o eliminar ese contenedor.
Los pasos posteriores se realizaron en una instalación nueva de Windows Server 2022.
Puede encontrar una lista de requisitos para ejecutar contenedores en Windows Server en el siguiente enlace externo:
Comenzar: Preparación de Windows para contenedores
Los pasos para crear y ejecutar contenedores en Windows Server mediante Docker se pueden resumir de la siguiente manera:
1. Instalar Docker
En PowerShell (ejecutar como administrador), ingrese lo siguiente:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Cuando se le solicite, ingrese “
Y” para confirmar la instalación de NuGet.
En la misma sesión de PowerShell, ingrese:
Install-Package -Name docker -ProviderName DockerMsftProvider
En el símbolo del sistema, ingrese “
Y” para confiar en el paquete.
En la misma sesión de PowerShell, ingrese:
Restart-Computer
2. Crear un archivo Docker y descargar una imagen de contenedor
En una sesión de PowerShell con privilegios elevados, cambie al directorio raíz y cree una carpeta nueva ingresando lo siguiente:
cd\
mkdir Containers
cd Containers
En la misma sesión de PowerShell, cree el archivo Docker y edítelo ingresando lo siguiente:
New-Item dockerfile
(Tenga en cuenta que no hay ninguna extensión de archivo)
notepad dockerfile
En el editor de texto del bloc de notas, ingrese las siguientes 3 líneas y, a continuación, guarde y cierre el archivo Docker:
FROM mcr.microsoft.com/windows/servercore/iis
RUN powershell
COPY index.html C:/inetpub/wwwroot
Vuelva a PowerShell, siga en el contexto C:\Containers y cree un archivo html n y edítelo ingresando lo siguiente:
New-Item index.html
notepad index.html
En el editor de texto del bloc de notas, ingrese las tres líneas siguientes y, a continuación, guarde y cierre el archivo index.html:
<h1>Hello World!</h1>
<p>This is an example of a simple HTML page hosted on:</p>
<h2>container #1</h2>
3. Crear y ejecutar el contenedor.
Vuelva a PowerShell, todavía en C:\Containers, escriba:
docker build -t webserver .
Espere a que la imagen se descargue desde el registro del contenedor de Microsoft y, a continuación, escriba:
docker images
Ahora debe ver la imagen descargada.
Para finalmente ejecutar un contenedor con la plantilla de imagen descargada, vuelva a Powershell y escriba:
docker run --name container1 -d -p 80:80 webserver
Esta última línea crea y ejecuta un contenedor denominado container1 según la imagen del servidor web que se preparó. El switch -d indica a Windows que ejecute el contenedor en segundo plano y -p le indica a Windows que reenvíe el puerto 80 (HTTP) del host al puerto 80 en el contenedor.
Para probar el contenedor:
Abra un navegador web en el host y vaya a localhost (también puede usar una computadora diferente en el mismo segmento de red y navegar hasta la dirección IP o el nombre de la computadora del host del contenedor).
Debe presionar la página web HTML de ejemplo creada anteriormente:
Esto completa el tutorial sobre cómo ejecutar contenedores Docker en Windows Server 2022.