Un conteneur non privilégié

Initialisation d'un conteneur non privilégié : 
Comme la plupart des "templates" ne permettent pas de charger des images utilisables en mode non-privilégié il est recommandé d'utiliser le template "download". 
Celui-ci nécessite quelques paramètres supplémentaires pour fonctionner en mode automatique. Si ces paramètres ne sont pas fourni le template vous demande les données en affichant pour chaque choix une liste des possibilités, la liste des distributions disponibles est impressionnante ... 
Mais avant de créer le premier conteneur non privilégié il faut effectuer quelques mises à jour (utilisateur "testlxc" créé pour la circonstance) :

  • Créer un répertoire pour stocker nos conteneurs, sinon ceux-ci seront créés dans .local/share/lxc. Ici j'ai créé un répertoire $HOME/VM/LXC, volontairement en deuxième niveau en dessous de $HOME.
  • Créer le fichier /etc/lxc/lxc-usernet contenant :

# user type_de_réseau pont nombre 
testlxc   veth         br2  10

  • Créer le répertoire $HOME/.config/LXC
  • Créer dans ce répertoire un fichier "lxc.conf" contenant :

lxc.lxcpath = /home/testlxc/VM/LXC 
lxc.default_config = /home/testlxc/.config/lxc/default.conf

  • Créer un fichier "default.conf" contenant :

lxc.apparmor.profile = generated 
lxc.apparmor.allow_nesting = 1 
### 
lxc.idmap = u 0 296608 65536 
lxc.idmap = g 0 296608 65536 
Ces valeurs sont issues de : 
grep testlxc /etc/subuid (pour la ligne "u") 
grep testlxc /etc/subgid (pour la ligne "g") 
Ouf, c'est fini pour la configuration.

Pour les tests j'ai utilisé un script (TC) avec log détaillé dans un fichier, surtout pour les premiers tests : 
LOGPRI=DEBUG 
TEMPLATE=download 
NOM=debian-d 
LOTG=" --logfile=/dev/stdout --logpriority=${LOGPRI} " 
COMPL=' -- --dist debian --release buster --arch amd64 ' 
REP=' -P /home/testlxc/VM/LXC/' 
lxc-create  -n ${NOM} ${REP} -t ${TEMPLATE} ${LOG}  ${COMPL}  2>&1 | tee TC.LOG

Et on exécute notre script : 
./TC 
No such file or directory - Failed to open tty 
No such file or directory - Failed to open tty 
Using image from local cache 
Unpacking the rootfs 
..... 
You just created a Debian buster amd64 (20200419_05:24) container.

To enable SSH, run: apt install openssh-server 
No default root or user password are set by LXC.

Les deux "No such file..." n'ont pas l'air de gêner ...

On va voir de qui se passe dans ce nouveau conteneur : 
lxc-start debian-d 
lxc-attach debian-d 
root@debian-d:/# ls -al 
total 68 
drwxr-xr-x  21 root   root    4096 Apr 19 05:29 . 
drwxr-xr-x  21 root   root    4096 Apr 19 05:29 .. 
drwxr-xr-x   2 root   root    4096 Apr 19 05:27 bin 
drwxr-xr-x   2 root   root    4096 Feb  1 17:09 boot 
drwxr-xr-x   6 root   root     500 Apr 20 11:43 dev 
drwxr-xr-x  40 root   root    4096 Apr 20 11:43 etc 
drwxr-xr-x   2 root   root    4096 Feb  1 17:09 home 
drwxr-xr-x  10 root   root    4096 Apr 19 05:26 lib 
drwxr-xr-x   2 root   root    4096 Apr 19 05:25 lib64 
.... 
drwxr-xr-x   2 root   root    4096 Apr 19 05:25 srv 
dr-xr-xr-x  12 nobody nogroup    0 Apr 20 11:43 sys 
drwxrwxrwt   7 root   root    4096 Apr 20 11:43 tmp 
drwxr-xr-x  10 root   root    4096 Apr 19 05:25 usr 
drwxr-xr-x  11 root   root    4096 Apr 19 05:25 var 
Ceci ressemble bien au contenu d'une machine réelle. 
On personnalise rapidement le mot de passe de "root" afin de sécuriser un peu ce conteneur. 
on en sort par "exit" puis "lxc-stop debian-d" ou par : 
"systemctl poweroff" plus court !

Maintenant il reste à connecter notre machine au réseau ...