toolbox : Lancer des OS Linux en toute simplicité avec Podman
Table des matières
Toolbox est un outil qui va nous permettre de démarrer des systèmes d'exploitation sous forme de conteneur. L'outil s'intègre bien aux distributions du monde Red Hat car il se base sur podman (utilisé sur Fedora, RHEL et dérivées).
On va pouvoir créer des "toolboxes", dont les principales caractéristiques sont :
- Simplicité : toolbox est une surcouche à podman simplifiant la création et la gestion des conteneurs
- Isolation : les modifications dans une toolbox n'affectent pas le système hôte ni les autres toolboxes.
- Intégration avec Podman : aucune nécessité faire tourner un service ou de droits root.
- Accès aux ressources de l'hôte : les toolboxes accèdent à l'environnement utilisateur et aux ressources du système hôte (serveur d'affichage,, périphériques amovibles, dossier utilisateur, alias bash, etc.) contrairement aux conteneurs classiques podman/docker.
Dans quels cas utiliser podman, et dans quel cas utiliser toolbox ?
- Podman est plus adapté pour la gestion de conteneurs et le déploiement d'applications (un conteneur classique et isolé)
- Toolbox est idéal pour les développeurs / sysadmins qui ont besoin d'un environnement isolé pour le développement et les tests, sans interférer avec le système hôte.
Voici un petit tableau comparatif pour montrer qu'on utilisera les 2 outils dans des cas d'usages différents :
Avant de pouvoir utiliser Toolbox, on devra l'installer. Suivant votre distribution, en root :
Fedora, Red Hat Enterprise Linux et dérivées :
Debian, Ubuntu et dérivées :
Il n'est pas nécessaire d'avoir les droits d'administrateur pour utiliser toolbox.
Pour créer une toolbox, on utilisera :
Par défaut, la toolbox est créée avec le même environnement que le système sur lequel il s'exécute.
Etant sur Fedora 41 lors de la rédaction de cet article, il me récupère une Fedora 41 :
Le nom par défaut de la toolbox est distribution-toolbox-version. On pourra spécifier un nom particulier à notre toolbox en spécifiant le nom après le create :
Pour créer une Fedora 35 par exemple :
Si on veut créer une toolbox RHEL 9.3 appelée rhel9 :
Et une Ubuntu 24.04 :
Les images sont stockées dans ~/.local/share/containers/storage.
Les distributions supportées sont indiquées dans la page de manuel de toolbox :
Au moment de la rédaction de cet article, les distributions supportées sur Fedora sont : arch, fedora, rhel, ubuntu.
Si on souhaite récupérer une image d'un autre système, on pourra le faire avec l'option --image suivi de l'URL du dépôt.
Voici un exemple pour la création d'une toolbox Alma Linux 9 :
On retrouvera une liste de toolbox et des versions disponibles ici :
- Distributions : https://quay.io/organization/toolbx-images
- Fedora : https://quay.io/repository/fedora/fedora-toolbox
Voici quelques exemples de distributions non présentes dans toolbox par défaut :
Alma Linux 9 :
Alpine Linux 3.19 :
CentOS Stream 9 :
Debian 12 :
OpenSuse Tumbleweed :
Il est possible de lister les toolbox avec :
Ce qui renvoie :
On y retrouve la liste des images et des conteneurs.
Toolbox s'appuyant sur podman, on reconnaitra la sortie des commandes sous commandes podman images et podman ps
Pour entrer dans une toolbox, on utilisera :
Par défaut, on rentrera dans la toolbox corerspondant au même système que l'hôte s'il existe (Fedora 41 sur une Fedora 41)
Pour rentrer dans une toolbox particulière, on indiquera le nom de la toolbox. Par exemple :
A ce moment là, on est dans le système de la toolbox et le prompt indique un hexagone violet (si on n'a pas personnalisé notre prompt) :
On sait qu'on est dans une toolbox avec le nom du système qui est toolbx.
Je vais pouvoir installer ce que je souhaite dedans, comme si j'étais sur mon système réel.
Pour quitter la toolbox :
Il est possible de lancer des applications installées dans une toolbox avec :
Exemple, après installation de cpu-x sur le conteneur ubuntu2404 :
Et l'application se lance comme si j'étais sur ma Fedora Linux :
Si on entre dans une toolbox et qu'on en sort (ou qu'on lance une commande), les conteneurs restent lancés (pour exécuter plus rapidement des commandes ou rentrer plus vite dans la toolbox) :
On voit ici que rhel9 et ubuntu2404 sont dans le statut "running".
On pourra arrêter les conteneurs avec podman comme on le fait habituellement :
Si je stoppe ubuntu2404, le conteneur est en statut exited :
Si on n'a plus besoin d'un conteneur, on pourra le supprimer avec :
Exemple ici pour supprimer le conteneur ubuntu2404 :
Le conteneur est alors supprimé mais l'image de référence reste présente quant à elle.
On pourra éventuellement utiliser l'option --force qui stoppera tous le conteneur avant de le supprimer.
Si on veut supprimer des images téléchargées, on pourra le faire avec :
Exemple ici avec l'image de la Ubuntu 24.04 :
On pourra éventuellement utiliser l'option --force qui stoppera tous les conteneurs associés à l'image, supprimera ceux-ci et supprimera enfin l'image. A utiliser avec précaution !
Si vous êtes avec l'environnement de bureau GNOME, toolbox est directement intégré au terminal pytxis.
On pourra lancer les toolbox créées facilement via le menu déroulant en haut à gauche :
Introduction
Toolbox est un outil qui va nous permettre de démarrer des systèmes d'exploitation sous forme de conteneur. L'outil s'intègre bien aux distributions du monde Red Hat car il se base sur podman (utilisé sur Fedora, RHEL et dérivées).
On va pouvoir créer des "toolboxes", dont les principales caractéristiques sont :
- Simplicité : toolbox est une surcouche à podman simplifiant la création et la gestion des conteneurs
- Isolation : les modifications dans une toolbox n'affectent pas le système hôte ni les autres toolboxes.
- Intégration avec Podman : aucune nécessité faire tourner un service ou de droits root.
- Accès aux ressources de l'hôte : les toolboxes accèdent à l'environnement utilisateur et aux ressources du système hôte (serveur d'affichage,, périphériques amovibles, dossier utilisateur, alias bash, etc.) contrairement aux conteneurs classiques podman/docker.
podman vs toolbox
Dans quels cas utiliser podman, et dans quel cas utiliser toolbox ?
- Podman est plus adapté pour la gestion de conteneurs et le déploiement d'applications (un conteneur classique et isolé)
- Toolbox est idéal pour les développeurs / sysadmins qui ont besoin d'un environnement isolé pour le développement et les tests, sans interférer avec le système hôte.
Voici un petit tableau comparatif pour montrer qu'on utilisera les 2 outils dans des cas d'usages différents :
Critère | toolbox | podman |
---|---|---|
Type d'outil | Gestion d'environnements de développement isolés | Gestion de conteneurs |
Gestion des images | Utilise des images spécifiques Toolbox | Gestion complète des images OCI |
Isolation | Environnement isolé avec accès au système hôte | Isolation complète des conteneurs |
Utilisation | Développement et tests | Déploiement d'applications, microservices, etc. |
Privilèges | Fonctionne sans privilèges root | Fonctionne sans privilèges root |
Démarrage de services | Ne peut pas démarrer des services système (avec systemd) | Peut démarrer des services (avec systemd)) |
Environnement utilisateur | Reprise de l'environnement de l'hôte (bash, /home, montages, etc.) | Environnement utilisateur isolé présent dans le conteneur |
Applications graphiques | Peut lancer des applications graphiques | Ne prend pas en charge le lancement d'applications graphiques directement |
Installation
Avant de pouvoir utiliser Toolbox, on devra l'installer. Suivant votre distribution, en root :
Fedora, Red Hat Enterprise Linux et dérivées :
Code BASH :
dnf install toolbox
Debian, Ubuntu et dérivées :
Code BASH :
apt install podman-toolbox
Utilisation de toolbox
Il n'est pas nécessaire d'avoir les droits d'administrateur pour utiliser toolbox.
Création d'une toolbox
Pour créer une toolbox, on utilisera :
Code BASH :
toolbox create
Par défaut, la toolbox est créée avec le même environnement que le système sur lequel il s'exécute.
Etant sur Fedora 41 lors de la rédaction de cet article, il me récupère une Fedora 41 :
Code :
Image required to create Toolbx container.
Download registry.fedoraproject.org/fedora-toolbox:41 (375.2MB)? [y/N]:
Le nom par défaut de la toolbox est distribution-toolbox-version. On pourra spécifier un nom particulier à notre toolbox en spécifiant le nom après le create :
Code BASH :
toolbox create fc41
Pour créer une Fedora 35 par exemple :
Code BASH :
toolbox create -d fedora -r 35 fc35
Si on veut créer une toolbox RHEL 9.3 appelée rhel9 :
Code BASH :
toolbox create -d rhel -r 9.3 rhel9
Et une Ubuntu 24.04 :
Code BASH :
toolbox create -d ubuntu -r 24.04 ubuntu2404
Les images sont stockées dans ~/.local/share/containers/storage.
Les distributions supportées sont indiquées dans la page de manuel de toolbox :
Code BASH :
man toolbox
Au moment de la rédaction de cet article, les distributions supportées sur Fedora sont : arch, fedora, rhel, ubuntu.
Créer des toolbox à partir d'images externes
Si on souhaite récupérer une image d'un autre système, on pourra le faire avec l'option --image suivi de l'URL du dépôt.
Voici un exemple pour la création d'une toolbox Alma Linux 9 :
Code BASH :
toolbox create --image quay.io/toolbx-images/almalinux-toolbox:9 alma9
On retrouvera une liste de toolbox et des versions disponibles ici :
- Distributions : https://quay.io/organization/toolbx-images
- Fedora : https://quay.io/repository/fedora/fedora-toolbox
Voici quelques exemples de distributions non présentes dans toolbox par défaut :
Alma Linux 9 :
Code BASH :
toolbox create --image quay.io/toolbx-images/almalinux-toolbox:9
Alpine Linux 3.19 :
Code BASH :
toolbox create --image quay.io/toolbx-images/alpine-toolbox:3.19
CentOS Stream 9 :
Code BASH :
toolbox create --image quay.io/toolbx-images/centos-toolbox:stream9
Debian 12 :
Code BASH :
toolbox create --image quay.io/toolbx-images/debian-toolbox:12
OpenSuse Tumbleweed :
Code BASH :
toolbox create --image quay.io/toolbx-images/opensuse-toolbox:tumbleweed
Lister les toolbox
Il est possible de lister les toolbox avec :
Code BASH :
toolbox list
Ce qui renvoie :
Code :
IMAGE ID IMAGE NAME CREATED
8be0f10e55e7 quay.io/toolbx/ubuntu-toolbox:24.04 5 days ago
f44ae26aeaeb registry.access.redhat.com/ubi9/toolbox:9.3 8 months ago
862705390e8b registry.fedoraproject.org/fedora-toolbox:35 2 years ago
d2a9c71e8282 registry.fedoraproject.org/fedora-toolbox:41 8 hours ago
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
c26ac38fb8d7 fc35 7 minutes ago created registry.fedoraproject.org/fedora-toolbox:35
f50812d2d52c fedora-toolbox-41 20 minutes ago created registry.fedoraproject.org/fedora-toolbox:41
b03d09788ca1 rhel9 About a minute ago created registry.access.redhat.com/ubi9/toolbox:9.3
a010af9a0803 ubuntu2404 14 minutes ago created quay.io/toolbx/ubuntu-toolbox:24.04
On y retrouve la liste des images et des conteneurs.
Toolbox s'appuyant sur podman, on reconnaitra la sortie des commandes sous commandes podman images et podman ps
Entrer dans une toolbox
Pour entrer dans une toolbox, on utilisera :
Code BASH :
toolbox enter
Par défaut, on rentrera dans la toolbox corerspondant au même système que l'hôte s'il existe (Fedora 41 sur une Fedora 41)
Pour rentrer dans une toolbox particulière, on indiquera le nom de la toolbox. Par exemple :
Code BASH :
toolbox enter rhel9
A ce moment là, on est dans le système de la toolbox et le prompt indique un hexagone violet (si on n'a pas personnalisé notre prompt) :
Code BASH :
adrien@fedora:~$ toolbox enter rhel9 ⬢ [adrien@toolbx ~]$ cat /etc/redhat-release Red Hat Enterprise Linux release 9.3 (Plow) ⬢ [adrien@toolbx ~]$
On sait qu'on est dans une toolbox avec le nom du système qui est toolbx.
Je vais pouvoir installer ce que je souhaite dedans, comme si j'étais sur mon système réel.
Pour quitter la toolbox :
Code BASH :
exit
Lancer à la volée des applications
Il est possible de lancer des applications installées dans une toolbox avec :
Code BASH :
toolbox run --container leconteneur unecommande
Exemple, après installation de cpu-x sur le conteneur ubuntu2404 :
Code BASH :
toolbox run --container ubuntu2404 cpu-x
Et l'application se lance comme si j'étais sur ma Fedora Linux :
Stopper les toolbox
Si on entre dans une toolbox et qu'on en sort (ou qu'on lance une commande), les conteneurs restent lancés (pour exécuter plus rapidement des commandes ou rentrer plus vite dans la toolbox) :
Code :
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
c26ac38fb8d7 fc35 42 minutes ago created registry.fedoraproject.org/fedora-toolbox:35
23fe89c3e62e fedora-toolbox-41 31 minutes ago created registry.fedoraproject.org/fedora-toolbox:41
b03d09788ca1 rhel9 36 minutes ago running registry.access.redhat.com/ubi9/toolbox:9.3
a010af9a0803 ubuntu2404 50 minutes ago running quay.io/toolbx/ubuntu-toolbox:24.04
On voit ici que rhel9 et ubuntu2404 sont dans le statut "running".
On pourra arrêter les conteneurs avec podman comme on le fait habituellement :
Code BASH :
podman stop leconteneur
Si je stoppe ubuntu2404, le conteneur est en statut exited :
Code :
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
c26ac38fb8d7 fc35 45 minutes ago created registry.fedoraproject.org/fedora-toolbox:35
23fe89c3e62e fedora-toolbox-41 33 minutes ago created registry.fedoraproject.org/fedora-toolbox:41
b03d09788ca1 rhel9 38 minutes ago running registry.access.redhat.com/ubi9/toolbox:9.3
a010af9a0803 ubuntu2404 52 minutes ago exited quay.io/toolbx/ubuntu-toolbox:24.04
Supprimer des conteneurs
Si on n'a plus besoin d'un conteneur, on pourra le supprimer avec :
Code BASH :
toolbox rm leconteneur
Exemple ici pour supprimer le conteneur ubuntu2404 :
Code BASH :
toolbox rm ubuntu2404
Le conteneur est alors supprimé mais l'image de référence reste présente quant à elle.
On pourra éventuellement utiliser l'option --force qui stoppera tous le conteneur avant de le supprimer.
Supprimer des images
Si on veut supprimer des images téléchargées, on pourra le faire avec :
Code BASH :
toolbox rmi url-de-image
Exemple ici avec l'image de la Ubuntu 24.04 :
Code BASH :
toolbox rmi quay.io/toolbx/ubuntu-toolbox:24.04
On pourra éventuellement utiliser l'option --force qui stoppera tous les conteneurs associés à l'image, supprimera ceux-ci et supprimera enfin l'image. A utiliser avec précaution !
Intégration avec le terminal
Si vous êtes avec l'environnement de bureau GNOME, toolbox est directement intégré au terminal pytxis.
On pourra lancer les toolbox créées facilement via le menu déroulant en haut à gauche :