Conteneur lxc avec X
Dans ce précédent post, j'explique l'installation d'un conteneur lxc.
Voici une astuce que l'on peut utiliser pour obtenir un accès au serveur graphique de la machine hôte sans installer un nouveau serveur X dans le conteneur, en effet, un second serveur X se lancerait dans une lutte sans merci avec le serveur X de l'hôte pour régner sans partage sur le seul écran de ma machine. Deux serveurs X, un écran...
L'idée est alors d'utiliser, dans le conteneur, le serveur X de la machine hôte, ainsi, on aura un seul serveur X pour un seul écran, c'est mieux...
Dans les fichiers de configuration du conteneur, on modifie le fichier fstab pour indiquer au système que l'on souhaite faire un bind du répertoire .X11-unix de la machine hôte avec le répertoire .X11-unix du conteneur
Remarque:
Attention à ne pas mélanger les fichiers fstab!!
/var/lib/lxc/le_nom_de_votre_conteneur/fstab
pour le fichier fstab de votre conteneur
- /var/lib/lxc/le_nom_de_votre_conteneur/rootfs/etc/fstab
pour le fichier fstab dans votre conteneur
- /var/cache/lxc/...
qui est le template lui-même
$ sudo vim /var/lib/lxc/le_nom_de_votre_conteneur/fstab
# On lui ajoute cette ligne tout en bas
/tmp/.X11-unix tmp/.X11-unix none bind 0 0
Etape 2
On démarre le conteneur
sudo lxc-start -n le_nom_de_votre_conteneur
Etape 3
On exporte la variable d'environnement DISPLAY pour indiquer "le numéro du serveur". Pour être sûr de la valeur, il suffit de regarder dans la machine hôte...
# Sur la machine hôte
$ ls /tmp/.X11-unix
X0
# Dans le conteneur
$ export DISPLAY=:0
# On test avec xclock (il faut installer x11-apps)
$ xclock
Si tout se passe bien, on obtient l'horloge xclock dans l'hôte (chez moi le conteneur se nomme « quantal-i386 » :)
Links:
Tags: lxc X11