Recherche de site Web

Comment installer, créer et gérer LXC dans Ubuntu/Debian


Au cours de la dernière décennie, la communauté open source a constaté une évolution constante vers la conteneurisation comme moyen privilégié de déploiement d'applications grâce aux nombreux avantages qu'elle offre tels que la portabilité, la flexibilité, une sécurité accrue et une gestion plus facile des applications. Les technologies de conteneurisation les plus populaires incluent Docker, Podman et LXD.

Écrit en langage Go, LXD (prononcé comme Lekseed) est décrit comme le gestionnaire de conteneurs et de machines virtuelles système de nouvelle génération qui vous permet de gérer vos conteneurs et machines virtuelles à partir de la ligne de commande ou en tirant parti d'un Lekseed.API REST ou d'autres outils tiers. LXD est un projet open source et est une extension de LXC (Linux Containers), qui est une technologie de virtualisation au niveau du système d'exploitation.

LXC est apparu vers 2008, et LXD a été lancé 7 ans plus tard, en 2015, avec les mêmes éléments de base que LXC. LXD est venu pour rendre les conteneurs plus conviviaux et plus faciles à gérer.

Étant une extension de LXC, LXD fournit des fonctionnalités avancées telles que les instantanés et la migration en direct. Il fournit également un démon qui vous permet de gérer facilement les conteneurs et les machines virtuelles. Il n'est pas destiné à supplanter LXC, mais plutôt à améliorer la convivialité et la manipulation des conteneurs basés sur LXC.

Dans ce guide, nous montrerons comment créer et gérer des conteneurs LXC à l'aide de LXD sur Debian/Ubuntu.

Étape 1 : Installer LXD sur Ubuntu

La première étape consiste à installer LXD. Il existe deux façons de procéder : vous pouvez installer à partir du référentiel Ubuntu à l'aide du gestionnaire de packages APT ou utiliser Snap.

À l'aide de APT, commencez par mettre à jour le système :

sudo apt update

Installez ensuite l'hyperviseur de conteneur système LXD comme suit.

sudo apt install lxd

À l'aide de snap, vous pouvez installer la dernière version de LXD.

sudo snap install lxd

De plus, vous pouvez installer la dernière version de LTS, à savoir LXD 4.0, comme suit :

sudo snap install lxd --channel=4.0/stable

Vous pouvez vérifier la version de LXD installée comme indiqué :

lxd --version

Si vous aviez l'habitude de snap, vous pouvez vérifier que le package snap LXD a été installé comme indiqué :

snap list

Étape 2 : Initialisation du service LXD

Pour initialiser ou démarrer l'hyperviseur de conteneur LXD, exécutez la commande :

sudo lxd init

La commande vous présente une série de questions sur la façon de configurer LXD. Les valeurs par défaut fonctionnent très bien, cependant, vous êtes libre de spécifier vos propres paramètres selon vos besoins.

Dans cet exemple, nous avons créé un pool de stockage appelé tecmint_pool avec le système de fichiers ZFS et le gestionnaire de volumes. Pour le reste des questions, nous avons choisi de conserver les options par défaut. Un moyen simple d'accepter la sélection par défaut consiste à appuyer sur la touche ENTRÉE de votre clavier.

Confirmez les informations fournies en exécutant la commande :

sudo lxc profile show default

Vous pouvez le limiter davantage au pool de stockage créé. Les commandes ci-dessous affichent les détails des pools de stockage actuels.

sudo lxc storage list
sudo lxc storage show tecmint_pool

Vous pouvez également afficher des informations sur l'interface réseau utilisée par LXD, dans ce cas, lxdbr0, qui est la sélection par défaut.

sudo lxc network show lxdbr0

Étape 3 : Création de conteneurs LXD dans Ubuntu

Maintenant, changeons de sujet et créons des conteneurs Linux. Vous pouvez lister tous les conteneurs prédéfinis disponibles au téléchargement à l'aide de la commande :

sudo lxc image list images:

Cela remplit une énorme liste de tous les conteneurs dans divers systèmes d'exploitation tels que Ubuntu, CentOS, Debian et AlmaLinux, pour n'en citer que quelques-uns.

Vous pouvez le limiter à une distribution spécifique comme suit :

sudo lxc image list images: | grep -i centos
sudo lxc image list images: | grep -i debian

Dans cet exemple, nous répertorions les conteneurs disponibles.

sudo lxc image list images: | grep -i ubuntu

Maintenant, nous allons créer notre premier conteneur. La syntaxe de création d'un conteneur est la suivante :

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

Nous allons maintenant créer deux conteneurs à partir de Ubuntu 20 et Debian 10 respectivement :

sudo lxc launch images:ubuntu/focal tecmint-con1
sudo lxc launch images:debian/10 tecmint-con2

Dans les exemples ci-dessus, nous avons créé deux conteneurs : tecmint-con1 et tecmint-con2.

Pour lister les conteneurs créés, exécutez la commande :

sudo lxc list

À partir de la sortie, nous pouvons voir nos deux conteneurs répertoriés.

Pour accéder au shell à un conteneur LXC, exécutez la commande :

sudo lxc exec tecmint-con1 bash

Une fois que vous avez obtenu l'accès au shell, notez que l'invite change pour indiquer que vous exécutez en tant qu'utilisateur root.

Pour quitter le conteneur, exécutez la commande :

exit

Étape 4 : Gestion des conteneurs LXD dans Ubuntu

Voyons maintenant quelques-unes des commandes que vous pouvez utiliser pour gérer les conteneurs LXD.

Pour lister tous les conteneurs en cours d'exécution, exécutez la commande :

sudo lxc list

Pour afficher des informations détaillées sur un conteneur LXC, utilisez la syntaxe :

sudo lxc info container-name

Cela vous fournira des informations telles que le nom du conteneur, l'architecture, la date de création, l'état des interfaces réseau, la bande passante, le processeur, la mémoire et l'utilisation du disque, pour ne citer que quelques mesures.

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

sudo lxc stop container-name

Par exemple, pour arrêter le conteneur tecmint-con1, exécutez la commande :

sudo lxc stop  tecmint-con1

Encore une fois, répertoriez les conteneurs pour confirmer que le conteneur a été arrêté.

sudo lxc list

Vous pouvez également répertorier les conteneurs en cours d'exécution ou arrêtés comme suit :

sudo lxc list | grep -i STOPPED
sudo lxc list | grep -i RUNNING

Pour démarrer un conteneur LXC, utilisez la syntaxe :

sudo lxc start container-name

Par exemple, pour démarrer le conteneur tecmint-con1, exécutez la commande :

sudo lxc start tecmint-con1

Vous pouvez démarrer ou arrêter les conteneurs en les contournant dans une seule commande séparée par un espace en utilisant la syntaxe suivante :

sudo lxc stop container1 container2
sudo lxc start container1 container2

Par exemple, pour arrêter tous les conteneurs, exécutez :

sudo lxc stop tecmint-con1 tecmint-con2

Pour redémarrer un conteneur LXC, utilisez la syntaxe :

sudo lxc restart container-name

Par exemple, pour redémarrer le conteneur tecmint-con1, exécutez la commande :

sudo lxc restart tecmint-con1

Vous pouvez également transmettre plusieurs conteneurs en une seule commande :

sudo lxc start container1 container2

Par exemple, pour redémarrer tous les conteneurs, exécutez :

sudo lxc restart tecmint-con1 tecmint-con2

Pour supprimer un conteneur LXC, arrêtez-le d'abord, puis supprimez-le. Par exemple, pour supprimer le conteneur tecmint-con2, exécutez la commande :

sudo lxc stop tecmint-con2
sudo lxc delete tecmint-con2

Ce guide vous a fourni une base solide sur les conteneurs LXD et sur la façon dont vous pouvez lancer, créer et gérer des conteneurs. Nous espérons que vous pourrez désormais lancer et gérer confortablement vos conteneurs sans trop de difficultés.