Stanislav Vlasov <[email protected]> wrote: > Честно говоря, не в курсе, можно ли в контейнерах штатным образом запускать > гуёвый софт с отображением его окон на локальных иксах без всяких ssh -X в > контейнер
Да, естественно, ибо с каких это пор Иксам стали требоваться всякие костыли
типа ssh для отрисовки окон на другой машине?
> простым конфигурированием контейнера.
Скорее уж хоста. А конкретно:
1. Включить ‘-listen tcp’ у Икс-сервера. Как — см. в документации экранного
диспетчера, который его собственно по-умолчанию и отключает.
2. разрешить к нужной инстанции доступ для нужного контейнера:
$ xhost +inet:192.168.122.11
$ xhost +inet6:fd34:fe56:7891:2f3a::11
Единственное, я как-то так и не понял, работает ли это с link-local адресами,
которые fe80::/10. Кто понял, подскажите.
Короче говоря, от того, что у вас за система контейнеризации, все это не
зависит никак, внутри только ‘DISPLAY=_gateway:0’ (ну или что надо)
экспортировать.
Другое дело, что толку-то? Одних Иксов далеко не всякому гую достаточно.
Доступа к отрисовке на 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ʼу имя на хосте,
чтобы мочь приказать:
$ xhost +si:localuser:stanislav
Кто знает, подскажите.
signature.asc
Description: PGP signature

