Dans ce guide, nous expliquerons ce qu'est Toolbox et comment créer et gérer un environnement de développement conteneurisé à l'aide de Toolbox sur Fedora Linux.
Présentation
Au cours des dernières années, la virtualisation des conteneurs Linux a pris beaucoup d'ampleur. En fait, la nouvelle génération de virtualisation est la conteneurisation.
De nos jours, les développeurs d'applications utilisent principalement des conteneurs comme environnement de développement préféré. Il existe de nombreux outils pour créer et gérer des conteneurs Linux. Podman , Docker , Vagabond sont des applications de gestion de conteneurs populaires.
Aujourd'hui, nous allons discuter d'un autre utilitaire appelé Toolbox ce qui facilite l'utilisation d'un environnement conteneurisé pour le développement de logiciels quotidiens.
Qu'est-ce que la boîte à outils ?
Toolbox est un outil interne de Fedora pour créer un environnement de ligne de commande conteneurisé au-dessus de votre système de base Fedora.
Il est particulièrement utile pour configurer un environnement de développement logiciel use and throw dans lequel des outils de développement et des bibliothèques peuvent être installés et utilisés.
Toolbox est spécialement développé pour OSTree systèmes basés tels que Fedora Core OS et Fedora Silverblue . Comme vous le savez peut-être déjà, les systèmes basés sur OSTree sont immuables.
Toolbox est construit sur des images de conteneur OCI et Podman. Il ne nécessite aucune root
privilèges pour déployer des conteneurs. La bonne chose est que l'installation et l'utilisation de Toolbox sont très faciles à utiliser et faciles à mémoriser !
Pourquoi Toolbox ?
L'objectif réel d'un système d'exploitation immuable est de décourager l'installation de logiciels sur le système hôte et d'encourager les utilisateurs à installer les logiciels dans des conteneurs.
Contrairement aux systèmes basés sur OSTree, les conteneurs sont entièrement modifiables. Ainsi, vous pouvez installer vos outils de développement et de débogage, éditeurs et SDK préférés à l'intérieur des conteneurs. Rien n'est installé sur le système hôte.
Pour le dire en termes simples, nous pouvons déployer un conteneur mutable sur un système d'exploitation hôte immuable à l'aide de Toolbox.
Comment fonctionne la boîte à outils ?
Par défaut, Toolbox crée les conteneurs en fonction de votre système actuel. Par exemple, si votre système de base est Fedora 35, alors la boîte à outils créera un conteneur basé sur Fedora 35. Dans ce conteneur, vous pouvez utiliser des gestionnaires de paquets comme yum
ou dnf
pour installer vos applications préférées. Vous pouvez également créer des conteneurs basés sur d'autres versions de Fedora.
Vous pouvez démarrer plusieurs conteneurs à la fois et commencer à travailler sur différents projets simultanément. Une fois que vous avez terminé avec le conteneur, supprimez-le simplement et créez-en un nouveau quand vous le souhaitez. Encore une fois, le système hôte n'est en aucun cas affecté. De cette façon, nous pouvons maintenir un système d'exploitation hôte propre. Cela évitera également considérablement l'encombrement et réduira le processus de réinstallation du système d'exploitation hôte.
Installer Toolbox sur Fedora
Toolbox est préinstallé avec Fedora Silverblue 30 et les éditions plus récentes. Sur le poste de travail Fedora, vous pouvez l'installer en utilisant dnf
ou yum
gestionnaires de paquets :
$ sudo dnf install toolbox
Ou,
$ sudo yum install toolbox
Démarrer avec Toolbox sur Fedora Silverblue
Toolbox fournit un petit nombre de commandes pour créer, répertorier, saisir et supprimer des conteneurs.
1. Afficher l'aide de la boîte à outils
Si vous débutez avec Toolbox, il est préférable d'afficher la section d'aide de Toolbox pour avoir un aperçu de ce que fait chaque commande. Pour afficher l'aide de Toolbox, utilisez l'une des commandes suivantes :
$ toolbox --help
$ toolbox help
$ toolbox -h
Commençons maintenant par créer de nouveaux conteneurs.
2. Créer un nouveau conteneur
Pour créer un nouveau conteneur basé sur votre version actuelle de Fedora OS, exécutez simplement :
$ toolbox create
Cette commande recherchera l'image de base à utiliser pour créer le conteneur à partir de votre système local. Si aucune image locale n'est trouvée, vous serez invité à télécharger l'image correspondante. Tapez o et la touche ENTER pour télécharger l'image.
Exemple de résultat :
Image required to create toolbox container.
Download registry.fedoraproject.org/fedora-toolbox:33 (500MB)? [y/N]: y
Created container: fedora-toolbox-33
Enter with: toolbox enter
Toolbox téléchargera une image correspondant à la version du système d'exploitation de votre système hôte actuel à partir du registre Fedora et créera un nouveau conteneur basé sur l'image téléchargée. Les images sont généralement des versions simplifiées des distributions réelles.
2.1. Créer des conteneurs avec un nom personnalisé
La boîte à outils attribuera automatiquement un nom unique (par exemple, fedora-toolbox-33
) au conteneur nouvellement créé.
Si vous souhaitez créer un conteneur avec un nom personnalisé de votre choix, utilisez le --container
, -c
drapeau suivi du nom du conteneur comme ci-dessous :
$ toolbox create --container mytoolbox-f33
Ou brièvement :
$ toolbox create -c mytoolbox-f33
Ici, mytoolbox-f33
est le nom du conteneur.
3. Créer un nouveau conteneur basé sur une version spécifique du système d'exploitation
Comme je l'ai déjà mentionné, Toolbox crée des conteneurs basés sur la version actuelle du système d'exploitation. Par exemple, si vous exécutez Fedora 34, Toolbox créera un conteneur basé sur l'image Fedora 34.
Cependant, vous pouvez également créer des conteneurs basés sur d'autres versions. J'ai créé un conteneur Fedora 32 sur mon édition Silverblue Fedora 33 à l'aide de la commande suivante :
$ toolbox create --release f32
Ou bientôt,
$ toolbox create -r f32
4. Lister les conteneurs
Pour répertorier tous les conteneurs disponibles localement sur votre système, exécutez :
$ toolbox list
Exemple de résultat :
IMAGE ID IMAGE NAME CREATED
9659c2039e64 registry.fedoraproject.org/f32/fedora-toolbox:32 4 months ago
675192cc4238 registry.fedoraproject.org/fedora-toolbox:33 4 weeks ago
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
2cfb48d6a6c5 fedora-toolbox-32 4 months ago exited registry.fedoraproject.org/f32/fedora-toolbox:32
1f709997b871 fedora-toolbox-33 27 minutes ago configured registry.fedoraproject.org/fedora-toolbox:33
Comme vous pouvez le voir dans la sortie ci-dessus, j'ai deux conteneurs à savoir fedora-toolbox-32
et fedora-toolbox-33
sur mon système.
La section supérieure de la sortie affiche les détails des images de base utilisées pour créer les conteneurs, tels que l'ID de l'image, le nom de l'image et la date de création de ces images. En bas, vous verrez les détails des conteneurs tels que l'ID du conteneur, le nom du conteneur, la date de création du conteneur et l'état du conteneur.
Vous pouvez également afficher les détails du conteneur ou les détails de l'image séparément. Pour répertorier uniquement les détails du conteneur, utilisez --containers
, -c
choix :
$ toolbox list --containers CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 2cfb48d6a6c5 fedora-toolbox-32 il y a 4 mois en cours d'exécution registre.fedoraproject.org/fedora-toolbox:33
Pour lister uniquement les images, utilisez --images
, -i
drapeau :
$ toolbox list --images ID D'IMAGE NOM DE L'IMAGE CRÉÉE 9659c2039e64 Registry.fedoraproject.org/f32/fedora-toolbox:32 Il y a 4 moisVeuillez noter que le nom des conteneurs et les noms des images se ressembleront presque à l'exception de la dernière partie de leur nom.
Le nom du conteneur comporte généralement un trait d'union (-) avant la dernière partie de son nom (par exemple,
fedora-toolbox-33
) et le nom de l'image contient des deux-points (:) (par exemple,fedora-toolbox:33
).5. Entrez dans les conteneurs
Nous avons déjà créé les conteneurs mais nous ne les avons pas entrés. Entrons donc dans un conteneur en utilisant la commande :
$ toolbox enter
Une fois que vous êtes entré dans le conteneur, l'invite du shell est précédée d'un losange symbole comme indiqué dans la sortie suivante :
⬢[[email protected] ~]$
Avez-vous remarqué le symbole du diamant à l'extrême gauche de l'invite ? Cela signifie que vous êtes à l'intérieur du conteneur.
Les conteneurs s'intègrent parfaitement à votre système d'exploitation actuel. À l'intérieur de chaque conteneur, vous trouverez votre nom d'utilisateur et vos autorisations existants.
Vous pouvez accéder à votre répertoire personnel et à plusieurs autres emplacements comme vous le feriez depuis votre système hôte. Vous pouvez également accéder à la fois au système et à la session D-Bus, au journal système et à Kerberos, etc.
Chaque conteneur contient des outils de lignes de commande communs, y compris un gestionnaire de packages (par exemple,
DNF
sur Fedora). Ainsi, vous pouvez installer et tester n'importe quel logiciel à l'intérieur du conteneur.Par exemple, la commande suivante installe tous les outils de développement nécessaires :
$ sudo yum groupinstall "Development Tools"
5.1. Entrez dans un conteneur spécifique
Lorsque vous exécutez la
toolbox enter
commande sans aucune option, elle ouvre le conteneur de la boîte à outils par défaut. Le conteneur par défaut est celui qui est basé sur le système d'exploitation de votre hôte.Si vous souhaitez ouvrir un conteneur différent, mentionnez explicitement son nom comme ci-dessous :
$ toolbox enter -c fedora-toolbox-32
Ici,
-c
est utilisé pour référencer le nom du conteneur etfedora-toolbox-32
est le nom du conteneur.6. Quitter la boîte à outils
Une fois que vous avez terminé avec le conteneur, tapez simplement
exit
pour vous déconnecter du conteneur.$ exit
7. Exécutez des commandes dans des conteneurs sans y entrer
Une caractéristique notable de Toolbox est que vous pouvez exécuter des commandes sur un conteneur sans y entrer. La commande suivante affiche la version de distribution du conteneur par défaut à partir du système hôte :
$ toolbox run cat /etc/redhat-release Fedora release 33 (Thirty Three)
Lorsque vous exécutez l'
toolbox run
commande sans aucune option, il exécutera les commandes sur le conteneur par défaut. Vous pouvez également exécuter des commandes sur d'autres conteneurs en spécifiant son nom avec--container
,-c
drapeau :$ toolbox run -c fedora-toolbox-32 cat /etc/redhat-release Fedora release 32 (Thirty Two)
8. Arrêtez d'exécuter des conteneurs
Après avoir quitté le conteneur, il continuera à fonctionner jusqu'à ce que vous l'arrêtiez. Il n'y a pas de commande directe de boîte à outils pour arrêter un conteneur en cours d'exécution. Cependant, nous pouvons utiliser
podman
commande pour arrêter les conteneurs de la boîte à outils :$ podman container stop fedora-toolbox-33
N'oubliez pas que Toolbox utilise podman sous le capot.
9. Supprimer les conteneurs et les images de la boîte à outils
Si vous ne voulez pas de conteneur ou de son image de base, vous pouvez simplement vous en débarrasser comme ci-dessous.
Avant de supprimer un conteneur, assurez-vous d'en être sorti.
Pour supprimer un conteneur, exécutez :
$ toolbox rm fedora-toolbox-32
La commande ci-dessus supprime le conteneur nommé
fedora-toolbox-32
.Pour supprimer de force un conteneur même s'il est en cours d'exécution, utilisez
--force
,-f
drapeau :$ toolbox rm -f fedora-toolbox-32
Pour supprimer tous les conteneurs, utilisez
--all
,-a
drapeau :$ toolbox rm --all
Vérifiez si le conteneur est supprimé en répertoriant les conteneurs disponibles :
$ toolbox list
De même, vous pouvez supprimer les images de la boîte à outils à l'aide de
toolbox rmi
commande comme ci-dessous :$ toolbox rmi fedora-toolbox:32
Veuillez noter le
i
dans la commande ci-dessus. Lerm
commande supprime les conteneurs alors quermi
commande supprime les images. N'oubliez pas non plus de mentionner le nom correct de l'image à supprimer.Pour supprimer toutes les images, utilisez
--all
,-a
drapeau :$ toolbox rmi --all
Utilisez podman pour gérer les conteneurs et les images de la boîte à outils
Étant donné que Toolbox n'est que le wrapper de podman, vous pouvez directement utiliser les commandes podman pour gérer les conteneurs.
Pour répertorier les conteneurs de boîtes à outils à l'aide de la commande podman, exécutez :
$ podman ps -a
Pour répertorier les images de la boîte à outils avec podman, exécutez :
$ podman images
Pour démarrer un conteneur :
$ podman start fedora-toolbox-33
Pour afficher les statistiques d'utilisation des ressources en direct de tous les conteneurs en cours d'exécution :
$ podman stats
Pour arrêter un conteneur :
$ podman stop fedora-toolbox-33
Inspecter les conteneurs :
$ podman inspect fedora-toolbox-33
Supprimer le conteneur :
$ podman rm <container-name>
Supprimer l'image :
$ podman rmi <image-name>
De nombreuses commandes podman sont disponibles. Vous pouvez afficher toutes les commandes et options générales disponibles dans la section d'aide de podman :
$ podman --help
Conclusion
Les conteneurs ne sont pas seulement à des fins expérimentales et d'apprentissage, ils sont également idéaux pour un environnement de développement isolé où vous pouvez travailler sur différents projets sur différentes versions de système d'exploitation. Toolbox rend la gestion des conteneurs beaucoup plus facile et meilleure !