Our Blog

Docker: Introduccion

Es muy normal que cuando desarrollamos una aplicación nos topemos con varios problemas como por ejemplo que cada persona tenga su entorno configurado de la misma forma y que a la vez sea lo más parecido al entorno de test para no tener que lidiar con los problemas de que algo funcione correctamente en un entorno mientras que en otro falla. Este tipo de problemas son los que viene a solucionar Docker entre otras cosas.

¿Que es Docker?

Docker es una plataforma open-source que permite crear y distribuir por medio de contenedores entornos pre-configurados con todo lo necesario para poder correr una aplicación. Con respecto a esto una pequeña salvedad, esto no debe confundirse con lo que podría ser una maquina virtual ya que Docker se integra y comparte los recursos que ya se están ejecutando en la máquina, por ejemplo cada contenedor no necesita ejecutar una instancia propia del kernel.

En la siguiente imagen se muestran en naranja los componentes que se usan para poder ejecutar una aplicacion en lo que es una maquina virtual como en lo que es Docker.

container vs vm

Algo que cabe destacar es que los cambios de cada contenedor deben ser persistidos o se perderán una vez que se apague, esto si bien parece ser una desventaja no lo es si se tiene en cuenta la cantidad de veces que por error se modifica o elimina alguna configuración o archivo vital no contando con la posibilidad de revertir ese cambio.

Algunas de las ventajas de Docker que se pueden mencionar son:

  • Es portable ya que no está atado al sistema operativo en cuestión.
  • Se encuentra disponible para gran cantidad de sistemas operativos (Linux, Windows, MacOs). Haciendo la salvedad de que aún no se encuentra del todo refinado en Windows, ya que lo que hace es instalarlos una Virtual Box con una imagen de Linux con Docker configurado.
  • Virtualización liviana de entornos

El siguiente es un video introductorio de Docker que explica todo esto en mas detalle:

https://www.youtube.com/watch?v=ZzQfxoMFH0U

¿Que elementos lo forman?

Los elementos que conformar Docker son:

  • Cliente es la interfaz que permite la comunicación entre el usuario y el demonio de docker que se encuentra corriendo.
  • Demonio se encuentra corriendo en la máquina host a la espera de solicitudes
  • Index es un registro centralizado que permite copias de seguridad de contenedores tanto de contenedores públicos como privados.
Componentes

Componentes

  • Containers son los responsables de lo que actualmente se encuentra corriendo en la máquina, los cambios que se realicen deben ser persistidos para que cuando se monte nuevamente el container los cambios no se hayan perdido.
  • Imágenes son solo templates de lectura solamente que ayudan a lanzar los  containers.
  • DockerFile es un archivo con instrucciones que permite la automatización para la creación de imágenes.

¿Como se instala?

Docker cuenta con una excelente guia de como se puede instalar en cada uno de los sistemas operativos (en el caso de Linux presenta como hacerla en las distribuciones mas populares), la misma puede ser encontrada en este enlace.

A modo de ejemplo mostraremos como hacerlo en un Linux bajo la distribucion Debian, cabe mencionar que mas alla del la distribucion Linux que se elija Docker funciona en condiciones optimas con un kernel 3.8 o superior. Por este motivo es recomendable que que si contamos con una version vieja del mismo la actulicemos antes de proseguir.

Para actualizar el kernel debemos ejecutar los siguientes comandos:

sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
sudo reboot

Ahora una vez actualizado para poder realizar la instalacion debemos ejecutar lo siguiente:

sudo apt-get update
sudo apt-get install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

Lo que hacen estos comandos es primero actualizar los repositorios de aplicaciones de Linux para luego instalar Docker. Dependiendo de que tan actualizados esten esos repositorios se nos va a instalar una version mas nueva o mas vieja de Docker, este problema lo podemos solventar haciendo lo siguiente:

curl -sSL https://get.docker.io/ubuntu/ | sudo sh
sudo docker run -i -t ubuntu:latest /bin/bash

Puede pasar que cuando ejecutemos el primer comando nos arroje un error de que el paquete “curl” no esta instalado por lo cual deberemos instalarlo por medio de este comando:

sudo apt-get install curl

Por ultimo para comprobar que esta instalado correctamente podemos hacer lo siguiente:

sudo docker run -i -t ubuntu:latest /bin/bash

esto ultimo descargara la ultima imagen de Linux que se encuentra disponible y nos abrira la consola de esa imagen.

Conclusion

Si bien Docker puede ser tildado de ser algo con poca madurez por ser relativamente nuevo, supera esos problemas debido a sus grandes ventajas en cuanto ahorro de tiempo en el montado de los entornos y que cuenta con la posibilidad de ser multiplataforma nos brinda una buena forma de distribuir los entornos pre-configurados.

No comments
TeraswapDocker: Introduccion

Related Posts