Instalar Docker

En éste artículo vamos a instalar Docker, pero primero vamos a explicar un poquito que es esto de Docker o Contenerización de cosas y también contar para que sirve o para que puede servir utilizar contenedores.

Docker o Contenedores?

Lo primero que se nos viene a la cabeza cuando hablamos de contenedores es Docker. Docker es una herramienta capaz de crear contenedores. No es la única, hay varias herramientas que son algo así como una competencia, pero si es la más conocida y utilizada. Por lo tanto, aunque podemos decir que Docker es contenerización no podemos decir que un contenedor es exclusivamente un Docker.

Según Docker, la definición que ellos suministran es la siguiente:

Docker empaqueta software en “contenedores” que incluyen en ellos todo lo necesario para que dicho software se ejecute, incluidas librerías. Con Docker se puede implementar y ajustar la escala de aplicaciones de una forma rápida en cualquier entorno con la garantía de que el código se ejecutará.

Uno podría entonces creer que Docker es una maquina virtual (VM) y esta afirmación sería un error. Pero porqué? Bueno, dentro de un contenedor no existe un hypervisor capaz de virtualizar hardware, por lo que solo estamos metiendo software dentro de un contenedor, esto es porque en realidad lo que se hace es utilizar las funcionalidades del Kernel para encapsular un sistema y herramientas varias y de esta manera el proyecto que corre adentro no tiene ni la menor idea de que está corriendo en un contenedor. Esa es la única diferencia?? No, hay más:

  • Los contenedores se están aislados entre sí y funcionan como máquinas independientes.
  • Iniciar un contenedor, a diferencia de una VM no tiene gran impacto ya que no tiene que iniciar un SO completo.
  • Un contenedor puede iniciar en segundos.
  • La demanda de recursos baja muchísimo y solo se requiere suministrar el consumo que la aplicación que contenga necesite.

Cómo trabaja Docker?

 Bueno, Docker trabaja exclusivamente con Contenedores Linux y posee un conjunto de tecnologías necesarias para poder formar un contenedor. Las tecnologías son las siguientes:

  • Namespaces: Permite a la aplicación que corre dentro del contenedor tener una vista de los recursos del sistema.
  • Cgroups: Permite limitar y medir los recursos que se encuentran disponibles en el SO.
  • Chroot: Crea su propio entorno de ejecución con su propio root y home, dándole al contenedor una “fake view” de lo que es el SO.

Estas son las características más notables de un contenedor:

  • Los contenedores son mucho más livianos que las VMs, esto se debe a que trabajan directamente sobre el Kernel.
  • No es necesario instalar un sistema operativo completo dentro de un contenedor.
  • Consume menos recursos de la máquina.
  • Mayor cantidad de contenedores por equipo físico.
  • Mejor portabilidad.
En la imagen podemos ver como se diferencian los contenedores Docker de las VMs

Ahora sí, pasemos a la instalación de Docker en tu sistema y empecemos a jugar un poco con él.

Pre-Requisitos

Sistema Operativo
Para instalar Docker se necesita alguna de las siguientes versiones de Ubuntu de 64 bits:

  • Ubuntu Hirsute 21.04
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)

El Engine de Docker es soportado por las siguientes arquitecturas: x86_64 o amd64, armhf, arm64 y s390x

Desinstalar versiones anteriores
Si ya existen versiones anteriors de cualquiera de los siguientes paquetes, es conveniente desinstalarlos: docker, docker.io, o docker-engine.

Para eso, ejecutar el siguiente comando:

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

Si el contenido de /var/lib/docker/, que incluye imágenes, volúmentes y redes no es requerido, se puede eliminar sin ningún inconveniente para poder realizar una instalación limpia de la aplicación.

Drivers de storage soportados ===
Docker Engine en Ubuntu soporta overlay2, aufs y btrfs .

Docker Engine usa overlay2 para almacenar información por defecto, en cambio si se requiere utilizar aufs se necesitará confirgurarlo manualmente.

Métodos de instalación
Existen varias formas de instalar Docker, dependiendo de las necesidades:

  • La forma más común es configurar los repositorios de Docker e instalar desde ahí. Ésta es la opción más recomendada.
  • Algunos usuarios bajan el paquete DEB e instalan desde ahí, hay que tener en cuenta que de esta manera, los upgrades también se deben realizar manualmente. Esta opción es ideal cuando el sistema no tiene acceso a internet.
  • En ambientes de testing o desarrollo, algunos usuarios crean scripts automatizados que instalan Docker. Esta opción no es recomendada para sistemas productivos.

Instalación utilizando los repositorios
Antes de instalar Docker por primera vez en un equipo nuevo, hay que agregar los repositorios de Docker. Luego de esto, se podrán realizar las tarea de instalación y actualización desde el repositorio.

Establecer el repositorio

*Actualizar el índice de apt e instale los paquetes necesarios para usar el repositorio sobre el protocolo HTTPS:

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

Agregar ña GPG key:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • Se puede utilizar el comando stable para utilizar la versión estable. También podría querer utilizarse las versiones nightly o test en el siguiente comando.

Nota: El comando lsb_release -cs retorna el nombre de la distribución de Ubuntu del ambiente. A veces en distribuciones como Linux Mint, hay que cambiar el comando por el nombre de la distribución. Por ejemplo para Linux Mint Tessa utilizar bionic.

$ echo \
"deb [arch=$(dpkg --print-architecture) 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

Instalar Docker

Actualizar el índice de apt, instalar la última versiónn de Docker y containerd, o saltar a la próxima sección e instalar una versión específica:

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

Para instalar una versión específica de Docker
Listar las versiones disponibles en el repositorio actual

$ apt-cache madison docker-ce

 docker-ce | 5:18.09.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
 docker-ce | 5:18.09.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
 docker-ce | 5:18.09.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
 docker-ce | 5:18.09.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
 docker-ce | 5:18.09.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

Instalar la versión específica utilizando el string de la segunda columna, por ejemplo:

5:18.09.4~3-0~ubuntu-bionic
sudo apt-get install docker-ce= docker-ce-cli= containerd.io

Verificar que Docker se encuentra correctamente instalado corriendo la imagen de hello-world.

$ sudo docker run hello-world

Leave a Comment

Your email address will not be published. Required fields are marked *