GNU/Linux >> Linux Esercitazione >  >> Linux

Linux – Lxc; Distribuire immagini con il più piccolo possibile X11?

è attualmente possibile configurare contenitori LXC con funzionalità X11? Non vedo l'ora di trovare il container X11 più leggero disponibile (dal punto di vista della memoria), l'accelerazione hardware è un vantaggio ma non essenziale.

Se non è attualmente possibile, o prontamente disponibile, è noto quale funzionalità deve essere ancora implementata per supportarla?

Risposta accettata:

sì, è possibile eseguire un ambiente desktop X11 completo all'interno di un contenitore LXC.

In questo momento, lo faccio su Arch Linux. Non dirò che è "leggero" perché non sono arrivato al punto di provare a rimuovere le cose dall'installazione standard del gestore di pacchetti, ma posso confermare che funziona molto bene.

Devi installare tutti i driver del kernel sull'HOST e nel contenitore. Cose come il driver grafico (io uso nvidia). Devi rendere accessibili i nodi del dispositivo in dev all'interno del contenitore configurando il tuo container.conf per consentirlo. Devi quindi assicurarti che quei nodi del dispositivo siano creati all'interno del contenitore (cioè mknod).

Quindi, per rispondere alla tua domanda:SÌ, funziona. Se posso aiutare ulteriormente o fornire maggiori dettagli per favore fatemelo sapere.

— informazioni aggiuntive fornite —

Nel mio contenitore...
/etc/inittab si avvia nel livello di esecuzione 5 e avvia "slim"
Slim è configurato per utilizzare 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

Non sto usando un secondo display X sul mio attuale vt, ma uno completamente diverso (posso passare da uno all'altro usando CTRL+ALT+Fn).

Se non stai usando slim, puoi usare un costrutto come questo per avviare X su un altro vt:

 /usr/bin/startx -- :10 vt10

Questo avvierà X sul display:10 e lo metterà su vt10 (CTRL+ALT+F10).
Non è necessario che corrispondano ma penso che sia più ordinato se lo fanno.

Hai bisogno della configurazione del tuo contenitore per rendere disponibili i dispositivi pertinenti, come questo:

 # 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

E devi realizzare i dispositivi nel tuo contenitore:

 # 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

Ho anche configurato manualmente i dispositivi di input (poiché non abbiamo udev nel
container)

 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

Quanto sopra in un file /etc/X11/xorg.conf.d/10-input.conf

Correlati:come eseguire le applicazioni X11 in remoto?

Non sono sicuro che tutto ciò possa aiutare, ma buona fortuna!


Linux
  1. Come gestire i registri dei container Linux

  2. Comando JQ in Linux con esempi

  3. È possibile interrompere l'arresto su Linux?

  4. Possibile utilizzare un .dll su Linux

  5. La finestra mobile può essere eseguita all'interno di un contenitore Linux?

Sostituisci du con polvere su Linux

Comando wc Linux con esempi

Comando IP Linux con esempi

15 Comando Linux ps con esempi

Configura il contenitore Linux con LXC su CentOS 7 / RHEL 7

Tutorial Docker – Introduzione a Docker in Linux