Как запустить графическое приложение в контейнере под 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, как в вашем примере).

  • urxvt-play mp3 вместо звукового сигнала
  • Управлять X-буфером обмена из командной строки
  • Cyborg RAT-мышь с xserver
  • Как сделать окно отображения Openbox только в определенной области
  • xdotool случайная / более естественная задержка?
  • Клавиши плюс и минус имена в ~ / .XCompose
  • Как использовать / etc / fbtab в OpenBSD для обеспечения безопасности X11?
  • Какая видеокарта поддерживает четыре монитора без Xinerama?
  • Изменение поведения надстрочного ключа в текстовом редакторе (элементарный os)
  • Как я могу исправить мои искаженные искажения X11?
  • Xorg: выход источника поставщика в xorg.conf
  • Linux и Unix - лучшая ОС в мире.