Social

La tecnología de contenedores de Docker se esta volviendo extremadamente popular, y algunas de las grandes empresas como Google la utilizan, por ejemplo en su plataforma Cloud con Kubernetes.

Pero en un entorno algo más pequeño, ¿cuando nos puede servir un Docker?
En mi caso me fue de perlas cuando un cliente nos pidió traspasar su vieja tienda online a nuestro Hosting.
Mi sorpresa fue encontrar una plataforma muy antigua que corría sobre PHP 5.1, y utilizaba la mayoría de los métodos que en la versión actual se encuentran “Deprecated”.
¿Como replicar ese sitio web sin tener que tocar tu servidor web en producción (ni reinstalar uno de test especialmente para él)? ¡Con Docker!

Primeros pasos

Lo primero que debemos hacer es instalar los paquetes necesarios sobre nuestra maquina GNU/Linux. Si tienes Debian o Ubuntu es muy sencillo, con los siguientes comandos (si utilizas Raspbian, sigue este enlace):

sudo apt-get update

sudo apt-get install docker.io

Ya está instalado.
Así de fácil. Ahora podemos crear un contenedor con el software que necesitemos.
Pero primero, veamos los comandos principales de Docker.

Listar imágenes disponibles

docker images

Ver los containers creados y su estado:

sudo docker container list

Ejecutar acciones sobre un contenedor:

sudo docker cp | create | exec | kill | ls | pause | rename | restart | rm | run | start | stop | unpause

Con estas ultimas administraremos cada docker, pudiendo crear uno nuevo desde una imagen, apagarlo, matarlo, eliminarlo, o reiniciarlo. También otras acciones como copiar un archivo o ejecutar un comando concreto, eso lo vemos más adelante

Creando un contenedor

Los repositorios oficiales de Docker cuentan con muchísimas contenedores que podemos utilizar con un solo comando y que traerán instalado lo que necesitamos.
En esta web oficial puedes ver las diferentes imágenes que puedes utilizar libremente.

Por ejemplo, un Apache y PHP5 (por Nimmis: enlace).
Con este comando no es necesario ni hacer el pull de la imagen que queramos, sino que la buscará localmente, y al no encontrarla, la buscará y descargará desde los repos oficiales. ¡Una maravilla!
En el comando, test es el nombre de la maquina, y nimmis/apache-php5, el de la imagen.

sudo docker run –name test -d nimmis/apache-php5

y voilà, ya está creado el container con la imagen escogida.
Ahora, si queremos entrar al container para configurar el servicio, o colgar una pagina, podemos ejecutar este comando:

sudo docker exec -it test bash

Y tendremos acceso a un bash dentro del container. Para salir tan solo escribe exit.

Si queremos copiar algún archivo que tenemos localmente en nuestra maquina en el contenedor, podemos usar el comando cp:

sudo docker cp archivo_a_copiar.zip test:/ruta/destino

Para no solapar los servicios, por ejemplo, si en nuestra maquina ya tenemos un apache escuchando en el puerto 80, podemos mapear cualquier puerto para no tener problemas, utilizando -p, por ejemplo para redirigir al puerto 8080:

sudo docker run –name test -p 8080:80 nombreImagen

Y estos son los primeros pasos para utilizar Docker y empezar a trastearlo. Una herramienta realmente útil y en auge, espero que os sirva para iniciaros.

¡Un saludo!