LXD

De Justine's wiki
Aller à la navigation Aller à la recherche

Présentation rapide

LXD est un moteur de conteneurs et de VMs sous Linux. Il s'agit d'un projet géré par Canonical. Basé sur des images, son but est un peu différent de celui de Docker; il fournit des OS, et non des images applicatives stateless comme Docker. Il se base sur le runtime LXC (pour LinuX Containers), qui est notamment utilisé par Proxmox. Il se base sur une API REST.

Leur site propose une page de test interactif. Après avoir suivi ce rapide tuto, on peut en tirer les fonctionnalités intéressantes suivantes:

  • Un système d'Images donc; la liste est ici. Fait sympathique, on peut visiter leur dashboard Jenkins
  • La possibilité de faire des snapshots, de façon plutôt efficace
  • La possiblité de customiser RAM, CPU, etc... à la volée
  • Une CLI assez simple

Opérations de base

La commande se nomme "lxc"; il faut la distinguer du runtime du même nom.

Images, lancement de conteneur

Lister les images dispo sur leur serveur, nommé "images:"

lxc image list images:

Lancer un conteneur nommé "first" avec une image Ubuntu

lxc launch images:ubuntu/20.04 first

Copier un conteneur (clone)

lxc copy first second

Gestion de conteneurs

Lister les conteneurs

lxc list

Démarrer un conteneur

lxc start first

Infos sur un conteneur

lxc info first

Arrêt d'un conteneur

lxc stop first

Effacer un conteneur (arrêté)

lxc delete first

Effacer un conteneur qui tourne

lxc delete third --force

Limitations en ressources

Un conteneur non limité a autant de ram et de cpu que son hôte; il est possible de limiter les choses.

Lancer un conteneur nommé limited avec 1 vCPU et 192Mib de ram

lxc launch images:ubuntu/20.04 limited -c limits.cpu=1 -c limits.memory=192MiB

Voir sa conf

lxc config show limited

Modification à la volée:

lxc config set limited limits.memory=128MiB

Interactions avec le conteneur

Lancer un shell dans le conteneur "first"

lxc exec first -- bash

Lancer une commande dans le conteneur "first"

lxc exec first -- apt-get update

Accès aux fichier du conteneur

On peut récupérer et repousser des fichiers vers / depuis le conteneur. Pull un fichier du conteneur first

lxc file pull first/etc/hosts .

Push ce même fichier après modif

lxc file push hosts first/etc/hosts

Lire un fichier de log

lxc file pull first/var/log/syslog - | less

Snapshot

Créer un snapshot nommé "clean"

lxc snapshot first clean

Lister les snaps d'un conteneur

lxc list first

Restaurer le snap "clean" sur le conteneur "first"

lxc restore first clean

Effacer le snap "clean" sur la machine "first"

lxc delete first/clean