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: