Como posso executar aplicativos X dentro de um contêiner LXC de maneira eficiente?
ssh -Y guest
é muito lento - não há aceleração gráfica ssh -Y
- tudo precisa passar pela rede virtual com o protocolo X11 tradicional.
Ser capaz de copiar e colar entre aplicativos host e convidado é desejável, mas não essencial. A execução de dois servidores X, um para o host e outro para o convidado, é (para meus propósitos) essencial.
Não consigo executar um Xorg nativo de dentro do convidado porque ele reclama de /dev/tty0
falta, e não posso mknod
esse dispositivo no convidado porque tenho uma permissão negada, mesmo quando o faço como root.
fonte
NOTA : Essa abordagem é um pouco complicada. Também não suporta copiar e colar entre host e convidado - e é totalmente inseguro!
/tmp
como um sistema de arquivos adicional na configuração do convidado, que passa para/tmp
o host.xhost +
uma janela do terminal.DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &
DISPLAY=:2 /etc/X11/xinit/Xsession
dentro do convidado (substituindo ambos os
2
s pelo número da tela a ser usada se você estiver usando isso para conectar-se a várias VMs LXC.) Ajuste os parâmetros de resolução (-screen
) e DPI (-dpi
) para se adequarem.O que isso faz é configurar conexões "proxy" para um servidor X aninhado Xephyr em execução no convidado (que usa soquetes de domínio UNIX e a extensão MIT-SHM) e outra conexão do Xephyr com o servidor X host (que usa soquetes de domínio UNIX , mas não posso, tanto quanto eu possa determinar, usar o MIT-SHM, devido ao design do LXC). Essa parece ser a configuração mais rápida possível com um convidado LXC, pelo menos com o driver de código aberto do meu hardware (nvidia).
fonte