lxd — Conteneurs système
LXD est un gestionnaire de conteneurs système (par opposition aux conteneurs applicatifs Docker) : chaque conteneur LXD fait tourner un OS complet avec son propre init, se comportant comme une VM légère mais avec les performances d'un conteneur (namespaces + cgroups, pas d'hyperviseur). Peut aussi gérer des VM via QEMU.
Installation
snap install lxd # méthode officielle (LXD distribué via snap)
lxd init # configuration interactive initiale (stockage, réseau)
systemctl status snap.lxd.daemon
Fichiers de configuration
| Fichier/emplacement | Rôle |
|---|---|
/var/snap/lxd/common/lxd/ | Données et configuration (via snap) |
lxc profile | Profils réutilisables (ressources, réseau, montages) |
lxc storage | Pools de stockage (dir, zfs, btrfs, lvm) |
Commandes utiles
lxc list
lxc launch ubuntu:22.04 monconteneur
lxc exec monconteneur -- bash
lxc profile list
lxc storage list
lxc network list
Exemple de configuration
# Créer un conteneur avec des limites de ressources
lxc launch ubuntu:22.04 web01
lxc config set web01 limits.cpu 2
lxc config set web01 limits.memory 2GB
Sécurisation
- Isoler le pool de stockage LXD sur un système de fichiers dédié (ZFS/btrfs recommandés pour les snapshots).
- Restreindre l'accès au groupe
lxd: appartenir à ce groupe équivaut à un accès root sur l'hôte (comme le groupedocker). - Utiliser les profils pour appliquer des limites de ressources et des restrictions par défaut à tous les nouveaux conteneurs.
- Préférer des conteneurs non privilégiés (par défaut sur LXD moderne) plutôt que privilégiés.
Logs & dépannage
journalctl -u snap.lxd.daemon -f
lxc info monconteneur --show-log
lxc monitor # flux d'événements en temps réel
Voir aussi
- incus — le fork communautaire de LXD, API et CLI très proches