Instale LXC (contenedores de Linux) en Rhel, Rocky y Almalinux

Instale LXC (contenedores de Linux) en Rhel, Rocky y Almalinux

Lxd se describe como el contenedor de próxima generación y el Administrador de máquinas virtuales que ofrece un inmersivo para sistemas Linux que ejecutan contenedores internos o como máquinas virtuales.

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

Lxd le permite administrar contenedores y máquinas virtuales utilizando tres formas. Puedes aprovechar el cliente LXC o herramienta de línea de comandos, una API REST o incluso integraciones de terceros.

Características LXD

Notable Lxd 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 seguridad como una prioridad.
  • Proporciona una herramienta REST API y LXC de línea de comandos para interactuar con contenedores.
  • Proporciona soporte para una amplia gama de backends de almacenamiento, volúmenes de almacenamiento y grupos de almacenamiento.
  • La gestión de la red se realiza a través de la creación de redes de puentes y túneles de host cruzados.
  • Control avanzado de recursos como CPU, RAM, uso de disco, E/S de bloque y recursos del núcleo.
  • Flexible y escalable: puede implementar contenedores en su PC y configurar un clúster que pueda agregar miles de contenedores en varios nodos.

Que es lxc?

No estar confundido 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 popular de nivel del sistema operativo que utiliza una potente API y otras herramientas para permitir a los usuarios crear y administrar 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 núcleo para manejar los procesos:

  • Espacios de nombres del núcleo: PID, Monte, Network UTS y usuario.
  • CGROUPS (grupos de control).
  • Chroots - Uso de Pivot_root.
  • Políticas de seccomp.
  • Perfiles de Selinux y Apparmor.

Linuxcontainers.org es el proyecto paraguas detrás de ambos Lxd y LXC. Su objetivo es ofrecer una plataforma de distribución y proveedor neutral 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 con sede en RHEL como Cento, Rocky Linux, y Almalinux.

Requisitos

Un sistema operativo Linux que trabaja 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: configure 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 actualización 

Para establecer Selinux Para permitir, ejecute el comando:

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

Para que esto entre en vigencia, reinicie su servidor.

$ sudo reinicio 

Y confirmar el estado de Selinux.

$ getenforce 
Verifique el modo Selinux

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 instalación https: // dl.federaproject.org/pub/epel/epel-liber-latest-8.noarch.RPM o $ sudo yum instalación EPEL-liberación 
Instalar el repositorio EPEL

Paso 3: Agregue los parámetros del núcleo

Antes de instalar Lxd, Se requieren algunos parámetros adicionales. Por lo tanto, cambie al usuario root:

$ su - 

Y agregue los parámetros de la siguiente manera.

$ grubby --args = "user_namespace.enable = 1 "-update-kernel =" $ (grubby --fault-kernel) "$ grubby --args =" espacio de nombres.sinsev_enable = 1 "-update-kernel =" $ (grubby --fault-kernel) usuarios de "$ echo".max_user_namespaces = 3883 "| sudo tee -a /etc /sysctl.d/99-userns.confusión 
Agregar parámetros del núcleo Linux

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 quebrar paquete. Pero primero, instalemos quebrar como sigue.

$ sudo dnf instalación snapd 

Esto se instalará Snapd demonio o servicio junto con otras dependencias de Python como se muestra.

Instale Snap en Linux

Con Snap instalado, continúe y habilite el principal quebrar zócalo de comunicación.

$ sudo systemctl habilitarse -pero snapd.enchufe 

Además, habilite el soporte clásico creando un enlace simbólico de /var/lib/snapd/snap a /quebrar.

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

Para actualizar el quebrar rutas, reiniciar su sistema.

$ sudo reinicio 

Paso 5: Instale el administrador de contenedores LXD

Hay dos formas de instalar Lxd a partir de una quebrar. Puede instalar la última versión de Lxd como se muestra.

$ sudo Snap Install -Classic LXD 
Instalar LXD en Linux

Alternativamente, puede instalar el último establo LTS Versión de la siguiente manera:

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

Para poder ejecutar LXC comandos sin cambiar al usuario de sudo, agregue el usuario iniciado actualmente al usuario lxd grupo.

$ sudo usermod -ag lxd $ user 

Verifique que el usuario haya sido agregado al lxd agrupar enumerando todos los grupos a los que pertenece el usuario.

$ grupos TecMint 
Grupos de lista en Linux

A continuación, ejecuta el nuevo Comando de la siguiente manera.

$ Newgrp LXD 

El comando cambia la ID del grupo actual durante una sesión de inicio de sesión. Establece la ID del 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 no dude en especificar sus propias preferencias.

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

Inicializando el entorno LXD

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

$ LXC Perfil Mostrar predeterminado 
Lista de perfiles LXD

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

Lista de red de $ LXC 
Lista de adaptadores de red LXD

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

$ LXC Network Show LXDBR0 
Lista de información de red LXD

También puede verificar el grupo de almacenamiento.

Lista de almacenamiento de $ LXC 
Listar el grupo de almacenamiento LXD

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

Show de almacenamiento de $ LXC Tec-Pool 
Lista de información de la piscina de almacenamiento LXD

Para enumerar la ejecución LXC contenedores, ejecute el comando:

Lista de $ LXC 

Por el momento, todavía no tenemos recipientes para correr. Entonces obtendrá una mesa vacía con solo las etiquetas de la columna.

Lista de contenedores LXC en ejecución

Paso 7: Listado de imágenes de contenedor LXC prebuilt

Al igual que Estibador, el LXC La plataforma proporciona un repositorio de imágenes preconstruidas que puede crear contenedores. Para enumerar todas las imágenes preconstruidas para todos los sistemas operativos, incluidas las máquinas virtuales, ejecute el comando:

$ LXC Imágenes de la lista de imágenes: 

Esto poca una gran lista de imágenes de contenedores y máquinas virtuales para todos los sistemas operativos. Para reducir a una distribución específica de Linux, use la sintaxis:

$ LXC Imágenes de la lista de imágenes: Grep -I OS -Type 

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

$ LXC Imágenes de la lista de imágenes: Grep -i Rocky 
Lista de imágenes de contenedores LXC

Si esta buscando Debian Imágenes, ejecute el comando:

$ LXC Imágenes de la lista de imágenes: Grep -i Debian 
Lista de lxc debian imagen

Paso 8: Lanzamiento de contenedores LXC

Lanzar LXC contenedores, use la sintaxis:

$ lxc Imágenes de lanzamiento: distribuy/versión/arqu contenedor-name-here 

Aquí, lanzaremos 2 contenedores: TEC-Container1 de Debian 10 y TEC-Container2 de Rocky Linux 8.

$ LXC Imágenes de lanzamiento: Debian/10/AMD64 TEC-Container1 $ LXC Imágenes de lanzamiento: Rockylinux/8/AMD64 TEC-Container2 
Iniciar contenedores LXC

Para enumerar el LXC contenedores, ejecutar el comando:

Lista de $ LXC 

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 varias instantáneas.

Lista de contenedores LXC

Para enumerar solo los contenedores, ejecute el comando:

Lista de $ LXC | Grep -i Corriendo 

Del mismo modo, para contenedores detenidos, ejecute:

Lista de $ LXC | Grep -i me detuve 
Lista que ejecuta contenedores LXC

Puede investigar la información y las métricas de un contenedor, como la ejecución de procesos, la utilización de la CPU y la memoria, y el ancho de banda para mencionar algunos utilizando el comando:

$ LXC Información TEC-Container1 
Lista de información del contenedor LXC

Paso 9: Obtenga acceso de shell a un contenedor LXC

Puede obtener acceso bash a un contenedor utilizando la sintaxis:

$ LXC EXEC CONTENEDER-NAME Nombre de la cáscara 

Para obtener acceso de concha a TEC-Container1, Ejecutaremos el comando:

$ LXC EXEC TEC-Container1 Bash 

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

Actualización de $ apt 
Obtenga acceso a la carcasa del contenedor LXC

Para salir del contenedor, ejecute el comando:

$ Salida 

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

Comando de nombre de contenedor ejecutivo de $ LXC 

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

$ LXC EXEC TEC-Container1 Apt Update $ LXC EXEC TEC-Container1 CAT /ETC /DEBIAN_VERSION $ LXC EXEC TEC-Container1 Fecha 
Ejecutar comandos en el contenedor LXC

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

Otra operación que puede llevar a cabo es transferir archivos hacia y desde el contenedor. Para demostrar esto, crearemos un nuevo directorio en el Lxd contenedor y navegar hacia él.

# datos de datos mkdir && cd 

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

# archivo vim1.TXT 

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

Hola mundo, bienvenido a los contenedores LXD. 

Para extraer el archivo del contenedor al sistema de 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 
Extraiga los archivos al contenedor LXC

Para presionar o copiar un archivo del 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 archivo2.TXT ser copiado al /root/data/ camino en el TEC-Container2 envase.

$ LXC FILE PUSP/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 
Empujar archivos al contenedor LXC

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

Con el LXC Utilidad de línea de comandos Puede realizar tareas de gestión de contenedores como detenerse, comenzar, reiniciar y eliminar contenedores.

Para detener un LXC contenedor, use la sintaxis:

$ LXC STOP Nombre del contenedor 

Por ejemplo, para parar TEC-Container1, Ejecutaremos el comando:

$ LXC STOP TEC-Container1 
Detener el contenedor LXC

Para comenzar el LXC contenedor, use la sintaxis:

$ LXC Start contenedor 

Por ejemplo, para comenzar TEC-Container1, Ejecutaremos:

$ LXC Start TEC-Container1 
Iniciar contenedor LXC

Para reiniciar ambos LXC contenedores, ejecutaremos el comando:

$ LXC reiniciar TEC-Container1 $ LXC reiniciar TEC-Container2 
Reiniciar contenedores LXC

Para eliminar un LXC contenedor, primero debe detener el contenedor y luego eliminarlo. Por ejemplo, para eliminar, 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 
Eliminar contenedores LXC

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

Para obtener ayuda en otras opciones de comando proporcionadas por LXC, Simplemente ejecute el comando:

$ LXC -Help o $ LXC comando --help E.G $ LXC File --help 
Ayuda del contenedor LXC
Conclusión

Eso fue una inmersión profunda en Lxd contenedores y cómo puede crearlos y administrarlos utilizando el LXC herramienta de utilidad de línea de comandos. Confiamos en que haya encontrado útil esta guía.