
Une fois Incus installé, tout passe par une CLI cohérente : incus launch crée une instance, incus exec y exécute des commandes, incus snapshot la sauvegarde. Ce guide déroule les gestes essentiels sur des exemples réels : lancer un conteneur, lancer une machine virtuelle, entrer dedans, prendre un snapshot, ajuster la config, et gérer le cycle de vie. Tout a été testé sur Incus 7.0. Pour qui découvre Incus après l'installation.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Lancer un conteneur et une machine virtuelle (
incus launch). - Exécuter des commandes et ouvrir un shell (
incus exec). - Lister et inspecter les instances (
incus list,incus info). - Prendre et restaurer un snapshot.
- Gérer le cycle de vie (start, stop, delete).
Lancer son premier conteneur
Section intitulée « Lancer son premier conteneur »La commande clé est incus launch <image> <nom>. Les images viennent par défaut du remote images:, le serveur d'images officiel.
incus launch images:debian/13 c1En quelques secondes, le conteneur démarre et obtient une IP sur incusbr0 :
incus list+------+---------+-----------------------+-----------+| NAME | STATE | IPV4 | TYPE |+------+---------+-----------------------+-----------+| c1 | RUNNING | 10.173.191.191 (eth0) | CONTAINER |+------+---------+-----------------------+-----------+Entrer dans l'instance
Section intitulée « Entrer dans l'instance »Pour exécuter une commande à l'intérieur, utilisez incus exec <nom> -- <commande> :
incus exec c1 -- cat /etc/os-release# PRETTY_NAME="Debian GNU/Linux 13 (trixie)"Pour un shell interactif, incus shell (ou incus exec c1 -- bash) :
incus shell c1C'est toute la différence avec Docker : un conteneur Incus est un système complet (avec systemd, des services, des utilisateurs), pas un processus unique. On s'y connecte comme à une petite machine.
Inspecter une instance
Section intitulée « Inspecter une instance »incus list donne la vue d'ensemble ; incus info détaille une instance (état, type, ressources, réseau) :
incus info c1# Name: c1# Status: RUNNING# Type: container# Architecture: x86_64Pour voir les images en cache local :
incus image listLancer une machine virtuelle
Section intitulée « Lancer une machine virtuelle »Le même launch crée une VM complète avec l'option --vm (QEMU) au lieu d'un conteneur :
incus launch images:ubuntu/24.04 vm1 --vm+------+---------+-------------------------+-----------------+| NAME | STATE | IPV4 | TYPE |+------+---------+-------------------------+-----------------+| vm1 | RUNNING | 10.173.191.248 (enp5s0) | VIRTUAL-MACHINE |+------+---------+-------------------------+-----------------+Mêmes commandes, deux technologies : incus exec vm1 -- ... fonctionne dans la VM comme dans le conteneur, grâce à l'agent intégré.
Prendre un snapshot
Section intitulée « Prendre un snapshot »Avant une manipulation risquée, incus snapshot create fige l'état de l'instance :
incus snapshot create c1 snap0incus snapshot list c1+-------+----------------------+------------+----------+| NAME | TAKEN AT | EXPIRES AT | STATEFUL |+-------+----------------------+------------+----------+| snap0 | 2026/06/30 20:59 UTC | | NO |+-------+----------------------+------------+----------+En cas de souci, on restaure avec incus snapshot restore c1 snap0. Le snapshot capture le disque ; ajoutez --stateful pour aussi figer la mémoire d'une instance en marche.
Ajuster la configuration
Section intitulée « Ajuster la configuration »Les ressources se règlent à chaud avec incus config set :
incus config set c1 limits.memory=512MiBincus config get c1 limits.memory# 512MiBOn limite de même le CPU (limits.cpu=2), on ajoute des devices (disque, carte réseau, port forwarding), on active le démarrage auto (boot.autostart=true).
Gérer le cycle de vie
Section intitulée « Gérer le cycle de vie »incus stop c1 # arrêterincus start c1 # démarrerincus restart c1 # redémarrerincus delete c1 # supprimer (instance arrêtée)incus delete c1 --force # forcer la suppression d'une instance en marcheUne instance supprimée l'est définitivement (avec ses snapshots) : pensez à exporter ou à sauvegarder ce qui compte avant.
À retenir
Section intitulée « À retenir »incus launch images:<distro> <nom>crée et démarre une instance depuis le remoteimages:.- Ajoutez
--vmpour une machine virtuelle au lieu d'un conteneur ; les mêmes commandes s'appliquent. incus execlance une commande,incus shellouvre un shell : un conteneur Incus est un système complet.incus snapshot createsauvegarde l'état ; restaurez avecsnapshot restore.incus config setrègle mémoire, CPU et devices à chaud.
FAQ : questions fréquentes sur les premiers pas avec Incus
Section intitulée « FAQ : questions fréquentes sur les premiers pas avec Incus »incus launch
incus launch images:debian/13 c1
incus list
incus launch <image> <nom> crée et démarre le conteneur. L'image vient du remote images: (serveur officiel). En quelques secondes, l'instance obtient une IP sur incusbr0.Pour parcourir les images disponibles : incus image list images:.Créer et démarrer, ou créer seulement
incus launch: crée et démarre l'instance en une commande (le plus courant) ;incus init: crée l'instance sans la démarrer.
init est utile pour configurer l'instance (CPU, mémoire, devices) avant son premier boot, puis la lancer avec incus start. Pour démarrer vite, on utilise launch.incus exec et incus shell
incus exec c1 -- cat /etc/os-release # une commande
incus shell c1 # un shell interactif
Un conteneur Incus est un système complet (systemd, services, utilisateurs) : on s'y connecte comme à une petite machine. C'est la différence avec un conteneur Docker, qui n'exécute qu'un processus applicatif.L'option --vm
incus launch images:ubuntu/24.04 vm1 --vm
La même commande, avec --vm, crée une machine virtuelle QEMU complète au lieu d'un conteneur. Les mêmes commandes (exec, info, snapshot) marchent grâce à l'agent intégré.Prérequis : la virtualisation matérielle (KVM) sur l'hôte, et le nested-virt si Incus tourne dans une VM.incus snapshot
incus snapshot create c1 snap0
incus snapshot list c1
incus snapshot restore c1 snap0
create fige l'état du disque de l'instance ; restore y revient. Ajoutez --stateful pour figer aussi la mémoire d'une instance en marche.Pratique avant toute manipulation risquée : on peut revenir en arrière en une commande.