Как запустить графическое приложение в контейнере под Wayland?

Когда я использовал рабочий стол X11, я мог запускать графические приложения в контейнерах докеров, разделив переменную $DISPLAY и каталог /tmp/X11-unix . Например:

 docker run -ti -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix some:ubuntu xclock 

Теперь я на Fedora 25, на котором работает Wayland, поэтому нет инфраструктуры X11 для обмена с контейнером. Как запустить графическое приложение в контейнере и показать его на рабочем столе? Есть ли способ связать в XWayland?

One Solution collect form web for “Как запустить графическое приложение в контейнере под Wayland?”

Как вы говорите, вы используете Fedora 25 с Wayland, я предполагаю, что вы используете рабочий стол Gnome-Wayland. Gnome-Wayland запускает Xwayland для поддержки приложений X. Вы можете предоставить доступ к Xwayland, как и раньше, с Xorg. Ваша команда example пропускает XAUTHORITY, и вы не упоминаете xhost. Вам нужен один из этих способов, позволяющий X-приложениям в докере получить доступ к Xwayland (или любому X). Поскольку все это не связано с Wayland, я имею в виду, как вы можете запускать приложения GUI в контейнере докеров? о том, как запускать X-приложения в докере. Короче говоря, два решения с xhost:

  1. Разрешить локальному пользователю доступ через xhost: xhost +SI:localuser:$(id -un) и создать аналогичного пользователя с опцией запуска docker: --user=$(id -u):$(id -g)
  2. Отклонено: разрешить root доступ к X с помощью xhost +SI:localuser:root

Чтобы запускать приложения Wayland в докере без X, вам нужен бегущий компоновщик wayland, такой как Gnome-Wayland или Weston. Вы должны поделиться гнездом Wayland. Вы находите его в XDG_RUNTIME_DIR, и его имя хранится в WAYLAND_DISPLAY. Пример:

 docker run -e XDG_RUNTIME_DIR=/tmp \ -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \ -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \ imagename waylandapplication 

Приложения QT5 также нуждаются в -e QT_QPA_PLATFORM=wayland и должны быть запущены с помощью imagename dbus-launch waylandapplication

Решение «все-в-одном» – это x11docker для приложений X и Wayland в докере . Он также заботится о сохранении изоляции контейнера (который теряется, если вы просто обмениваетесь дисплеем хоста X, как в вашем примере).

  • Среда сеанса X11
  • Что происходит в моем ноутбуке?
  • i3 - Как изменить ключ мод на AltGr и отключить его для «нормального» ввода
  • Как навсегда отключить ключ Insert в Linux?
  • Установить Gvim после vim
  • Как настроить разные сеансы для разных пользователей?
  • Ввод пунктуации добавляет акцент на предыдущее письмо после того, как мой ноутбук состыкован в течение нескольких минут
  • Как скопировать Alt + H в левую клавишу со стрелкой?
  • Карта охватывает esc для RHEL 5?
  • что означает управление доступом Xserver
  • конвертировать дисплей в монохромный
  • Interesting Posts

    ral0 неисправен

    Как проверить, какая строка скрипта bash выполняется

    Будет ли yum удалять mysql-сервер удалять мои базы данных?

    plesk mysql сообщает о другой версии в cli к запросу версии

    Печатать текст между (и включая) двумя разделителями по строке

    Как подавить эхо функции проверки ошибок

    Не удалось получить доступ к Интернету, если включен беспроводной доступ

    Возможные объяснения, почему мой сервер стал неактуальным

    Структура на диске в начале RAID 1 (сначала 128 MiB)

    Ноутбук спит сам по себе – в журналах «Сон запросил» – запросил что?

    Почему моя служба Before = sleep.target запускается * после возобновления *?

    В чем разница -a и -e в условных выражениях bash?

    Как использовать inotifywait для просмотра каталога для создания файлов определенного расширения

    Невозможно определить, где изменяется umask

    rpm: что определяет, обновляет ли пакет предыдущий или добавляется дополнительно

    Linux и Unix - лучшая ОС в мире.