GNU/Linux >> Tutoriales Linux >  >> Linux

Linux-Lxc; ¿Implementación de imágenes con el X11 más pequeño posible?

¿Actualmente es posible configurar contenedores LXC con capacidades X11? Espero con ansias el contenedor X11 más liviano disponible (en cuanto a memoria), la aceleración de hardware es una ventaja, pero no esencial.

Si actualmente no es posible o no está disponible, ¿se sabe qué funcionalidad debe implementarse aún para admitirlo?

Respuesta aceptada:

sí, es posible ejecutar un entorno de escritorio X11 completo dentro de un contenedor LXC.

En este momento, hago esto en Arch Linux. No diré que es "ligero", ya que no he ido tan lejos como para tratar de quitar cosas de la instalación estándar del administrador de paquetes, pero puedo confirmar que funciona muy bien.

Debe instalar los controladores del kernel en el HOST y en el contenedor. Cosas como el controlador de gráficos (yo uso nvidia). Debe hacer que los nodos del dispositivo en desarrollo sean accesibles dentro del contenedor configurando su container.conf para permitirlo. Luego debe asegurarse de que esos nodos de dispositivo se creen dentro del contenedor (es decir, mknod).

Entonces, para responder a su pregunta:SÍ, funciona. Si puedo ayudar más o proporcionar más detalles, házmelo saber.

— información adicional proporcionada —

En mi contenedor...
/etc/inittab se inicia en el nivel de ejecución 5 y ejecuta "slim"
Slim está configurado para usar 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

No estoy usando una segunda pantalla X en mi vt actual, sino una completamente diferente (puedo cambiar entre muchas de estas usando CTRL+ALT+Fn).

Si no está usando slim, puede usar una construcción como esta para iniciar X en otro vt:

 /usr/bin/startx -- :10 vt10

Eso iniciará X en la pantalla:10 y lo colocará en vt10 (CTRL+ALT+F10).
No es necesario que coincidan, pero creo que es más ordenado si lo hacen.

Necesita la configuración de su contenedor para que los dispositivos relevantes estén disponibles, como este:

 # 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

Y necesita hacer los dispositivos en su contenedor:

 # 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

También configuré manualmente los dispositivos de entrada (ya que no tenemos udev en el contenedor
)

 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

Lo anterior va en un archivo /etc/X11/xorg.conf.d/10-input.conf

Relacionado:¿Cómo ejecutar aplicaciones X11 de forma remota?

No estoy seguro de si algo de eso ayudará, ¡pero buena suerte!


Linux
  1. Configurar Linux Container con LXC en Ubuntu 16.04

  2. Cómo administrar los registros de contenedores de Linux

  3. Mis 5 imágenes favoritas de contenedores de Linux

  4. Cómo crear y lanzar contenedores LXC Linux con comandos LXC

  5. ¿Es posible abortar el apagado en Linux?

Reemplace du con polvo en Linux

Comando wc Linux con ejemplos

Comando ip de Linux con ejemplos

15 comandos ps de Linux con ejemplos

Configurar Linux Container con LXC en CentOS 7/RHEL 7

Tutorial de Docker:Primeros pasos con Docker en Linux