Aller au contenu principal

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/emplacementRôle
/var/snap/lxd/common/lxd/Données et configuration (via snap)
lxc profileProfils réutilisables (ressources, réseau, montages)
lxc storagePools 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 groupe docker).
  • 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