GNU/Linux >> Tutoriales Linux >  >> Cent OS

Instale LXC (Linux Containers) en RHEL, Rocky y AlmaLinux

LXD se describe como el administrador de contenedores y máquinas virtuales de próxima generación que ofrece una inmersión para los sistemas Linux que se ejecutan dentro de contenedores o como máquinas virtuales.

Proporciona imágenes para una cantidad excesiva de distribuciones de Linux con soporte para una amplia selección de backends de almacenamiento y tipos de red. También brinda la opción de instalar las imágenes en una PC/portátil individual e incluso en una instancia en la nube.

LXD le permite administrar contenedores y máquinas virtuales de tres maneras. Puede aprovechar el cliente lxc o herramienta de línea de comandos, una API REST o incluso integraciones de terceros.

Funciones LXD

LXD notable las características incluyen:

  • LXD está basado en imágenes con imágenes para una amplia selección de distribuciones de Linux.
  • Está construido con la seguridad como máxima prioridad.
  • Proporciona una API REST y una herramienta de línea de comandos lxc para interactuar con contenedores.
  • Proporciona soporte para una amplia gama de backends de almacenamiento, volúmenes de almacenamiento y grupos de almacenamiento.
  • La administración de la red se realiza a través de la creación de redes puente y túneles entre hosts.
  • Control avanzado de recursos como CPU, RAM, uso de disco, bloque de E/S y recursos del kernel.
  • Flexible y escalable:puede implementar contenedores en su PC y configurar un clúster que puede agregar miles de contenedores en varios nodos.

¿Qué es LXC?

No debe confundirse con el lxc Herramienta de cliente de línea de comandos proporcionada por LXD , LXC (Contenedor de Linux ) es una tecnología de virtualización a nivel de sistema operativo popular que utiliza una potente API y otras herramientas para permitir a los usuarios crear y administrar sin problemas contenedores y máquinas virtuales en un solo host. Comprende plantillas, lenguaje de herramientas y enlaces de biblioteca.

Características de LXC

LXC aprovecha las siguientes características del kernel para manejar procesos:

  • Espacios de nombres del kernel:pid, mount, uts network y user.
  • CGroups (grupos de control).
  • Chroots:uso de pivot_root.
  • Políticas de Seccomp.
  • Perfiles SELinux y Apparmor.

Linuxcontainers.org es el proyecto paraguas detrás de ambos LXD y LXC . Su objetivo es ofrecer una plataforma independiente de distribuciones y proveedores para las tecnologías de contenedores de Linux.

Con esa introducción fuera del camino, ahora demostraremos cómo crear y administrar LXC contenedores en distribuciones de Linux basadas en RHEL como CentOS , Rocky Linux, y AlmaLinux .

Requisitos

Un sistema operativo Linux que funcione con una instalación mínima:

  • Instalación de RHEL Linux
  • Instalación de CentOS Linux
  • Instalación de Rocky Linux
  • Instalación de AlmaLinux

Paso 1:Establezca SELinux en modo permisivo

De inmediato, comenzaremos configurando SELinux y establecerlo en permisivo. Pero antes de hacerlo, actualicemos los paquetes del sistema de la siguiente manera:

$ sudo dnf update

Para configurar SELinux a permisivo, ejecute el comando:

$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Para que esto surta efecto, reinicie su servidor.

$ sudo reboot

Y confirme el estado de SELinux .

$ getenforce

Paso 2:Instale el repositorio EPEL

EPEL es un repositorio del Proyecto Fedora que proporciona un conjunto de paquetes de alta calidad para RedHat Enterprise Linux y otras distribuciones basadas en RHEL.

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo yum install epel-release

Paso 3:agregue los parámetros del kernel

Antes de instalar LXD , se requieren algunos parámetros adicionales. Por lo tanto, cambie a usuario root:

$ su -

Y agregue los parámetros de la siguiente manera.

$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
$ grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
$ echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf

Una vez que los parámetros estén en su lugar, continúe y habilite Snap.

Paso 4:Instalar y habilitar Snap

La forma más sencilla de instalar LXD en RHEL 8 es instalarlo como un snap paquete. Pero primero, instalemos snap de la siguiente manera.

$ sudo dnf install snapd

Esto instalará snapd daemon o servicio junto con otras dependencias de Python como se muestra.

Con el complemento instalado, proceda y habilite el complemento principal toma de comunicación.

$ sudo systemctl enable --now snapd.socket

Además, habilite el soporte clásico creando un enlace simbólico desde /var/lib/snapd/snap para /ajustar .

$ sudo ln -s /var/lib/snapd/snap  /snap

Para actualizar el snap rutas, reinicie su sistema.

$ sudo reboot

Paso 5:Instale el administrador de contenedores LXD

Hay dos formas de instalar LXD de un snap . Puede instalar la última versión de LXD como se muestra.

$ sudo snap install —-classic lxd

Alternativamente, puede instalar el último LTS estable versión de la siguiente manera:

$ sudo snap install lxd --channel=4.0/stable

Para poder ejecutar lxc comandos sin cambiar a usuario sudo, agregue el usuario actualmente conectado a lxd grupo.

$ sudo usermod -aG lxd $USER

Verifique que el usuario se haya agregado a lxd grupo enumerando todos los grupos a los que pertenece el usuario.

$ groups tecmint

A continuación, ejecute newgrp comando de la siguiente manera.

$ newgrp lxd

El comando cambia el ID de grupo actual durante una sesión de inicio de sesión. Establece el ID de grupo actual en el grupo nombrado que es lxd .

Paso 6:inicialización del entorno LXD

Antes de comenzar a crear y administrar LXD contenedores, necesitamos inicializar el LXD entorno ejecutando el comando.

$ lxc init

Lo que sigue es una serie de indicaciones que le permitirán configurar su entorno. Los valores predeterminados funcionarán bien, pero siéntete libre de especificar tus propias preferencias.

Hemos creado un grupo de almacenamiento llamado tec-pool con el lvm opción como backend.

Para verificar el LXD entorno que acaba de configurar, hay una serie de comandos que puede utilizar. Por ejemplo, para mostrar el perfil LXD predeterminado, ejecute:

$ lxc profile show default

Para mostrar los adaptadores de red y el IPv4 y IPv6 direcciones, ejecute:

$ lxc network list

Puede reducirlo aún más y mostrar información más precisa sobre el lxdbr0 interfaz de la siguiente manera.

$ lxc network show lxdbr0

También puede verificar el grupo de almacenamiento.

$ lxc storage list

Puede obtener más detalles complejos sobre el grupo de almacenamiento.

$ lxc storage show tec-pool

Para listar en ejecución lxc contenedores, ejecute el comando:

$ lxc list

Por el momento, todavía no tenemos ningún contenedor en funcionamiento. Entonces obtendrá una tabla vacía con solo las etiquetas de las columnas.

Paso 7:enumeración de imágenes de contenedores LXC prediseñadas

Al igual que Docker , el LXC plataforma proporciona un repositorio de imágenes preconstruidas a partir de las cuales puede crear contenedores. Para enumerar todas las imágenes prediseñadas para todos los sistemas operativos, incluidas las máquinas virtuales, ejecute el comando:

$ lxc image list images: 

Esto completa una enorme lista de imágenes de contenedores y máquinas virtuales para todos los sistemas operativos. Para limitarse a una distribución de Linux específica, utilice la sintaxis:

$ lxc image list images: grep -i os-type

Por ejemplo, para buscar imágenes disponibles para Rocky Linux , ejecute el comando:

$ lxc image list images: grep -i rocky

Si está buscando Debian imágenes, ejecute el comando:

$ lxc image list images: grep -i debian

Paso 8:lanzamiento de contenedores LXC

Para iniciar lxc contenedores, utilice la sintaxis:

$ lxc launch images:{distro}/{version}/{arch} {container-name-here}

Aquí lanzaremos 2 contenedores:tec-container1 de Debian 10 y tec-container2 de Rocky Linux 8 .

$ lxc launch images:debian/10/amd64 tec-container1
$ lxc launch images:rockylinux/8/amd64 tec-container2 

Para enumerar el lxc contenedores, ejecute el comando:

$ lxc list

La salida muestra una gran cantidad de información sobre los contenedores. Esto incluye el nombre de los contenedores, el estado, ya sea en ejecución o detenido, las direcciones IPv4 e IPv6, el tipo (ya sea un contenedor o una máquina virtual) y una cantidad de instantáneas.

Para enumerar solo los contenedores en ejecución, ejecute el comando:

$ lxc list | grep -i running

Del mismo modo, para contenedores detenidos, ejecute:

$ lxc list | grep -i stopped

Puede sondear la información y las métricas de un contenedor, como los procesos en ejecución, la utilización de CPU y memoria, y el ancho de banda, por mencionar algunos, mediante el comando:

$ lxc info tec-container1 

Paso 9:obtenga acceso Shell a un contenedor LXC

Puede obtener acceso bash a un contenedor utilizando la sintaxis:

$ lxc exec container-name  name-of-the-shell

Para obtener acceso shell a tec-container1 , ejecutaremos el comando:

$ lxc exec tec-container1 bash

Una vez que haya obtenido acceso al shell, puede comenzar a interactuar con el contenedor como usuario raíz ejecutando los comandos comunes del shell, incluida la actualización del sistema, como se muestra:

$ apt update

Para salir del contenedor, ejecute el comando:

$ exit

Alternativamente, puede ejecutar los comandos directamente en el contenedor sin acceder al shell usando el siguiente formato:

$ lxc exec container-name command

Por ejemplo, puede ejecutar los siguientes comandos que actualizarán las listas de paquetes, comprobarán la versión del sistema operativo que se ejecuta en el contenedor Debian y comprobarán la fecha.

$ lxc exec tec-container1 apt update
$ lxc exec tec-container1 cat /etc/debian_version
$ lxc exec tec-container1 date

Paso 10:tirar/empujar un archivo(s) a un contenedor LXC

Otra operación que puede realizar es transferir archivos hacia y desde el contenedor. Para demostrar esto, crearemos un nuevo directorio en el LXD contenedor y navegue hacia él.

# mkdir data && cd data

A continuación, crearemos un archivo de muestra y agregaremos algunos datos. Para hacerlo, crearemos un archivo de muestra con vim redactor

# vim file1.txt

A continuación, escribiremos un texto de muestra y guardaremos el archivo.

Hello World, Welcome to LXD containers.

Para extraer el archivo del contenedor al sistema host local, usaremos la sintaxis:

$ lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}

En este caso, el comando será:

$ lxc file pull tec-container2/root/data/file1.txt /home/tecmint

Para enviar o copiar un archivo desde el directorio local al contenedor, use la sintaxis:

$ lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/

En este caso, tenemos un archivo de muestra en el directorio de inicio llamado file2.txt siendo copiado a /root/data/ ruta en el tec-container2 contenedor.

$ lxc file push /home/tecmint/file2.txt tec-container2/root/data/

Para confirmar la existencia del archivo en el contenedor ejecutaremos:

$ lxc exec tec-container2 ls /root/data

Paso 11:detener/iniciar/reiniciar y eliminar contenedores LXC

Con el lxc utilidad de línea de comandos, puede realizar tareas de administración de contenedores, como detener, iniciar, reiniciar y eliminar contenedores.

Para detener un lxc contenedor, use la sintaxis:

$ lxc stop container-name

Por ejemplo, para detener tec-container1 , ejecutaremos el comando:

$ lxc stop tec-container1

Para iniciar el lxc contenedor, use la sintaxis:

$ lxc start container-name

Por ejemplo, para iniciar tec-container1 , ejecutaremos:

$ lxc start tec-container1

Para reiniciar ambos lxc contenedores, ejecutaremos el comando:

$ lxc restart tec-container1
$ lxc restart tec-container2

Para eliminar un lxc contenedor, primero debe detener el contenedor y luego eliminarlo. Por ejemplo, para borrar ejecutaremos los comandos:

$ lxc stop tec-container1
$ lxc delete tec-container1

Alternativamente, puede combinar estos dos comandos como se muestra.

$ lxc stop tec-container1 && lxc delete tec-container1

Paso 12:Obtenga ayuda sobre las opciones de línea de comandos de LXC

Para obtener ayuda sobre otras opciones de comando proporcionadas por LXC , simplemente ejecute el comando:

$ lxc --help
OR
$ lxc command --help e.g
$ lxc file --help
Conclusión

Esa fue una inmersión profunda en LXD contenedores y cómo puede crearlos y administrarlos usando el lxc herramienta de utilidad de línea de comandos. Confiamos en que esta guía le haya resultado útil.


Cent OS
  1. Cómo instalar MediaWiki en RHEL 8/Rocky Linux 8/AlmaLinux OS 8

  2. Cómo instalar la GUI de GNOME en Rocky Linux 8 / CentOS 8 / RHEL 8

  3. Cómo instalar PostgreSQL en CentOS 8 / Rocky Linux 8 / RHEL 8

  4. Cómo instalar Java en Rocky Linux 8 / CentOS 8 / RHEL 8

  5. Cómo instalar VirtualBox en Rocky Linux 8 / CentOS 8 / RHEL 8

Cómo instalar Jenkins en AlmaLinux 8 o Rocky Linux

Cómo ejecutar contenedores LXC/LXD en AlmaLinux o Rocky Linux 8

Instala Discord en AlmaLinux o Rocky Linux 8

Cómo instalar ClamAV en Rocky Linux 8 | AlmaLinux

Cómo instalar Podman en Rocky Linux 8 / AlmaLinux para ejecutar Contenedores

Instale Centreon Monitoring en AlmaLinux 8 | Linux rocoso 8