GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installer LXC (conteneurs Linux) dans RHEL, Rocky et AlmaLinux

LXD est décrit comme le gestionnaire de conteneurs et de machines virtuelles de nouvelle génération qui offre une solution immersive pour les systèmes Linux exécutés dans des conteneurs ou en tant que machines virtuelles.

Il fournit des images pour un nombre démesuré de distributions Linux avec prise en charge d'une large sélection de backends de stockage et de types de réseaux. Il offre également la possibilité d'installer les images sur un PC/ordinateur portable individuel et même sur une instance cloud.

LXD vous permet de gérer les conteneurs et les machines virtuelles de trois manières. Vous pouvez tirer parti du client lxc ou un outil de ligne de commande, une API REST ou même des intégrations tierces.

Fonctionnalités LXD

Notable LXD les fonctionnalités incluent :

  • LXD est basé sur des images avec des images pour une large sélection de distributions Linux.
  • Il est conçu avec la sécurité comme priorité absolue.
  • Il fournit une API REST et un outil de ligne de commande lxc pour interagir avec les conteneurs.
  • Il prend en charge une large gamme de backends de stockage, de volumes de stockage et de pools de stockage.
  • La gestion du réseau passe par la création de réseaux de pont et de tunnels entre hôtes.
  • Contrôle avancé des ressources telles que le processeur, la RAM, l'utilisation du disque, les blocs d'E/S et les ressources du noyau.
  • Flexible et évolutif :vous pouvez déployer des conteneurs sur votre PC et configurer un cluster pouvant regrouper des milliers de conteneurs sur différents nœuds.

Qu'est-ce que LXC ?

À ne pas confondre avec le lxc outil client en ligne de commande fourni par LXD , LXC (Conteneur Linux ) est une technologie de virtualisation populaire au niveau du système d'exploitation qui utilise une API puissante et d'autres outils pour permettre aux utilisateurs de créer et de gérer de manière transparente des conteneurs et des machines virtuelles sur un seul hôte. Il comprend des modèles, un langage d'outils et des liaisons de bibliothèque.

Fonctionnalités LXC

LXC exploite les fonctionnalités suivantes du noyau pour gérer les processus :

  • Espaces de noms du noyau :pid, mount, réseau uts et utilisateur.
  • CGroups (groupes de contrôle).
  • Chroots – Utilisation de pivot_root.
  • Règles Seccomp.
  • Profils SELinux et Apparmor.

Linuxcontainers.org est le projet parapluie derrière LXD et LXC . Son objectif est d'offrir une plate-forme de distribution et indépendante des fournisseurs pour les technologies de conteneurs Linux.

Après cette introduction, nous allons maintenant montrer comment créer et gérer LXC conteneurs sur les distributions Linux basées sur RHEL telles que CentOS , Rocky Linux, et AlmaLinux .

Exigences

Un système d'exploitation Linux fonctionnel avec une installation minimale :

  • Installation de RHEL Linux
  • Installation de CentOS Linux
  • Installation de Rocky Linux
  • Installation d'AlmaLinux

Étape 1 :Réglez SELinux sur le mode permissif

Dès le départ, nous allons commencer par configurer SELinux et en le réglant sur permissif. Mais avant cela, mettons à jour les packages système comme suit :

$ sudo dnf update

Pour définir SELinux à permissif, exécutez la commande :

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

Pour que cela prenne effet, redémarrez votre serveur.

$ sudo reboot

Et confirmez le statut de SELinux .

$ getenforce

Étape 2 :Installer le référentiel EPEL

EPEL est un référentiel du projet Fedora qui fournit un ensemble de packages de haute qualité pour RedHat Enterprise Linux et d'autres distributions basées sur RHEL.

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

Étape 3 :Ajoutez les paramètres du noyau

Avant d'installer LXD , certains paramètres supplémentaires sont requis. Passez donc en utilisateur root :

$ su -

Et ajoutez les paramètres comme suit.

$ 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

Une fois les paramètres en place, continuez et activez Snap.

Étape 4 :Installer et activer Snap

La manière la plus simple d'installer LXD sur RHEL 8 est de l'installer en un clin d'œil emballer. Mais d'abord, installons snap comme suit.

$ sudo dnf install snapd

Cela installera snapd démon ou service aux côtés d'autres dépendances Python, comme indiqué.

Avec snap installé, continuez et activez le snap principal prise de communication.

$ sudo systemctl enable --now snapd.socket

De plus, activez la prise en charge classique en créant un lien symbolique à partir de /var/lib/snapd/snap à /snap .

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

Pour mettre à jour le snap chemins, redémarrez votre système.

$ sudo reboot

Étape 5 :Installer le gestionnaire de conteneurisation LXD

Il existe deux façons d'installer LXD d'un claquement . Vous pouvez installer la dernière version de LXD comme indiqué.

$ sudo snap install —-classic lxd

Vous pouvez également installer la dernière version stable de LTS version comme suit :

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

Pour pouvoir exécuter lxc commandes sans passer à l'utilisateur sudo, ajoutez l'utilisateur actuellement connecté au lxd groupe.

$ sudo usermod -aG lxd $USER

Vérifiez que l'utilisateur a été ajouté au lxd groupe en répertoriant tous les groupes auxquels appartient l'utilisateur.

$ groups tecmint

Ensuite, exécutez le newgrp commande comme suit.

$ newgrp lxd

La commande modifie l'ID de groupe actuel lors d'une session de connexion. Il définit l'ID de groupe actuel sur le groupe nommé qui est lxd .

Étape 6 :Initialisation de l'environnement LXD

Avant de commencer à créer et à gérer LXD conteneurs, nous devons initialiser le LXD environnement en exécutant la commande.

$ lxc init

Ce qui suit est une série d'invites qui vous permettront de configurer votre environnement. Les valeurs par défaut fonctionneront très bien, mais n'hésitez pas à spécifier vos propres préférences.

Nous avons créé un pool de stockage appelé tec-pool avec le lvm option comme backend.

Pour vérifier le LXD environnement que vous venez de configurer, il existe un certain nombre de commandes que vous pouvez utiliser. Par exemple, pour afficher le profil LXD par défaut, exécutez :

$ lxc profile show default

Pour afficher les adaptateurs réseau et l'IPv4 et IPv6 adresses, exécutez :

$ lxc network list

Vous pouvez l'affiner davantage et afficher des informations plus fines sur le lxdbr0 l'interface comme suit.

$ lxc network show lxdbr0

Vous pouvez également vérifier le pool de stockage.

$ lxc storage list

Vous pouvez en outre obtenir des détails complexes sur le pool de stockage.

$ lxc storage show tec-pool

Pour répertorier l'exécution de lxc conteneurs, exécutez la commande :

$ lxc list

Pour le moment, nous n'avons pas encore de conteneurs en cours d'exécution. Vous obtiendrez donc un tableau vide avec uniquement les étiquettes des colonnes.

Étape 7 :Répertorier les images de conteneur LXC prédéfinies

Tout comme Docker , le LXC La plate-forme fournit un référentiel d'images prédéfinies à partir desquelles vous pouvez créer des conteneurs. Pour répertorier toutes les images prédéfinies pour tous les systèmes d'exploitation, y compris les machines virtuelles, exécutez la commande :

$ lxc image list images: 

Cela remplit une énorme liste d'images de conteneurs et de machines virtuelles pour tous les systèmes d'exploitation. Pour vous limiter à une distribution Linux spécifique, utilisez la syntaxe :

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

Par exemple, pour rechercher des images disponibles pour Rocky Linux , exécutez la commande :

$ lxc image list images: grep -i rocky

Si vous recherchez Debian images, exécutez la commande :

$ lxc image list images: grep -i debian

Étape 8 :Lancement des conteneurs LXC

Pour lancer lxc conteneurs, utilisez la syntaxe :

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

Ici, nous allons lancer 2 conteneurs :tec-container1 depuis Debian 10 et tec-container2 de Rocky Linux 8 .

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

Pour lister le lxc conteneurs, exécutez la commande :

$ lxc list

La sortie affiche une multitude d'informations sur les conteneurs. Cela inclut le nom des conteneurs, l'état (en cours d'exécution ou arrêté) des adresses IPv4 et IPv6, le type (qu'il s'agisse d'un conteneur ou d'une machine virtuelle) et un certain nombre d'instantanés.

Pour répertorier uniquement les conteneurs en cours d'exécution, exécutez la commande :

$ lxc list | grep -i running

De même, pour les conteneurs arrêtés, exécutez :

$ lxc list | grep -i stopped

Vous pouvez sonder les informations et les métriques d'un conteneur telles que les processus en cours d'exécution, l'utilisation du processeur et de la mémoire et la bande passante pour n'en citer que quelques-uns à l'aide de la commande :

$ lxc info tec-container1 

Étape 9 :Obtenir un accès Shell à un conteneur LXC

Vous pouvez obtenir un accès bash à un conteneur en utilisant la syntaxe :

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

Pour obtenir un accès shell à tec-container1 , nous allons lancer la commande :

$ lxc exec tec-container1 bash

Une fois que vous avez obtenu l'accès au shell, vous pouvez commencer à interagir avec le conteneur en tant qu'utilisateur root en exécutant des commandes shell courantes, notamment en mettant à jour le système comme indiqué :

$ apt update

Pour quitter le conteneur, exécutez la commande :

$ exit

Alternativement, vous pouvez exécuter les commandes directement sur le conteneur sans accéder au shell en utilisant le format suivant :

$ lxc exec container-name command

Par exemple, vous pouvez exécuter les commandes suivantes qui mettront à jour les listes de packages, vérifieront la version du système d'exploitation exécutée sur le conteneur Debian et vérifieront la date.

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

Étape 10 : extraire/pousser un ou plusieurs fichiers vers un conteneur LXC

Une autre opération que vous pouvez effectuer est de transférer des fichiers vers et depuis le conteneur. Pour le démontrer, nous allons créer un nouveau répertoire dans le LXD conteneur et naviguez dedans.

# mkdir data && cd data

Ensuite, nous allons créer un exemple de fichier et ajouter des données. Pour ce faire, nous allons créer un exemple de fichier avec vim éditeur

# vim file1.txt

Ensuite, nous allons saisir un exemple de texte et enregistrer le fichier.

Hello World, Welcome to LXD containers.

Pour extraire le fichier du conteneur vers le système hôte local, nous utiliserons la syntaxe :

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

Dans ce cas, la commande sera :

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

Pour pousser ou copier un fichier du répertoire local vers le conteneur, utilisez la syntaxe :

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

Dans ce cas, nous avons un exemple de fichier dans le répertoire personnel appelé file2.txt étant copié dans /root/data/ chemin dans le tec-container2 conteneur.

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

Pour confirmer l'existence du fichier dans le conteneur, nous lancerons :

$ lxc exec tec-container2 ls /root/data

Étape 11 :Arrêter/Démarrer/Redémarrer et supprimer les conteneurs LXC

Avec le lxc utilitaire de ligne de commande, vous pouvez effectuer des tâches de gestion de conteneurs telles que l'arrêt, le démarrage, le redémarrage et la suppression de conteneurs.

Pour arrêter un lxc conteneur, utilisez la syntaxe :

$ lxc stop container-name

Par exemple, pour arrêter tec-container1 , nous allons lancer la commande :

$ lxc stop tec-container1

Pour démarrer le lxc conteneur, utilisez la syntaxe :

$ lxc start container-name

Par exemple, pour démarrer tec-container1 , nous allons exécuter :

$ lxc start tec-container1

Pour redémarrer à la fois lxc conteneurs, nous exécuterons la commande :

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

Pour supprimer un lxc conteneur, vous devez d'abord arrêter le conteneur, puis le supprimer. Par exemple, pour supprimer, nous lancerons les commandes :

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

Alternativement, vous pouvez combiner ces deux commandes comme indiqué.

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

Étape 12 :Obtenir de l'aide sur les options de ligne de commande LXC

Pour obtenir de l'aide sur d'autres options de commande fournies par LXC , lancez simplement la commande :

$ lxc --help
OR
$ lxc command --help e.g
$ lxc file --help
Conclusion

C'était une plongée profonde dans LXD conteneurs et comment vous pouvez les créer et les gérer à l'aide de lxc outil utilitaire de ligne de commande. Nous espérons que vous avez trouvé ce guide utile.


Cent OS
  1. Comment installer MediaWiki sur RHEL 8/Rocky Linux 8/AlmaLinux OS 8

  2. Comment installer l'interface graphique GNOME sur Rocky Linux 8 / CentOS 8 / RHEL 8

  3. Comment installer PostgreSQL sur CentOS 8 / Rocky Linux 8 / RHEL 8

  4. Comment installer Java sur Rocky Linux 8 / CentOS 8 / RHEL 8

  5. Comment installer VirtualBox sur Rocky Linux 8 / CentOS 8 / RHEL 8

Comment installer Jenkins sur AlmaLinux 8 ou Rocky Linux

Comment exécuter des conteneurs LXC/LXD sur AlmaLinux ou Rocky Linux 8

Installer Discord sur AlmaLinux ou Rocky Linux 8

Comment installer ClamAV sur Rocky Linux 8 | AlmaLinux

Comment installer Podman sur Rocky Linux 8 / AlmaLinux pour exécuter des conteneurs

Installer Centreon Monitoring sur AlmaLinux 8 | Rocheux Linux 8