Cómo crear una imagen personalizada de docker con dockerfile
Estamos viviendo una época donde todo cambia a velocidades sorprendentes, un mundo donde necesitamos optimizar todos los recursos que tenemos y debemos adaptarnos a los cambios.
La informática ha revolucionado el mundo y es uno de los principales motores de la industria y la sociedad. Ahora necesitamos estar conectados en todo momento para poder comunicarnos, divertirnos, informarnos o comprar. En la actualidad esto es posible gracias a la nube, grandes complejos donde se concentran miles de servidores que forman parte de la red neuronal de internet donde se sirven infinidad de servicios.
La pregunta que nos sugiere es cómo podemos gestionar estos miles de servidores para optimizarlos y que cumplan con las tareas que le hemos encomendado, y la solución se resume, en una palabra, virtualización.
La virtualización es una tecnología que a partir de un software nos permite crear múltiples entornos simulados en un único hardware. El software se llama “hipervisor” y es el encargado de crear y gestionar todos los sistemas que se van a alojar. Gracias a la virtualización podemos tener múltiples servidores aislados corriendo sobre un único hardware, estos sistemas que han sido virtualizados, se denominan máquinas virtuales. Con las máquinas virtuales podemos aprovechar todos los recursos que nos ofrece un servidor en vez de tener por cada equipo un único servicio.
Aunque con la virtualización hemos solucionado una gran parte del problema, necesitamos dar un paso más allá, necesitamos crear máquinas virtuales muy optimizadas que cumplan un único requisito, estas máquinas se llaman contenedores y normalmente tienen un ciclo de vida corto. Los contenedores o dockers en inglés son una nueva tecnología de virtualización que nos permite solventar el problema de las grandes cantidades de recursos e información demandada por los usuarios, los contenedores están en múltiples sistemas operativos como Windows y Linux. Un ejemplo de uso de los contenedores es como servidor web, un servidor web aloja páginas web, esta página web puede ser por ejemplo para la venta de entradas de cine y un día esta página decide rebajar los precios lo cual va a provocar un aumento de ventas, para que la página no se “cuelgue” lo que se hace es crear un número específico de contenedores, la creación y destrucción de estos contenedores irá ligado a la carga de la página web así el servicio siempre estará disponible aunque la demanda sea muy alta y siempre estará usando sólo los recursos necesarios.
Retomando el ejemplo de los contenedores y la página web de entradas de cine, como administrador de los contenedores necesito crear un contenedor personalizado con mi página web incluida el cual me permita el despliegue de los contenedores de una forma casi instantánea y listos para usarse.
La configuración de una nueva imagen que nos permita desplegar nuestros contenedores personalizados la podemos llevar acabo, a través de un archivo de texto donde le incluimos los comandos necesarios como por ejemplo incluirle los archivos necesarios para nuestra página web. Este archivo se llama dockerfile y en él debemos incluir de qué imagen partimos y las acciones de borrar o copiar archivos de otra carpeta o lo que en ese momento necesitemos. Dockerfile nos da la ventaja de crear nuestro contenedor personalizado de una forma sencilla, pero para ello necesitamos tener una imagen de un contenedor que por ejemplo hayamos descargado de un repositorio la cual la debemos tener actualizada. Otra desventaja que nos sugiere es si la página si sufre cambios continuos, debemos estar creando nuevas imágenes de nuestro contenedor cada poco tiempo, necesitando emplear tiempo de administración.
Los contenedores es una gran herramienta con la que podemos adaptarnos a la informática actual, con el archivo dockerfile podemos crearlos a nuestras necesidades, pero todavía nos plantea una serie de problemas que debemos solventar.
Autor: Álvaro Cuevas González
Curso: Microsoft MCSA Windows Server + Microsoft MCSE Cloud Platform & Infrastructure
Centro: Tajamar
Año académico: 2017-2018