Instalación de Docker CE en Ubuntu

¿Qué es Docker CE?

Docker no necesita presentación. Se trata de un programa que realiza virtualización a nivel de sistema operativo, en unidades llamadas contenedores. Si bien existen muchos tipos de contenedores, y de virtualizaciones, esta tecnología se ha impuesto en el mercado por su sencillez de uso, su versatilidad, su eficiencia y un repositorio público donde puedes disponer de casi cualquier aplicación en cuestión de segundos. Además, puedes crearte tus propios contenedores con un lenguaje muy sencillo.

A día de hoy, es la forma más sencilla de probar cualquier software, pues no interfiere con tu sistema operativo. Por poner un ejemplo, si instalas cualquier programa en linux con un apt-get instalarás un montón de librerías, creará directorios, cambiará servicios… puede hasta que interfiera con tu actual instalación. Con Docker, todo está dentro del contenedor. Puedes tener distintas versiones corriendo simultáneamente, el mismo software corriendo múltiples veces, escalar automáticamente, actualizar y si hay cualquier problema volver a la versión anterior en cuestión de segundos… hay un sinfín de posibilidades.

Con Docker CE (Community Edition) , la compañía ha decidido separar sus servicios empresariales, con servicios premium y de soporte, de la versión de la comunidad. ¿Significa eso que la versión de la comunidad tiene menos soporte o uso? No. Solo significa que es la gratuita. Empresas tan fuertes como Amazon están utilizando actualmente la community edition en sus servicios en la nube, así que no tienes que preocuparte.

Instalación paso a paso de docker

Ya hemos instalado ubuntu (en el ejemplo, usamos la versión 20.04 LTS), , ya sea en nuestra terminal o en un servidor privado virtual. Ahora queremos añadirle Docker. Para instalar Docker CE, vamos a hacer uso de la terminal de Ubuntu. Si tienes una interfaz gráfica pulsa en el icono de la terminal o, si lo prefieres, utiliza la combinación de teclas <ctrl>+<shift>+<t>. La instalación está basada en la descripción oficial de la página de los creadores, si bien la hemos simplificado paar que te resulte más sencilla. En la documentación oficial encontrarás cómo instalar en cualquier plataforma, así como un sinfín de información que puede resultar apabullante a primera vista.

Desinstala cualquier versión anterior de docker

Sáltate este paso si es la primera vez que intentas instalar docker en tu sistema, es decir, si escribes docker en tu terminal y no reconoce el comando.

Si has hecho algún intento de instalación o vienes de una versión antigua, es recomendable que ejecutes el siguiente comando:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

¿Por qué hacemos esto? Hay muchos usuarios que se lanzan a ejecutar apt install y la primera palabra que se les ocurra (docker, ¿cierto? ;-)). En este caso, resulta que el paquete de docker community edition se llama docker-ce.

Configura el repositorio

Instala algunos paquetes necesarios

Necesitarás instalar los siguientes paquetes para empezar. Ejecuta el comando en la terminal. Es posible que la mayoría se encuentren instalados.

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

Añade la clave GPG oficial

 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Añade el repositorio

$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instala Docker CE

Como siempre, empleamos el siguiente comando antes de proceder a una instalación:

$ sudo apt-get update

Y se instala así:

$sudo apt-get install docker-ce docker-ce-cli containerd.io

El proceso de instalación instala un servicio que arrancará automáticamente al iniciar el equipo junto con los contenedores a los que les hayas pedido que arranquen solos.

Comprueba que funciona

Este es  nuestro primer comando. Si funciona, significa que hemos instalado docker perfectamente, que puede conectar con el servidor, que se descarga una imagen, que puede ejecutarl la imagen y mostrar el resultado.

$sudo docker run hello-world

Deberías ver algo similar a lo siguiente:

[email protected]:~$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a53596e83578c7dea15e27a73011bde402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

¡Fantástico! tu sistema ya esta listo para trabajar con contenedores docker.

Cómo actualizar tu versión

Las instrucciones de la página oficial de docker indican que procedas con los pasos de instalación. Es muy sencillo, para actualizar a la última versión, utiliza el mismo comando que durante la instalación:

$ sudo apt-get install docker-ce

Pasos post-instalación

Configura tu usuario para utilizar docker

Necesitrarás que tu usuario pueda ejecutar los comandos de control para no andar escribiendo «sudo docker». Esto se hace añadiendo tu usuario al grupo de docker.

$ sudo usermod -aG docker $USER

A partir de ahora (ojo, necesitas hacer un logout y un login del ususario) podrás emplear los comandos Docker sin necesidad de prefijarlos con sudo y sin ser root durante tu tarea diaria.

Configura docker para que arranque al iniciar el sistema

Docker es un servicio. Por nuestra experiencia, está habilitado al inicio por defecto. Sin embargo, la propia documentación de docker indica que en Ubuntu debes seguir este paso, así que por favor comprueba si docker se inicia al arrancar, y si no, lo que tienes que hacer es decirle al gestor de servicios que lo arranque al iniciar el sistema. En la terminal de Ubuntu lo hacemos así:

$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

Cambiar la rotación de los logs

¡Esto es importante! Si estás iniciándote en docker, y te encanta como a nosotros, te verás instalando un par de databases y servicios de prueba en tu laboratorio personal o tu empresa. Todo funciona perfectamente, pero un día… ¡Tu sistema se cuelga! Al margen de que esto significa que tienes que invertir algún tiempo en monitorización de tus sistemas, es muy posible que te hayas quedado sin disco, y esto es un error que hemos visto cometer a muchísima gente que se inicia en docker. ¿El causante? Los logs de los contenedores.

Por defecto, los logs se mantienen de manera indefinida, y una base de datos de desarrollo puede llenar fácilmente algunos gigabytes al día. Poco a poco, tu disco se irá llenando, y tu sistema acaba colapsando por falta de disco. Evítalo configurando la rotación de los logs. Por defecto, docker usa json-file como controlador de almacenamiento (storage driver). Debes sencillamente elegir el número de ficheros máximos de log que guardará un contenedor y su rotación.

Edita el fichero daemon.json que se encuentra en /etc/docker con los siguientes valores:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3" 
  }
}

Esto generará tres ficheros de log por contenedor con un máximo de 10 Megabytes cada uno, lo cual es suficiente para la mayoría de los logs. Para trabajos en producción, deberías de tener centralizada tu infraestructura de logs, por ejemplo con ELK stack. Más adelante puedes personalizarlo según tus necesidades en cada contenedor. ¡Pero no te saltes este paso o los fantasmas del disco lleno te atacarán en el momento menos inesperado!

Hasta aquí nuestra instalación básica. Tenemos mucho más que decir, como por ejemplo la instalación de docker-compose y otras herramientas de orquestación de infraestructuras que harán tu vida mucho más sencilla. ¿Tienes alguna duda, sugerencias? ¿Te gustaría que cubriésemos algún tema en profundidad? ¡Te esperamos en los comentarios!

(Visto 4.242 vecess, 1 visitas hoy)
¡Comparte este articulo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *