¿Cómo puedo ejecutar una aplicación gráfica en un contenedor en Wayland?

Cuando usaba una computadora de escritorio X11, podía ejecutar aplicaciones gráficas en contenedores acoplables compartiendo la variable $DISPLAY y el directory /tmp/X11-unix . Por ejemplo:

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

Ahora, estoy en Fedora 25 ejecutando Wayland, por lo que no hay infraestructura X11 para compartir con el contenedor. ¿Cómo puedo lanzar una aplicación gráfica en el contenedor y hacer que aparezca en mi escritorio? ¿Hay alguna forma de vincular a XWayland?

Related of "¿Cómo puedo ejecutar una aplicación gráfica en un contenedor en Wayland?"

Como dices que estás ejecutando Fedora 25 con Wayland, supongo que estás usando el escritorio de Gnome-Wayland. Gnome-Wayland ejecuta Xwayland para admitir aplicaciones X. Puede compartir el acceso a Xwayland como lo hizo anteriormente con Xorg. Su command de ejemplo pierde XAUTHORITY, y usted no menciona xhost. Necesitas una de estas forms para permitir que las aplicaciones X en la window acoplable accedan a Xwayland (o cualquier X). Como todo esto no está relacionado con Wayland, me refiero a ¿Cómo se pueden ejecutar las aplicaciones GUI en el contenedor docker? sobre cómo ejecutar aplicaciones X en el acoplador. En resumen, dos soluciones con xhost:

  1. Permita que su usuario local acceda a través de xhost: xhost +SI:localuser:$(id -un) y cree un usuario similar con la opción de ejecución del --user=$(id -u):$(id -g) : --user=$(id -u):$(id -g)
  2. Desalentado: Permita el acceso raíz a X con xhost +SI:localuser:root

Para ejecutar las aplicaciones de Wayland en la window acoplable sin X, necesita un compositor de paths en ejecución como Gnome-Wayland o Weston. Tienes que compartir el socket de Wayland. Lo encuentras en XDG_RUNTIME_DIR y su nombre se almacena en WAYLAND_DISPLAY. Ejemplo:

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

Las aplicaciones QT5 también necesitan -e QT_QPA_PLATFORM=wayland y deben iniciarse con imageame dbus-launch waylandapplication

Una solución todo en uno es x11docker para aplicaciones X y Wayland en docker . También se preocupa por preservar el aislamiento del contenedor (que se pierde si simplemente se comparte la pantalla del host X como en su ejemplo).