Probamos la virtualización por contenedores de Docker en Windows

Probamos la virtualización por contenedores de Docker en Windows

Rubén Velasco

La nube y la virtualización de servicios tienen cada vez una mayor importancia en el día a día. Gracias a ellas es posible ejecutar aplicaciones de forma remota sin que ni siquiera estén instaladas en nuestro propio ordenador, reservando estas un pequeño espacio en la memoria, conocido como contenedor, en un gran servidor situado en algún lugar del planeta, permitiendo, sobre todo a empresas, ahorrar en infraestructura y mantenimiento. Existen varios proyectos relacionados con virtualización de sistemas y aplicaciones, aunque uno de los más conocidos y que mayor avance está demostrando es Docker.

Docker es uno de los proyectos más grandes en cuanto a virtualización. Esta plataforma de código abierto permite virtualizar aplicaciones dentro de un entorno virtual, conocido como contenedor, sin necesidad de cargar un sistema operativo completo como ocurre con las máquinas virtuales. Por ejemplo, gracias a Docker podemos montar un servidor web cargando en memoria solo los módulos del kernel necesarios y las dependencias de dicho servidor. Gracias a ello, nuestro servidor web ocupará apenas unas decenas de megas de memoria en vez de más de los 512 MB que ocupa todo el núcleo del sistema.

Además, todos los entornos de Docker están aislados entre sí, por lo que ninguno de los contenedores puede comunicarse ni compartir recursos con otros, siendo así la seguridad muy superior.

Docker es una plataforma desarrollada por y para Linux, por lo que ha sido exclusiva de este sistema operativo, hasta ahora. Hace apenas dos semanas, y aprovechando con el cuarto aniversario del proyecto, los responsables del proyecto anunciaron la primera beta de Docker para Windows y Mac OS X, aunque, debido a la fase tan temprana de su desarrollo, se trataba de una beta privada, para la que había que conseguir invitación.

Tras una (no muy larga) espera, hemos conseguido una invitación para la beta de Docker para Windows, y hemos podido tener un primer contacto con este concepto de virtualización, extraño, pero que no nos ha dejado mal sabor de boca.

Cómo funciona Docker en Windows

Lo primero que tenemos que hacer es descargar la versión Beta de Docker para nuestro sistema operativo. Necesitaremos una clave de actualización para poder iniciarla por primera vez, por lo que si no hemos sido invitados a la beta no nos servirá de nada. La instalación es sencilla, aunque un poco lenta. Además, para poder virtualizar el entorno necesita instalar y habilitar en Windows la plataforma Hyper-V, algo que, si no lo tenemos, lo hará automáticamente.

Ajustes máquina virtual Docker

Una vez finaliza la instalación debemos reiniciar el ordenador (especialmente si hemos instalado Hyper-V) para que todo empiece a funcionar correctamente.

Si no sabemos cómo funciona toda la plataforma Docker ni cómo empezar con ella, cuenta con una excelente documentación, a la cual podemos acceder desde el siguiente enlace.

Toda la plataforma se ejecuta a través de comandos. A continuación, vamos a ver el primer ejemplo: cómo virtualizamos la aplicación «Hello World». Para ello, en la ventana de CMD tecleamos:

docker run hello-world

El programa creará un entorno virtual y ejecutará dicha aplicación de ejemplo, viendo una ventana similar a la siguiente

Hola mundo en Docker

Algo más ambicioso: Ubuntu sobre Windows

Como hemos podido comprobar, el programa Hello World funciona correctamente, aunque obviamente no hace nada. Como ya hemos explicado, Docker funciona a base de contenedores, por lo que para arrancar uno debemos descargarlo y lanzarlo mediante comandos.

En caso de que el contenedor que queramos lanzar no esté ya descargado en el sistema, lo buscará en la base de datos de contenedores y, si existe, lo descargará automáticamente.

Por ejemplo, vamos a lanzar un terminal de Ubuntu en Windows. Para ello, teclearemos:

docker run -it ubuntu bash

El programa buscará (y descargará) y ejecutará el kernel del sistema operativo. Tras unos segundos veremos lo siguiente:

Ubuntu sobre Docker sobre Windows

Ya tenemos cargado el núcleo del sistema operativo. Podemos apreciar la principal característica de Docker abriendo un visor de procesos, como top, y ver qué procesos están en ejecución y lo que consumen que, en resumen, es menos de 80 megas de memoria.

Top en Docker

Algo un poco más avanzado: si tenemos control sobre un terminal de Ubuntu, podemos utilizar los mismos comandos, por ejemplo, para ver la versión del kernel.

Uname en Docker

E incluso para instalar otras aplicaciones como htop, el visor de proceso avanzado, previa actualización de los repositorios:

apt update

apt install htop

Htop en Docker

Virtualizar Ubuntu sobre Windows es un poco sinsentido en términos de contenedores, por lo que, a continuación, vamos a ver cómo virtualizar un servidor web Nginx directamente en Windows, sin Linux de por medio.

Algo más útil: Nginx

Nginx es uno de los servidores web más potentes hoy en día, especialmente cuando hablamos de páginas web con una alta carga de tráfico. Podemos crear fácilmente un contenedor con este servidor web directamente en Windows tecleando:

  • docker run -d -p 80:80 –name webserver nginx

El programa descargará el contenedor más actualizado:

Descargando paquete desde Docker en Windows

Y automáticamente empezará a funcionar. Para comprobarlo, simplemente debemos escribir en nuestro navegador: http://docker

Nginx desde Docker

Docker para Windows: un gran paso, aunque aún queda trabajo por hacer

Por el momento el número de paquetes disponibles para esta plataforma es algo limitado, ya que los desarrolladores se están centrando en mejorar la plataforma y hacerla lo más estable y funcional posible antes de la llegada de la versión estable, una versión de la que, por aún, no se sabe nada.

La lista de contenedores descargados en el sistema la podemos ver tecleando:

docker ps

Nginx descargado y ejecutado en DockerEstá claro que Docker es el futuro, aunque, hablando sinceramente, poca gente y, sobre todo, pocos administradores de sistemas saben muy bien cómo funciona la virtualización. Si estamos interesados en este ámbito, os recordamos que la plataforma edX va a impartir un curso gratuito sobre virtualización de contenedores el próximo 1 de junio, curso al que no podéis faltar.

1 Comentario