Docker - Primeros pasos

Docker


Me gustaría empezar una serie de hilos sobre Docker, para ello como siempre empezaré explicando, que es, para que sirve y lanzaremos algún contenedor.

¿Qué es Docker?


Es muy posible que hayáis oído hablar últimamente de Docker, ya que se esta poniendo muy de moda, mi objetivo es que entendáis el concepto y porque está teniendo tanto éxito.
Docker está pensado para crear pequeños contenedores ligeros y portables para las aplicaciones de software, que se pondrán lanzar desde cualquier máquina con el sistema operativa que sea, siempre que tenga Docker instalado, eso nos facilita los despliegues.
Para que podamos acceder a una aplicación esta deberá tener una serie de requisitos para que se pueda ejecutar, la versión de Prisma, una versión de Python exacta, entre muchas otras cosas.
Docker nos permite meter todo eso en un contenedor o varios unidos unos con otros que necesita la aplicación, incluida la propia aplicación. Así podremos llevarnos esos contenedores a cualquier otro equipo, sin tener que preocuparme de versiones, ni de tener instalado todo lo necesario, solo necesitaremos tener instalado Docker.
Solo deberemos preocuparnos de ejecutar el contenedor de Docker y listo, todos las librerías y cosas necesarias estarán dentro.

Ventajas de Docker


Docker es una herramienta diseñada para beneficiar tanto a desarrolladores, testers, como administradores de sistemas, en relación a las máquinas, a los entornos en sí donde se ejecutan las aplicaciones software, los procesos de despliegue, etc.
En el caso de los desarrolladores, el uso de Docker hace que puedan centrarse en desarrollar su código sin preocuparse de si dicho código funcionará en la máquina en la que se ejecutará.
Un ejemplo de los problemas reales a los que los desarrolladores se enfrentan diariamente y que con Docker se solucionarian.
En un equipo de programadores, el primer programador está trabajando en un proyecto con Python 3.0 y el segundo programador de su misma empresa está trabajando en otro proyecto con Python 2.6, resulta que al segundo programador le han asignado que ayude al primero a terminar su trabajo, al estar en una versión de Python que no es, deberá instalarse Python 3.0 y luego cuando vuelva a su proyecto volver a la versión que estaba, todo esto con Docker estaría solucionado.
Docker también es ideal para el testing, porque puedes tener entornos de pruebas.
Esto además beneficia a la parte de sistemas, ya como los contenedores son más ligeros que las máquinas virtuales, se reduce el número de máquinas necesarias para tener un entorno.

Diferencias entre Docker y una máquina virtual


El concepto entre máquina virtual y Docker es similar, pero no son lo mismo. El contenedor es mucho más ligero, ya que en una máquina virtual necesitas instalar el sistema operativo, el contenedor de Docker usa el sistema operativo que está instalado en la máquina que lo ejecuta.
Que un contenedor Docker tome los aspectos básicos de funcionamiento del sistema operativo de la máquina en la que se ejecuta lo vuelve más ligero que una máquina virtual.

Instalación


Ahora vamos a pasar a la instalación de Docker, lo primero que nos recomienda la web oficial de Docker es desinstalar todo lo que ya tengamos de Docker, aunque creáis que no teneis Docker instalado hacedlo, no cuesta nada y os asegurais que no hayan futuros erroros.
sudo apt-get remove docker docker-engine docker.io containerd runc
Con eso todo lo relacionado con Docker estará desinstalado, ahora empezamos la puesta a punto de los repositorios, en mi caso he seguido la guía de Docker para Ubuntu, si estais usando otro sistema operativo deberéis ir a la página oficial y seguir las instrucciones para ese sistema en concreto.
Lo primero es actulizar los paquetes.
sudo apt-get update
Ahora instalaremos los siguientes paquetes
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
Añadimos la clave oficial GPG de Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Para comprobar que el paso anterior se ha realizado correctamente, haremos que nos saque los últimos 8 caracteres de la fingerprint(huella de actilar).
sudo apt-key fingerprint 0EBFCD88
Y la respuesta de salida debe ser la siguiente:
Ahora ya vamos a la instalación:
sudo apt-get update
Recordad que hemos actualizado repositorios, deberemos volver a usar el update.
sudo apt-get install docker-ce docker-ce-cli containerd.io
Y con este último paso tendremos instalada la última versión de Docker.
Para comprobar si vuestra instalación ha ido correctamente, crearemos un contenedor con la imagen 'hello-world'.
sudo docker run hello-world
Este comando se descargará la imagen en caso de no tenerla, creará el contenedor y lo lanzará, una vez se haya ejecutado todo, deberá saliros el siguiente mensaje.
Hasta aquí el mini tutorial de hoy, pero antes de irme un último consejo, si no quereis tener que usar el comando sudo siempre useis Docker deberéis agregar al usuario al grupo de Docker y reiniciar el ordenador.
usermod -aG docker balena

Conclusión


Esto no es nada a comparación con todo lo que se puede hacer con Docker, me he decidido porque me parece una herramienta muy útil para hacer despliegue de aplicaciones y que se le debería dar más importancia y que fuese una herramienta que todo programador debería conocer al igual que Git.

Comentarios

Entradas populares