miércoles, febrero 24, 2016

Docker para crear una máquina virtual Ubuntu 14.04 de testing en cuestión de segundos

Ya he estado jugando hace tiempo con Docker y sus contenedores para hacer pruebas sin tener que meterle mano a mis máquinas de desarrollo y la verdad es que cada vez me impresiona más lo útil y fácil que es usarlas.


En este caso necesitaba una especie de "máquina virtual" con ubuntu 14.04 para hacer pruebas de un proyecto que mantengo en GitHub: un proyecto para descargar y compilar la última versión de gphoto2. Hasta ahora los nuevos pulls que me iban llegando los probaba sobre mi máquina personal y eso me generaba algunos problemas colaterales en mi sistema de paquetes y librerías. Además tenía el inconveniente de que las pruebas no terminaban de ser reales por no estar utilizando una versión "limpia" de Ubuntu.

Una de las soluciones pasaba por tener una máquina virtual con VirtualBox o VMware, pero suelen ser máquinas pesadas y no quería pasar por el proceso de instalación. La solución final ha venido de la mano de Docker y sus contenedores, una solución que en pocos minutos (casi segundos) me ha permitido tener una instalación limpia de ubuntu sin ejecutar más que un par comandos.

Tan sencillo como:

$docker pull ubuntu:14.04
.... (30")
Digest: sha256:a3799e46440cabaa5414d42972b1693980b30bd2772b969fe11d08d99a8b753c
Status: Image is up to date for ubuntu:14.04
$docker run -i -t ubuntu:14.04 /bin/bash

root@453796e98d8c:/#

¡y ya está! ¡Una máquina ubuntu limpia para poder empezar a hacer pruebas! A partir de ahí bastaba con instalar git para empezar a hacer el testing. Por cierto, una imagen ligera que compila a toda velocidad.

Lo más curioso es que basta con hacer exit para que todos los cambios que he realizado desaparezcan. Es decir, si he instalado git, bajado archivos, compilado código... todo eso desaparece en el momento que salgo del entorno. Una nueva ejecución de "docker run -i -t ubuntu:14.04 /bin/bash" me lleva de nuevo a la imagen limpia.

Por supuesto los cambios pueden ser persistentes pero eso no es lo que estoy buscando ahora mismo. En resumen, una opción estupenda para probar código sobre un SO limpio.

No hay comentarios:

Publicar un comentario