Skip to main content

Installation de LXC

Installation des paquets

En tant qu'utilisateur root installer les paquets lxc, lxcfs et lxc-template

apt update && apt dist-upgrade
apt install lxc lxcfs lxc-templates

Seule l'installation de lxc est nécessaire comme lxcfs et lxc-templates sont ajouté automatiquement, tout définir permet de prévenir dans le cas ou ce comportement change dans le futur.

Configuration de la variable XDG_RUNTIME_DIR

créer le fichier /etc/profile.d/xdg_runtime_dir.sh avec le contenu suivant

#!/bin/bash

export XDG_RUNTIME_DIR=/run/user/$(id -u)

Cette variable d'environnement permet d'indiqué à LXC un emplacement propre à l'utilisateur dans lequel il pourra placer de petits fichiers temporaire

Création du fichier /etc/lxc/lxc.conf

lxc.lxcpath = /data/lxc

Par défaut les conteneurs créés par LXC se trouvent dans le dossier /var/lib/lxc/ dans le but de simplifier leur gestion plus tard (sauvegarde, migration, ...) ils sont déplacé dans un dossier dédié en dehors du système.

Bien sûr cela implique de créer ce dossier ensuite:

mkdir -p /data/lxc

Configuration par defaut de LXC

Editer le fichier /etc/lxc/default.conf pour indiquer d'utiliser le bridge interne par défaut et d'utiliser un profile unconfined pour AppArmor.

lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up

lxc.apparmor.profile = unconfined
lxc.apparmor.allow_nesting = 1

A l'heure actuelle AppArmor dans un conteneur non privilégié semble ne pas vouloir fonctionner sous Debian. Le fix conseiller pour le moment est donc de le définir à "unconfined".

J'admets ne pas encore connaître les implication de ce changement. J'éditerais cette partie quand je le saurais ou si le problème est reglé et permet de revenir au profil "generated" par défaut.