lunes, 12 de julio de 2021

Docker para principiantes.


Logo de Docker con fichas de Lego


Docker para Principiantes.

   A groso modo lo que hace este programa es encapsular una aplicación en un contenedor, con todo lo que necesita para que funcione en cualquier entorno (sistema operativo, bibliotecas, interpretes, bases de datos etc). La idea es ejecutar programas sin que dependan tanto del sistema operativo, simplemente el contenedor se encarga de ejecutar la aplicación.

Como cada contenedor va a tener su propio espacio, nos permitirá utilizar varios contenedores de diferentes programas sin que interfieran entre ellos y de una manera muy eficiente. (las aplicaciones funcionan de forma aislada). Tienen un rendimiento muy similar al que obtendríamos si instaláramos directamente ese programa en nuestro sistema operativo. Lo entenderás mejor cuando veas los ejemplos.

Instalación de Docker en Ubuntu.

Docker o Docker Engine en Linux era originalmente un terminal. Una instalación que funciona comprende el Motor Docker, un daemon que ejecuta sus contenedores, y la interfaz de línea de comandos (CLI) docker para interactuar con el daemon.

Docker Desktop es una forma alternativa de utilizar Docker. Inicialmente sólo estaba disponible para Windows y Mac, pero se lanzó para Linux en mayo de 2022. Docker Desktop en Ubuntu requiere un procesador AMD64 y Ubuntu 21.10 o 22.04. Ofrece una interfaz gráfica para gestionar tus contenedores, un clúster Kubernetes integrado y soporte para extensiones de terceros. Docker Desktop también te ofrece las CLIs docker y Docker Compose.

Docker Desktop se diferencia de Docker Engine en que utiliza una máquina virtual para ejecutar tus contenedores (por lo que Docker Desktop es necesario para los usuarios de Windows y MacOS). Aunque es posible utilizar ambos flavors uno al lado del otro en Ubuntu, puedes encontrar conflictos entre las versiones de la CLI de docker. Lo mejor es elegir una y ceñirse a ella. Elige Docker Engine si te sientes cómodo en tu terminal y quieres el mejor soporte y rendimiento. La VM de Docker Desktop es ligeramente más pesada, pero es la mejor opción si quieres una interfaz de usuario integrada o piensas utilizar Kubernetes.

Te recomiendo que busques en la siguiente página web la opción más actual para instalar o bien Docker o Docker Desktop. Las instrucciones de instalación deberían encontrarse en https://docs.docker.com/get-docker/

Más o menos los pasos deberían ser los siguientes:

1.-  Actualizamos los repositorios e instalamos los paquetes necesarios para que la aplicación apt pueda usar repositorios sobre https.

$ sudo apt-get update

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

2.- Añadimos la llave GPG oficial de Docker.

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


3.- Configuramos la aplicación para que utilice el repositorio estable de docker.

 $ 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


4.- Instalamos Docker propiamente dicho con:

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

Si todo ha ido bien ya tenemos Docker instalado en nuestro equipo. Primeramente vamos a ver que todo este bien comprobando la versión que tenemos instalada. Para ello ejecutamos:

$ docker version
Docker version 20.10.7, build f0df350

Si no puedes ver la salida de la instrucción prueba utilizando "sudo" delante. Para no tener que hacer esto con cualquier instrucción de docker tenemos que añadirlo a nuestro grupo de usuarios. Para ello vamos a la sección de post instalación  y seguimos los tres puntos que nos indican:

1.- Creamos el grupo Docker y agregamos nuestro usuario. 

Advertencia

El grupo Docker tiene privilegios equivalentes a los del usuario root. Si quieres saber más detalles de como esto afecta a la seguridad de tu sistema echa un vistazo a Docker Daemon Attack Surface.

 $ sudo groupadd docker

Nota si al ejecutar Docker --version no te dio error seguramente te dirá ahora que ya existe el grupo Docker.

2.- Añadimos nuestro usuario al grupo de Docker.

 $ sudo usermod -aG docker $USER

3.- Ahora tenemos que cerrar la sesión y volver a abrirla para que los cambios tengan efecto. Si estás utilizando una máquina virtual puede ser necesario reiniciarla para que los cambios tengan efecto. Ya deberiamos poder utilizar cualquier instrucción de docker sin tener que teclear "sudo".


Instalación de Docker en una Raspberry Pi.