📍 Article principal du sujet : Incus 6 LTS — gérer conteneurs système et VMs Linux pour PME ouest-africaine
Pour la vue d’ensemble, lisez d’abord l’article principal qui pose le contexte d’Incus, ses concepts et ses cas d’usage.
Installer Incus 6 LTS sur un Ubuntu 24.04 prend une quinzaine de minutes en allant calmement, et la procédure est sensiblement la même qu’on parte d’un VPS frais ou d’un serveur déjà en service. Ce tutoriel couvre la voie recommandée par l’équipe officielle : passer par les paquets natifs si vous êtes sur Ubuntu 24.04 ou plus récent, ou par le dépôt Zabbly si vous tenez à conserver Ubuntu 22.04 LTS. À la fin, vous lancerez votre premier conteneur et vérifierez que le réseau et le stockage fonctionnent.
Prérequis
- Ubuntu Server 22.04 ou 24.04 LTS, à jour (
sudo apt update && sudo apt upgrade) - Un utilisateur avec
sudo(le compte par défautubuntuchez la plupart des hébergeurs) - Au moins 2 Go de RAM et 20 Go d’espace disque libre
- Accès SSH ouvert et fonctionnel
- Niveau attendu : familiarité avec la ligne de commande Linux et SSH
- Temps estimé : 15 à 25 minutes selon la bande passante
Si vous n’avez pas encore de serveur, Hostinger Cloud VPS propose des plans Ubuntu 24.04 LTS pré-installés à partir de 4 Go de RAM, livrés en moins de 60 secondes après commande, avec accès SSH par clé publique et panneau d’administration en français. C’est la voie la plus rapide pour pratiquer ce tutoriel sans configurer un environnement local complet.
Étape 1 — Vérifier la version d’Ubuntu et préparer le système
Avant tout, on confirme la version d’Ubuntu pour choisir la bonne méthode d’installation. Sur Ubuntu 24.04 et plus récent, le paquet incus est natif dans les dépôts officiels — c’est la voie la plus simple. Sur 22.04, il faudra passer par Zabbly. Cette commande affiche la version et son nom de code :
lsb_release -a
# Distributor ID: Ubuntu
# Description: Ubuntu 24.04.1 LTS
# Release: 24.04
# Codename: noble
Si la sortie indique noble (24.04) ou oracular (24.10) ou plus récent, vous pouvez sauter l’étape Zabbly et passer directement à l’installation native. Si la sortie indique jammy (22.04), suivez l’étape Zabbly. Profitez-en pour faire une mise à jour complète du système, ce qui évite des conflits de paquets pendant l’installation.
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl gnupg ca-certificates
Ces trois paquets utilitaires servent à récupérer la clé GPG du dépôt et à valider les certificats HTTPS. Sur la plupart des images Ubuntu Server, ils sont déjà présents, mais une réinstallation explicite ne coûte rien et évite les surprises lors de l’étape suivante.
Étape 2 — Ajouter le dépôt Zabbly (Ubuntu 22.04 uniquement)
L’équipe Zabbly publie des paquets Incus officiellement maintenus pour les versions Ubuntu et Debian où le paquet natif n’est pas encore disponible. Le dépôt offre un canal stable recommandé pour la production, et un canal daily pour ceux qui veulent les dernières évolutions. Pour une PME, le canal stable est le bon choix.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.zabbly.com/key.asc | sudo tee /etc/apt/keyrings/zabbly.asc > /dev/null
sudo curl -fsSL -o /etc/apt/sources.list.d/zabbly-incus-stable.sources https://pkgs.zabbly.com/incus/stable/zabbly-incus-stable.sources
sudo apt update
Cette séquence télécharge la clé GPG du dépôt, l’enregistre dans /etc/apt/keyrings/ (l’emplacement moderne que recommande Ubuntu depuis 22.04), puis ajoute la définition du dépôt au format .sources (deb822, le successeur de .list). Le apt update final doit se terminer sans erreur ; si vous voyez un message NO_PUBKEY, c’est que la clé GPG n’a pas été correctement importée — recommencez la première ligne en vérifiant que le fichier /etc/apt/keyrings/zabbly.asc existe et n’est pas vide.
Étape 3 — Installer le paquet Incus
Que vous soyez sur 24.04 (paquet natif) ou 22.04 (paquet Zabbly), la commande d’installation est la même. Le paquet principal s’appelle simplement incus et embarque le serveur, le client et les outils d’administration.
sudo apt install -y incus
incus --version
# 6.0.x
La sortie de incus --version doit afficher une version 6.0.x si vous êtes sur la branche LTS, ou 6.x.y plus récente si vous êtes sur la branche feature. Pour un environnement de production PME, restez sur la 6.0 LTS — elle reçoit les correctifs de sécurité jusqu’à la sortie de la prochaine LTS (6.5 prévue mi-2027). Le paquet vient d’ajouter un service systemd incus.service et d’inscrire votre utilisateur dans le groupe incus-admin ; pour que ce changement de groupe prenne effet, déconnectez-vous et reconnectez-vous en SSH avant l’étape suivante.
Étape 4 — Initialiser le serveur avec incus admin init
L’initialisation interactive crée le pool de stockage par défaut, le bridge réseau, et configure les options de cluster. C’est le moment où vous prenez les décisions structurantes : le driver de stockage en particulier est difficile à changer après coup, donc lisez chaque question avant de répondre.
sudo incus admin init
Voici les réponses recommandées pour un premier serveur PME, dans l’ordre où elles apparaissent. Pour la question Would you like to use clustering? répondez no (vous pourrez former un cluster plus tard sans perdre vos instances). Pour Do you want to configure a new storage pool? répondez yes, nommez-le default et choisissez le driver zfs si possible (sinon btrfs ou dir). Pour la taille du pool ZFS, prévoyez 50 % à 70 % de votre disque libre — par exemple 60 Go sur un VPS 80 Go. Pour What network bridge? acceptez le défaut incusbr0. Refusez l’exposition de l’API en TCP (no) : pour un serveur seul, l’API locale via socket Unix suffit et c’est plus sûr.
Après les réponses, Incus génère un fichier YAML, applique la configuration et termine en quelques secondes. Si une erreur apparaît à propos du noyau (kernel does not support unprivileged user namespaces), c’est un cas rare sur Ubuntu mais gérable via sudo sysctl -w kernel.unprivileged_userns_clone=1 et l’ajout permanent dans /etc/sysctl.d/incus.conf.
Étape 5 — Vérifier l’installation
Trois vérifications confirment que tout est fonctionnel : le service tourne, la commande client répond, et un conteneur de test démarre. La première :
sudo systemctl status incus.service
# active (running)
Le statut active (running) confirme que le démon Incus écoute et est prêt à recevoir des commandes. La deuxième vérification est purement client :
incus list
# +------+-------+------+------+------+-----------+
# | NOM | ÉTAT | IPv4 | IPv6 | TYPE | SNAPSHOTS |
# +------+-------+------+------+------+-----------+
Le tableau vide est la réponse correcte — vous n’avez pas encore d’instance. Si la commande retourne permission denied, c’est que votre utilisateur n’est pas dans le groupe incus-admin : vérifiez avec groups, ajoutez-vous au besoin avec sudo usermod -aG incus-admin $USER puis reconnectez-vous. La troisième vérification lance un conteneur Debian de test :
incus launch images:debian/12 test-incus
# Creating test-incus
# Starting test-incus
incus list
# test-incus | RUNNING | 10.x.x.x | ... | CONTAINER | 0
incus exec test-incus -- cat /etc/os-release
# PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
incus delete --force test-incus
Le téléchargement de l’image Debian prend une minute ou deux la première fois (selon la bande passante depuis Dakar ou Abidjan). Les fois suivantes, la même image est en cache local et un nouveau conteneur démarre en moins de deux secondes. Si la commande cat /etc/os-release renvoie effectivement la fiche Debian 12, votre installation Incus est opérationnelle.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Failed to setup ZFS storage pool | Module ZFS non chargé | sudo apt install -y zfsutils-linux && sudo modprobe zfs |
Permission denied sur incus |
Utilisateur hors du groupe incus-admin |
sudo usermod -aG incus-admin $USER puis reconnexion |
| Lenteur de téléchargement d’images | Latence vers images.linuxcontainers.org | Configurer un miroir local ou utiliser le serveur images-jp.linuxcontainers.org selon la latence mesurée |
Conteneur sans IP après launch |
Bridge incusbr0 non démarré ou conflit nftables | sudo systemctl restart incus.service et vérifier ip a show incusbr0 |
Adaptation au contexte ouest-africain
Sur un VPS chez un hébergeur mondial, le téléchargement initial des images Linux Containers transite typiquement par l’Europe ; comptez 1 à 3 Mo/s effectifs depuis Dakar selon l’heure et la qualité de la liaison. Pour un serveur de PME amené à créer beaucoup d’instances, la bonne pratique est de configurer le serveur d’images images-jp.linuxcontainers.org ou de monter votre propre miroir avec incus-image-server : les images sont rapatriées une seule fois, les instances suivantes démarrent depuis le cache local. Sur un cluster à plusieurs nœuds, désigner un nœud comme cache central évite la duplication des téléchargements.
Côté budget, un VPS 4 Go RAM / 80 Go SSD chez Hostinger tient confortablement une dizaine de petits conteneurs Debian/Alpine (sites WordPress, environnements de dev, runners CI). Pour une agence avec quinze clients à isoler, deux VPS de cette taille suffisent à servir l’ensemble en mode conteneur par client, soit un coût mensuel inférieur à 15 USD pour la totalité de l’infrastructure isolée.
Tutoriels frères
- Premier conteneur Incus :
launch,exec,shell— votre tutoriel suivant logique. - Configurer un pool de stockage ZFS par défaut — pour aller plus loin sur le choix du driver de stockage.
- Profils Incus : créer, modifier, appliquer — quand votre parc dépasse trois instances.
Pour aller plus loin
- 🔝 Retour à l’article principal : Incus 6 LTS — guide complet PME ouest-africaine
- Documentation officielle d’installation Incus
- Dépôt GitHub Zabbly — paquets Ubuntu/Debian récents
- Pour pratiquer sans monter d’infrastructure locale : Hostinger Cloud VPS
FAQ
Faut-il vraiment Ubuntu 24.04 ?
Non. Ubuntu 22.04 LTS reste parfaitement supporté via Zabbly, et Debian 12/13 fait également très bien le travail. La seule contrainte est d’avoir un noyau récent (5.10 minimum) supportant les user namespaces non privilégiés.
Le paquet snap d’Incus existe-t-il ?
Oui mais il n’est pas recommandé pour la production. Le paquet apt natif ou Zabbly est la voie officielle ; le snap était surtout pertinent pour LXD, son successeur Incus privilégie l’apt.
Doit-on désinstaller LXD avant ?
Pas strictement nécessaire si LXD n’est pas en service, mais c’est plus propre. Pour migrer un LXD existant vers Incus, l’outil officiel lxd-to-incus automatise la conversion sans perte de données.
Combien de RAM faut-il pour le démon Incus seul ?
30 à 50 Mo. Les conteneurs ajoutent ce qu’ils utilisent vraiment, donc le coût d’avoir Incus en plus est négligeable.
L’installation supporte-t-elle un upgrade direct depuis LXD ?
Oui via lxd-to-incus, qui copie la base de données, réécrit la configuration et redémarre proprement sous Incus. Un tutoriel dédié couvre la procédure ; c’est documenté côté upstream.