Crear Windows Server Containers

Continuando con los post sobre los Windows Containers hoy vamos a ver como crear Windows Server Containers, considerando que cumplimos y configuramos nuestro sistema host, con el tutorial anterior.

Creando el Container

Lo primero que debemos de considerar es de ubicarnos en la VM (en nuestro ejemplo) que actuará de host, y luego generar una instancia de powershell, para ello, desde la consola abierta (cmd), ejecutamos:

Vamos a usar el cmdlet Get-ContainerImage para validar que nuestra versión de SO es la Windows Server 2016 Core:

Para crear el Container, e iniciarlo, debemos ejecutar el siguiente comando:

Crear Windows Server Container

Donde el parámetro Name indica el nombre del Container, ContainerImageName la imagen que vamos a usar para generarlo y SwitchName el nombre del switch que vamos a usar.

Debemos ejecutar el cmdlet Start-Container para iniciarlo, ya que el estado final luego de crearlo es off.

Crear Windows Server Container

Como sabrán, al no tener entorno gráfico, debemos gestionar la administración por medio de la consola, por lo que para conectarnos a nuestro Container nuevo, vamos a ejecutar:

Creando una imagen con IIS

Ahora que ya tenemos la sesión iniciada con nuestro container, vamos a modificarlo para luego generar una imagen de container. Para este ejemplo vamos a crear una imagen que contenga el rol de IIS.

Para instalar el rol de IIS en el containter, debemos usar el cmdlet Install-WindowsFeature.

Crear Windows Server Container

Al finalizar la instalación debemos salir de la sesión con el container, ejecutando exit. Con esta acción vamos a volver a situarnos en el container host.

Después, debemos detener el container, ejecutando lo siguiente:

Ahora que se encuentra apagado, es posible utilizando el cmdlet New-ContainerImage, generar una nueva container image:

En el ejemplo anterior, generamos la imagen llamada WindowsServerCoreIIS, con el publisher de nombre vmsilvamolina y definiendo como 1.0, la versión de la imagen.

Si no se desea mantener la imagen original (TP4Con), esposible eliminarla ejecutando:

Ahora tenemos en nuestro servidor, otra imagen disponible para utilizar con los containers.

Creando el Container IIS

Vamos a crear el container con la imagen que tiene el rol de IIS instalado y luego iniciarlo:

Crear Windows Server Container

Networking

Ahora que tenemos el container generado con el rol de IIS instalado, vamos a configurar la parte de redes, para poder acceder al container.

En este ejemplo vamos a crear una web simple, por lo que vamos a usar el puerto 80. Para poder acceder de manera externa al host, debemos mapear el puerto 80 del container host, con el puerto 80 del container que acabamos de crear. Para ello, debemos ejecutar:

Con el comando anterior realizamos la ejecución del comando ipconfig dentro del container que acabamos de crear.

Ahora necesitamos ejecutar el mapeo, para realizarlo, vamos autilizar el comando:

Crear Windows Server Container

El cmdlet Add-NetNatStaticMapping permite realizar el mapeo del puerto necesario.

Con el mapeo creado, vamos a configurar lo necesario en el Firewall, para ello:

Crear Windows Server Container

Creando la aplicación “Hola Mundo!”

En este momento, podemos ejecutar un navegador y accediendo a la IP de nuestro container host vamos a poder ver lo siguiente:

IIS Container - Página de inicio

La pantalla de bienvenida del IIS! Ahora que sabemos que tenemos correctamente instalado el IIS en nuestro container, vamos a realizarle un pequeño cambio, a modo de Hola Mundo!.

Lo primero que hay que hacer es iniciar una sesión con el container:

Ahora podemos ejecutar lo siguiente para borrar la imagen por defecto (splash screen) que trae el IIS:

Y vamos a generar un archivo .html personalizado que sea nuestra “aplicación”:

Ahora vamos a ir al navegador y vamos a presionar F5… Listo!

IIS Container - Página de inicio modificada

Ya tenemos disponible nuestra aplicación.

Saludos,