GNU/Linux >> Tutoriels Linux >  >> Linux

Linux-Lxc ; Déploiement d'images avec X11 le plus petit possible ?

est-il actuellement possible de configurer des conteneurs LXC avec des capacités X11 ? J'attends avec impatience le conteneur X11 le plus léger disponible (en termes de mémoire), l'accélération matérielle est un plus mais pas essentielle.

Si ce n'est pas actuellement possible, ou facilement disponible, sait-on quelle fonctionnalité doit encore être implémentée pour la prendre en charge ?

Réponse acceptée :

oui, il est possible d'exécuter un environnement de bureau X11 complet dans un conteneur LXC.

En ce moment, je le fais sur Arch Linux. Je ne dirai pas que c'est "léger" car je ne suis pas allé jusqu'à essayer de supprimer des éléments de l'installation standard du gestionnaire de packages, mais je peux confirmer que cela fonctionne très bien.

Vous devez installer tous les pilotes du noyau sur l'HÔTE ainsi que dans le conteneur. Des choses telles que le pilote graphique (j'utilise nvidia). Vous devez rendre les nœuds de périphérique dans dev accessibles à l'intérieur du conteneur en configurant votre conteneur.conf pour l'autoriser. Vous devez ensuite vous assurer que ces nœuds de périphérique sont créés à l'intérieur du conteneur (c'est-à-dire mknod).

Donc, pour répondre à votre question :OUI ça marche. Si je peux vous aider davantage ou fournir plus de détails, faites-le moi savoir.

— informations complémentaires fournies —

Dans mon conteneur…
/etc/inittab démarre au niveau d'exécution 5 et lance « slim »
Slim est configuré pour utiliser vt09 :

 # Path, X server and arguments (if needed)
 # Note: -xauth $authfile is automatically appended
 default_path        /bin:/usr/bin:/usr/local/bin
 default_xserver     /usr/bin/X
 xserver_arguments   -nolisten tcp vt09

Je n'utilise pas un deuxième affichage X sur mon vt actuel, mais un complètement différent (je peux basculer entre plusieurs d'entre eux en utilisant CTRL + ALT + Fn).

Si vous n'utilisez pas slim, vous pouvez utiliser une construction comme celle-ci pour démarrer X sur un autre vt :

 /usr/bin/startx -- :10 vt10

Cela démarrera X sur l'affichage :10 et le mettra sur vt10 (CTRL+ALT+F10).
Ceux-ci n'ont pas besoin de correspondre mais je pense que c'est plus propre s'ils le font.

Vous avez besoin de la configuration de votre conteneur pour rendre les appareils pertinents disponibles, comme ceci :

 # XOrg Desktop
 lxc.cgroup.devices.allow = c 4:10 rwm    # /dev/tty10 X Desktop
 lxc.cgroup.devices.allow = c 195:* rwm  # /dev/nvidia Graphics card
 lxc.cgroup.devices.allow = c 13:* rwm   # /dev/input/* input devices

Et vous devez créer les appareils dans votre conteneur :

 # display vt device
 mknod -m 666 /dev/tty10 c 4 10

 # NVIDIA graphics card devices
 mknod -m 666 /dev/nvidia0 c 195 0
 mknod -m 666 /dev/nvidiactl c 195 255

 # input devices
 mkdir  /dev/input           # input devices
 chmod 755 /dev/input
 mknod -m 666 /dev/input/mice c 13 63 # mice

J'ai également configuré manuellement les périphériques d'entrée (puisque nous n'avons pas udev dans
le conteneur)

 Section "ServerFlags"
         Option "AutoAddDevices" "False"
 EndSection

 Section "ServerLayout"
     Identifier     "Desktop"
     InputDevice    "Mouse0" "CorePointer"
     InputDevice    "Keyboard0" "CoreKeyboard"
 EndSection

 Section "InputDevice"
     Identifier "Keyboard0"
     Driver "kbd"
     Option "XkbLayout" "gb"
 EndSection

 Section "InputDevice"
     Identifier "Mouse0"
     Driver "mouse"
     Option "Protocol" "auto"
     Option "Device" "/dev/input/mice"
     Option "ZAxisMapping" "4 5 6 7"
 EndSection

Ce qui précède va dans un fichier /etc/X11/xorg.conf.d/10-input.conf

En relation :Comment exécuter des applications X11 à distance ?

Je ne sais pas si cela vous aidera, mais bonne chance !


Linux
  1. Configurer le conteneur Linux avec LXC sur Ubuntu 16.04

  2. Comment gérer les registres de conteneurs Linux

  3. Mes 5 images de conteneurs Linux préférées

  4. Comment créer et lancer des conteneurs Linux LXC avec les commandes LXC

  5. Possible d'utiliser un .dll sous Linux

Remplacer du par de la poussière sous Linux

Commande Linux wc avec exemples

Commande Linux ip avec exemples

15 Commande Linux ps avec exemples

Configurer le conteneur Linux avec LXC sur CentOS 7/RHEL 7

Tutoriel Docker - Premiers pas avec Docker sous Linux