[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Запуск гуевых приложений в контейнере (was: Debian 7 и intel hd graphics 500)



В Wed, 03 Jun 2020 10:29:54 +0300
Dmitry Alexandrov <321942@gmail.com> пишет:

> Stanislav Vlasov <stanislav.v.v@gmail.com> wrote:
> > Честно говоря, не в курсе, можно ли в контейнерах штатным образом
> > запускать гуёвый софт с отображением его окон на локальных иксах
> > без всяких ssh -X в контейнер  
> 
> Да, естественно, ибо с каких это пор Иксам стали требоваться всякие
> костыли типа ssh для отрисовки окон на другой машине?
> 
> > простым конфигурированием контейнера.  
> 
> Скорее уж хоста.  А конкретно:

Вот лучше контейнера. Ибо безопаснее будет в нашу параноидальную эпоху.

> 1. Включить ‘-listen tcp’ у Икс-сервера.  Как — см. в документации
> экранного диспетчера, который его собственно по-умолчанию и отключает.

Ага, а потом еще убедиться, что это надежно заткнуто файрволлом и
пустят туда только из контейнера, а не изо всей локальной сети.

Лучше уж как ниже описано смонтировать в контейнер юникс-домен сокеты из
/tmp/.X11-unix

 
> 2. разрешить к нужной инстанции доступ для нужного контейнера:
> 
> 	$ xhost +inet:192.168.122.11
> 	$ xhost +inet6:fd34:fe56:7891:2f3a::11

Ой, не рекомендую использовать xhost.  В принципе, в сочетании с
предыдущим советом достаточно просто ~/.Xauthority в контейнер
скопировать. Потому что при этом значение DISPLAY внутри и снаружи
будет совпадать, и магическое печенье подойдет.


> Другое дело, что толку-то?  Одних Иксов далеко не всякому гую
> достаточно.  Доступа к отрисовке на GPU Иксы же сами по себе не дают.
> 
Вот-вот
 
> Если ее надо, то придется проламывать стенку контейнера.  На примере
> LXC (строчки из configʼа):
> 
> 	lxc.mount.entry = /tmp/.X11-unix tmp/.X11-unix none
> bind,optional,create=dir,ro lxc.cgroup.devices.allow = c 226:* rwm
> 	lxc.mount.entry = /dev/dri dev/dri none
> bind,optional,create=dir lxc.cgroup.devices.allow = c 116:* rwm
> 	lxc.mount.entry = /dev/snd dev/snd none
> bind,optional,create=dir
> 
> Первая строчка заменяет сетевую прозрачность Иксов, четвертая-пятая —
> Пульсы, ну а вторая-третья — это про тот самый доступ к графике.  226
> и 116 — это мажорные номера устройств, см. ‘$ ls -l /dev/dri/’ в
> колонке размера.
> 
> Авторизация на Икс-сервере будет по UIDʼу, так что если не совпадают,

А вот не стоит делать так, чтобы не совпадали. Есть куча разных причин
по которым лучше uid-ы синхронизировать, и это отнюдь не толко доступ к
X-ам. Это еще по крайней мере кардинально упрощает обмен файлами с
контейнером. 
А то опять окажется что ssh проще.

-- 


Reply to: