Cómo instalar y desplegar contenedores con containerd y nerdctl
Containerd es otro motor de tiempo de ejecución de contenedores que puedes instalar libremente en la mayoría de las distribuciones de Linux y se considera más eficiente y seguro que Docker. Containerd puede:
- Limitar la asignación de memoria y CPU compartida a contenedores mediante cgroups
- Prevenir el acceso a procesos del host desde un contenedor
- Extraer una imagen de contenedor en una porción aislada del sistema host
- Crear espacios de nombres UID que se mapeen a un UID diferente en el host
- Configurar las variables de entorno dentro de un contenedor
- Qué necesitas para desplegar un contenedor con containerd y nerdctl
- Cómo instalar las dependencias necesarias
- Cómo instalar Nerdctl
- Cómo configurar el sistema para ser rootless
- Cómo desplegar un contenedor con nerdctl
Limitar la asignación de memoria y CPU compartida a contenedores mediante cgroups
Con containerd puedes limitar la cantidad de memoria y CPU asignada a cada contenedor utilizando cgroups.
Prevenir el acceso a procesos del host desde un contenedor
Containerd evita que los procesos dentro de un contenedor puedan acceder a los procesos del sistema operativo host.
Extraer una imagen de contenedor en una porción aislada del sistema host
Puedes extraer una imagen de contenedor utilizando containerd en una parte aislada del sistema host, garantizando así la separación entre los recursos del contenedor y el host.
Crear espacios de nombres UID que se mapeen a un UID diferente en el host
Con containerd puedes crear espacios de nombres UID que se mapean a UIDs diferentes en el sistema operativo host, mejorando la seguridad y el aislamiento de los contenedores.
Detectando errores y problemas en tu proyecto con SonarQubeConfigurar las variables de entorno dentro de un contenedor
Containerd te permite configurar las variables de entorno para personalizar el entorno en el que se ejecuta un contenedor.
Por sí solo, containerd no es muy útil. Para hacerlo realmente útil como medio para implementar contenedores, debes agregar otra pieza al rompecabezas: nerdctl. Permíteme mostrarte cómo agregar nerdctl a un sistema con containerd habilitado y luego desplegar un contenedor con esta combinación.
Qué necesitas para desplegar un contenedor con containerd y nerdctl
Lo único que necesitas para que esto funcione es un sistema con containerd instalado – consulta mi artículo sobre cómo instalar containerd aquí – y un usuario con privilegios sudo.
Cómo instalar las dependencias necesarias
Primero, necesitamos instalar algunas dependencias. Primero, instala uidmap con el siguiente comando:
sudo apt-get install uidmap -y
A continuación, instala RootlessKit con el siguiente comando:
Cómo configurar una dirección IP estática en Rocky Linux 9sudo apt-get install rootlesskit -y
Cómo instalar Nerdctl
A continuación, necesitamos instalar nerdctl. Primero, descarga nerdctl con el siguiente comando:
wget https://github.com/containerd/nerdctl/releases/download/v0.22.2/nerdctl-0.22.2-linux-amd64.tar.gz
Descomprime el archivo con el siguiente comando:
sudo tar Cxzvf /usr/local/bin nerdctl-0.22.2-linux-amd64.tar.gz
Prueba la instalación de nerdctl con el siguiente comando:
Aprende SQL y mejora tu productividad en los negocios con este paquete de certificación.which nerdctl
Debería mostrar la ruta:
/usr/local/bin/nerdctl
Cómo configurar el sistema para ser rootless
Primero, crea un nuevo archivo systemd con el siguiente comando:
sudo nano /etc/sysctl.d/99-rootless.conf
En ese archivo, pega el siguiente contenido:
Cómo cambiar la ubicación de almacenamiento de GNOME Boxes en Linuxkernel.unprivileged_userns_clone=1
Finalmente, configura containerd para ser rootless con el siguiente comando:
containerd-rootless-setuptool.sh install
Ahora deberías poder desplegar tu primer contenedor con containerd y nerdctl.
Cómo desplegar un contenedor con nerdctl
Desplegar un contenedor con nerdctl es muy similar a hacerlo con Docker. Por ejemplo, desplegar el contenedor de NGINX con Docker podría verse así:
docker run --name docker-nginx -p 8080:80 -d nginx:alpine
Para desplegar un contenedor de NGINX con nerdctl, el comando sería:
sudo nerdctl run --name nerdctl-nginx -p 8080:80 -d nginx:alpine
La mayor diferencia es que, por defecto, debes desplegar contenedores con nerdctl utilizando sudo. Podemos evitar eso ejecutando los siguientes dos comandos:
sudo sh -c "echo 1 > /proc/sys/kernel/unprivileged_userns_clone"
sudo sysctl --system
Después de ejecutar los comandos anteriores, puedes desplegar el contenedor con:
nerdctl run --name nerdctl-nginx -p 8080:80 -d nginx:alpine
Y eso es todo, otro método más para desplegar contenedores gracias a la combinación de containerd y nerdctl. ¡Feliz despliegue!
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo instalar y desplegar contenedores con containerd y nerdctl , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados