Docker Containers – ¿Que son?, despliegue en local y Azure (2 de 3)

Buenas

Primero que todo animaros a leer el primer árticulo de la serie el cual podéis encontrar en el siguiente link. En este primer árticulo empecé la serie explicando de manera teorica que son los containers y su diferencia principal con las máquinas virtuales

Según lo prometido en esta segunda entrada de la serie veremos cómo desplegar una aplicación dockerizada en local usando boot2docker. Para ello seguiremos los siguientes pasos:

1- Descargamos la iso de boot2docker la cual podemos encontrar por ejemplo en el siguiente link

https://github.com/boot2docker/boot2docker/releases

2- Nos creamos una máquina virtual usando nuestro hypervisor favorito, la maquina virtual creada será muy básica en cuanto a hardware teniendo 1 vcp, 512 mb de ram y disco ide de 8 gb igualmente deberá tener dos adaptadores una configurada en bridge para que tenga salida a internet y otra para que sea accesible únicamente por el host. Esta máquina virtual la configuraremos también para que arranque desde el cd donde pincharemos la iso recién descargada y tras arrancar la máquina este será el resultado.

3- Ejecutamos el comando ifconfig el cual nos permitirá ver la configuración tcp/ip de nuestros adaptadores, como podéis ver en el pantallazo adjunto en nuestro caso el adaptador eth1 tiene la ip 192.168.1.19

4- Abrimos un cliente ssh como puede ser putty y conectamos usando este protocolo a nuestra ip. El usuario por defecto es docker y la password tcuser.

5- Una vez conectados por ssh el siguiente paso será configurar el almacenamiento de nuestra vm como persistente, para ello ejecutamos el siguiente comando
fdisk -l /dev/sd?

6- Seguidamente ejecutaremos el siguiente comando para particionar el disco
sudo fdisk /dev/sda

Una vez ejecutado el comando debemos responder a las preguntas con los parámetros que nos proporciona el asistente de creación de particiones, en el pantallazo superior podéis ver la opciones que yo he escogido

7- Tras crear la partición el siguiente paso será formatear la misma ejecutando el siguiente comando:
sudo mkfs.ext4 -L boot2docker-data /dev/sda1

8- El commando ejecutado en el punto 7 nos permitirá tener el disco que usaremos para almacenar las aplicaciones dockerizadas listo, el siguiente paso será reiniciar la máquina virtual y volver a conectarnos por ssh para tener la opción montar el disco

9- Una vez reiniciada la máquina el siguiente paso será montar el disco ejecutando el siguiente comando.
mount | grep sda

10- Llegados a este punto ya tendremos nuestra vm lista para desplegar aplicaciones dockerizadas, para poder asegurarnos que realmente es así ejecutaremos el siguiente comando.
docker version

Con nuestra máquina virtual totalmente preparada para correr aplicaciones dockerizadas ahora procederemos a descargar una aplicación de ejemplo la cual desplegaremos en nuestra máquina virtual siguiendo los siguientes pasos:

11- Descargamos el paquete de aplicación de ejmeplo en formato zip desde la siguiente página
https://github.com/tutumcloud/docker-hello-world

12- Descomprimimos el contenido del zip

13- Seguidamente debemos copiar los archivos descargados en la máquina virtual. Esta opción se puede realizar de diferentes maneras pero para mi las mas cómoda es usar filezilla para crear una conexión ssh de transferencia de ficheros, la cual nos permitirá copiar los archivos a la máquina virtual.

14- Posteriormente navegamos en nuestra sesión ssh al directorio donde hemos copiado la aplicación y ejecutamos el siguiente comando para crear la imagen de aplicación dockerizada:
docker build -t tutum/hello-world .

15- Una vez desplegada la imagen ejecutaremos el siguiente commando para hacer un push de la misma en el registro.
sudo docker push tutum/hello-world

16- Llegados a este punto debemos ejecutar la aplicación con el siguiente comando
sudo docker run -d -p 80 tutum/hello-world

17- La ejecución del comando anterior nos mostrará un container ID el cual referenciaremos en el siguiente comando para asignarle un puerto externo
sudo docker port container_id 80

18- Ya tenemos todos listo. Como podemos observar en el pantallazo anterior nuestra aplicación está corriendo por el puerto 49153. Para testear que la misma funciona correctamente abriremos una navegador y nos conectaremos por http a la ip de la máquina virtual y puerto indicado.

Todos estos serían los pasos necesarios para desplegar una aplicación dockerizada en local usando boot2docker, en el siguiente post de la serie veremos como desplegarla en azure.

Espero que os resulte de interés

Un saludo

Samuel López posted at 2015-2-19 Category: Articulos IT