Docker

 

Los contenedores o docker (en nuestro caso Windows Containers) proporcionan a una aplicación un espacio aislado con todos los recursos necesarios para su funcionamiento, consumen pocos recursos debido a la capacidad de virtualización a nivel de sistema operativo, permite ejecutar múltiples aplicaciones aisladas en un único sistema, son portables y permiten un nivel de personalización a nivel de imagen que da capacidades de despliegue masivo para testeo y servicios.

Para realizar estas funciones y en particular las de un servidor IIS, este servicio Docker necesita una imagen con las características necesarias para crear dicho contenedor, “microsoft/iis”.

Servidor Web IIS

 

El rol Servidor web (IIS) proporciona una plataforma segura, fácil de administrar, modular y extensible donde hospedar sitios web, servicios y aplicaciones de manera confiable. En ella se puede compartir información con usuarios en cualquier red. Es una plataforma web unificada que integra IIS, ASP.NET, servicios de FTP, PHP y Windows Communication Foundation (WCF).

Al crear una imagen personalizada de Docker con esta imagen se preinstalan los servicios y herramientas necesaria para el despliegue de una página web.

Vista contenedor IIS

Al arrancar un contenedor con esta imagen se crea un sistema de archivos similar al sistema operativo en el que está basado (WindowsServerCore) además de las carpetas necesarias de la imagen en particular. En el caso de IIS, en la ruta C:\inetpub\wwwroot se almacena la página de inicio por defecto, para personalizarla basta con copiar una nueva página de inicio index.html y las carpetas de estilo y funcionalidad de la página web en dicha ruta.

DockerFile

 

Si queremos que el contenedor venga “de serie” con nuestra página web habría que crear una imagen personalizada que realice las acciones de borrado y copia de archivos antes mencionados y para ello utilizaremos un archivo DockerFile, estos son archivos sin extensión que se utilizan para configurar imágenes de contenedores, utilizan el siguiente formato:

Empieza por un FROM donde se indica el nombre de la imagen base que vas a utilizar:

FROM microsoft/iis

Y lo siguiente son una serie de comandos imperativos que le indican que modificar en la imagen, por ejemplo:

COPY /MiWeb /inetpub/wwwroot/

En este ejemplo le indicamos que copie el contenido de la carpeta MiWeb en la ruta inetpub/wwwroot de la imagen del contenedor.

Contenedor personalizado

 

Para crear la imagen personalizada utilizamos:

docker build –t imagenweb .

Este comando se lanza desde la ruta donde se encuentra el archivo DockerFile, el “.” final indica que tiene que buscar en la ruta actual el archivo de configuración, así el contenido de la carpeta MiWeb, que en este caso contiene un index.html y una carpeta con imágenes, se encontrara en la ruta /inetpub/wwwroot/ al lanzar un nuevo contenedor utilizando la imagen “imagenweb”. Para comprobarlo lanzamos:

docker run -it -d -p 80:80 imagenweb

Para finalizar ponemos la ip del contenedor en un navegador.

Página web personalizada en docker

 

Mario Oswaldo Ramos Marín
www.linkedin.com/in/mario-oswaldo-ramos-marín-mr23
Microsoft MCSA Windows Server + Microsoft MCSE Cloud Platform & Infrastructure
Tajamar
2017-2018