LXD : les instances
Une instance est un conteneur (par défaut) ou une machine virtuelle (--vm) créée à partir d’une image. Les exemples utilisent un conteneur nommé c1.
Créer et lancer
Section intitulée « Créer et lancer »lxc launch ubuntu:24.04 c1 # crée et démarre un conteneurlxc init ubuntu:24.04 c2 # crée sans démarrerlxc launch ubuntu:24.04 vm1 --vm # machine virtuellelxc launch ubuntu:24.04 c3 -p default -p petit # avec des profils précislxc launch ubuntu:24.04 c4 -c limits.cpu=2 -c limits.memory=2GiB # avec des optionsCycle de vie
Section intitulée « Cycle de vie »| Commande | Rôle |
|---|---|
lxc list |
Liste les instances (état, adresses IP) |
lxc start c1 |
Démarre |
lxc stop c1 |
Arrête (--force pour forcer) |
lxc restart c1 |
Redémarre |
lxc pause c1 |
Met en pause |
lxc delete c1 |
Supprime une instance arrêtée (--force si elle tourne) |
lxc rename c1 web |
Renomme (instance arrêtée) |
lxc info c1 |
État détaillé, ressources, snapshots |
Se connecter et exécuter
Section intitulée « Se connecter et exécuter »lxc exec c1 -- bash # shell dans l'instancelxc exec c1 -- apt update # commande ponctuellelxc exec c1 --user 1000 -- bash # avec un utilisateur précis (identifiant numérique)lxc console c1 # console (Ctrl+a q pour quitter)lxc console c1 --show-log # journal de démarrageFichiers
Section intitulée « Fichiers »lxc file push ./config.conf c1/etc/config.conf # hôte vers instancelxc file push -r ./site c1/var/www/ # dossier completlxc file pull c1/var/log/syslog ./syslog # instance vers hôtelxc file edit c1/etc/hosts # éditer un fichier distantlxc file delete c1/tmp/essaiSnapshots
Section intitulée « Snapshots »Un snapshot fige l’état d’une instance pour y revenir.
lxc snapshot c1 avant-maj # crée un snapshotlxc info c1 # liste les snapshotslxc restore c1 avant-maj # revient à ce snapshotlxc delete c1/avant-maj # supprime le snapshotSnapshots automatiques, avec expiration :
lxc config set c1 snapshots.schedule "0 3 * * *" # tous les jours à 3 h (syntaxe cron)lxc config set c1 snapshots.expiry 1w # supprimés après une semaineCopier, déplacer et sauvegarder
Section intitulée « Copier, déplacer et sauvegarder »lxc copy c1 c1-copie # duplique une instancelxc move c1 c1-nouveau # renomme / déplacelxc export c1 ./c1-sauvegarde.tar.gz # sauvegarde complète dans un fichierlxc import ./c1-sauvegarde.tar.gz # restaure depuis ce fichierConfiguration et ressources
Section intitulée « Configuration et ressources »lxc config show c1 # configuration de l'instancelxc config set c1 limits.cpu 2 # limite à 2 CPUlxc config set c1 limits.memory 2GiB # limite de mémoirelxc config set c1 boot.autostart true # démarrage automatique avec l'hôtelxc config set c1 boot.autostart.priority 10 # ordre de démarrage (plus haut = plus tôt)lxc config edit c1 # édition complète dans l'éditeurlxc config unset c1 limits.cpu # retire une valeurPour exécuter Docker (ou d’autres conteneurs) dans une instance LXD :
lxc config set c1 security.nesting truelxc restart c1Initialiser avec cloud-init
Section intitulée « Initialiser avec cloud-init »Configuration automatique au premier démarrage (utilisateurs, paquets, fichiers) :
lxc launch ubuntu:24.04 c5 -c cloud-init.user-data="$(cat cloud-init.yaml)"#cloud-configpackage_update: truepackages: - nginxPour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : documentation.ubuntu.com/lxd/en/latest/instances