Categorías
24.04 Docker HowTos

Instalar Containerd en Ubuntu 24.04

En este tutorial, te guiaré paso a paso sobre cómo instalar Containerd en Ubuntu 24.04. Containerd es un tiempo de ejecución de contenedores esencial para desplegar y gestionar aplicaciones en entornos Linux. Seguir estos pasos te permitirá configurar Containerd de manera rápida y sencilla en tu sistema Ubuntu 24.04, asegurando un despliegue eficiente y confiable de contenedores en tu infraestructura.

Containerd es un tiempo de ejecución de contenedores de código abierto que se enfoca en proporcionar una plataforma robusta y confiable para ejecutar contenedores en sistemas operativos Linux. Fue desarrollado originalmente por Docker y luego se donó a la Cloud Native Computing Foundation (CNCF). Containerd es utilizado por varios sistemas de orquestación de contenedores, como Kubernetes, para administrar la creación, ejecución y destrucción de contenedores de manera eficiente y confiable. Proporciona una interfaz para administrar imágenes de contenedores, la creación de contenedores y su ciclo de vida. Además, ofrece características avanzadas como la capacidad de administrar volúmenes, redes y la interacción con los sistemas de archivos subyacentes.

(Generado con ChatGPT 3.5)

Procedimiento para instalar containerd en Ubuntu 24.04:

El primer paso como siempre es actualizar la informaciónd de la biblioteca de paquetes. Y actualizar nuestro sistema.

sudo apt update
sudo apt full-upgrade

Una vez finalizada la actualización procedemos a instalar containerd en nuestro equipo con Ubuntu 24.04.

sudo apt install containerd
sudo systemctl enable --now containerd

Y verificamos que todo funcione ejecutando:

sudo systemctl status containerd
Capuptura de pantalla de la ejecución del comando.

sudo systemctl status containerd

Verificando la instalación de containerd en ubuntu 24.04

<- Y ahora como ejecuto un contenedor???
-> Necestiamos un instalar nerdctl.

Que es «nerdctl»:

Nerdctl es una herramienta de línea de comandos compatible con Docker, pero impulsada por containerd. Proporciona una interfaz de línea de comandos similar a Docker, lo que facilita la transición de los usuarios de Docker a containerd. Sin embargo, en lugar de utilizar el demonio Docker, nerdctl interactúa directamente con containerd. Esto significa que se puede utilizar para administrar contenedores sin necesidad de Docker. Nerdctl está diseñado para ser más ligero y eficiente que Docker, ya que aprovecha las funcionalidades de containerd de manera más directa.

(Generado con ChatGPT 3.5)

Procedimiento para instalar nerdctl:

Acá nos encontramos con la primera «dificultad», nerdctl no esta como paquete al momento de crear este tutorial. Hay que instalarlo a mano.

Para eso lo primero que vamos a hacer es crear el directorio .local en nuestro home.
Luego accedemos al ~/.local y descargamos y descomprimimos los binarios de nerdctl y complementos.

mkdir -p ~/.local/
cd ~/.local/
curl -L https://github.com/containerd/nerdctl/releases/download/v1.7.6/nerdctl-full-1.7.6-linux-amd64.tar.gz | tar xz

Ejecutando un contenedor con nerdctl:

Y para verificar que todo funcione, vamos a ejecutar el contenedor hello-world, el binario de nerdctl esta en el ~/.local/bin/

cd ~/.local/bin
sudo ./nerdctl --cni-path=$HOME/.local/libexec/cni run hello-world
Impresión de pantalla de la ejecución del contenedor hello-world (hola mundo).

En este ejemplo vemos que tenemos que definir la ruta del binario cni (para habilitar el networking en los contenedores).

Para simplificar la operatoria, voy a crear un alias, que me permita ejecutar este comando desde cualquier ruta y no tener que definir la ubicación del binario «cni» cada vez que quiero ejecutar un contendor.

echo "alias nerdctl=\"sudo $HOME/.local/bin/nerdctl --cni-path=$HOME/.local/libexec/cni \"" >> ./.bash_aliases

Para que el cambio surja efecto tengo que cerrar la terminal y abrir una nueva.

Y si ahora ejecuto desde mi home el comando funciona igual.

nerdctl run hello-world
Impresión de pantalla de la ejecución del contenedor hello-world (hola mundo) usando el alias.

Ejecutando / Desplegando un compose:

Para este paso voy a usar un compose simple que había utilizado en el tutorial Docker-Compose MySQL SERVER 5.7.

El docker-compose.yml tiene este contenido:

version: '3.1'

services:
  db:
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: S3cr3t0
    volumes:
      - /var/docker-data/mysql-5.7:/var/lib/mysql

Y lo tengo ubicado en /docker-compose/mysql 5.7

nerdctl compose up
Prueba de ejecución de un docker-compose.yml utilizando contiainerd y nerdctl en ubuntu 24.04
Esta captura es de la segunda vez que lo ejecuté y no esta el log de descarga de las distintas capas que componen este contenedor.

Verifico que funcione correctamente primero listando los contenedores en ejecución.

nerdctl ps
Salida de la ejecución del comando nerdctl ps

Y después me contecto al motor utilizando el Oracle SQL Developer con el procedimientonerdctl ps descripto en este tutorial.

Oracle SQL Developer conectado al contenedor MySQL 5.7.

Es una instalación containerd en Ubuntu 24.04 .

Una vez terminadas las pruebas bajamos el compose con el comando:

nerdctl compose down

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.