Installation sur Ubuntu 18.04

apt install lxd lxd-client lxc-utils

Vous devez ensuite initialiser lxd, ce qui aura pour effet de créer un premier volume, nécessaire pour les containers.

lxd init

Lors de la configuration du réseau, lxd essaye de déterminer un range disponible. En cas d'échec, il faudra relancer l'init et saisir une adresse cidr pour paramétrer le bridge. La notation sera "IP de l'interface/Masque". Exemple : 192.168.10.1/24.

Création d'un premier container :

lxc launch ubuntu:bionic/amd64 picsou -p default -p {profile} -p ...

Contrairement à lxc, le container est déjà démarré à cette étape.

lxc list
lxc info {container}

Déposer des fichiers sur un container

Voici comment installer sa clef ssh pour root :

lxc file push ~/.ssh/id_rsa.pub picsou/root/.ssh/authorized_keys

Il faut ensuite corriger les droits du dossier :

echo "chmod 600 /root/.ssh/authorized_keys && sudo chown root: /root/.ssh/authorized_keys" | lxc exec picsou /bin/bash

Destruction d'un container

lxd delete {--force} container

Gestion des profils

lxc profile show profil
lxc profile create profil
lxc profil edit profil [< file.txt]

Pour modifier un attribut de profil, on peut utiliser :

lxc profile set profil attribut valeur

Dépôt d'images

lxc image list images:
lxc image list ubuntu:

Par défaut, on croit que lxc launch ubuntu:bionic/i386 installe une ubuntu bionic ... mais en fait ubuntu: indique le dépôt. Donc pour installer quelque-chose venant du dépôt images, il faut faire :

lxc launch images:alpine/3.6/i386 rushmore

Et voila notre container lxc rushmore est bien un linux alpine 3.6 version i386.