Cuando utilicé un escritorio X11, pude ejecutar aplicaciones gráficas en contenedores acoplables compartiendo la $DISPLAYvariable y el /tmp/X11-unixdirectorio. Por ejemplo:
docker run -ti -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix some:ubuntu xclock
Ahora, estoy en Fedora 25 con Wayland, así que no hay infraestructura X11 para compartir con el contenedor. ¿Cómo puedo iniciar una aplicación gráfica en el contenedor y hacer que aparezca en mi escritorio? ¿Hay alguna forma de empatar en XWayland?

/run/user/1000/wayland-0mi escritorio personal.Respuestas:
Como usted dice que está ejecutando Fedora 25 con Wayland, supongo que está utilizando el escritorio Gnome-Wayland.
Gnome-Wayland ejecuta Xwayland para admitir aplicaciones X. Puede compartir el acceso a Xwayland como lo hizo antes con Xorg.
Su comando de ejemplo falla
XAUTHORITYy no lo mencionaxhost. Necesita una de estas formas para permitir que las aplicaciones X en Docker accedan a Xwayland (o cualquier X). Como todo esto no está relacionado con Wayland, me refiero a ¿Cómo puede ejecutar aplicaciones GUI en el contenedor docker? sobre cómo ejecutar aplicaciones X en Docker.En resumen, dos soluciones con xhost:
xhost +SI:localuser:$(id -un)y cree un usuario similar con la opción de ejecución de Docker:--user=$(id -u):$(id -g)xhost +SI:localuser:rootProblemas relacionados : X normalmente usa memoria compartida (extensión X
MIT-SHM). Los contenedores Docker están aislados y no pueden acceder a la memoria compartida. Eso puede conducir a fallas de renderizado y fallas de acceso a RAM. Puede evitar eso con la opción de ejecución de Docker--ipc=host. Eso afecta el aislamiento del contenedor ya que deshabilita el espacio de nombres IPC. Comparar: https://github.com/jessfraz/dockerfiles/issues/359Para ejecutar aplicaciones Wayland en Docker sin X, necesita un compositor de wayland en ejecución como Gnome-Wayland o Weston. Tienes que compartir el zócalo Wayland. Lo encuentras en
XDG_RUNTIME_DIRy su nombre se almacena enWAYLAND_DISPLAY. ComoXDG_RUNTIME_DIRsolo permite el acceso a su propietario, necesita el mismo usuario en el contenedor que en el host. Ejemplo:Las aplicaciones QT5 también necesitan
-e QT_QPA_PLATFORM=waylandy deben iniciarse conimagename dbus-launch waylandapplicationx11docker para aplicaciones X y Wayland en docker es una solución todo en uno. También se preocupa por preservar el aislamiento del contenedor (que se pierde si simplemente comparte la pantalla X del host como en su ejemplo).
fuente
x11docker --weston-xwayland imagename applicationXwayland :20 & sleep 3 && docker run -e DISPLAY=:20 -v /tmp/.X11-unix:/tmp/.X11-unix imagename application. Xwayland cubrirá toda la pantalla; puedes moverlo con <Super> <LeftMouseButton>. Con x11docker:x11docker --xwayland imagename application.xpratransfiere a GTK3 + python3 , proporcionará más posibilidades con ventanas integradas . Las configuraciones invisibles son posibles con elXvfbcontenedor. Para una discusión detallada, puede abrir un ticket de problema en github .Recomiendo Sommelier de Google. Le permite iniciar aplicaciones Wayland OR X11 y proporciona los sockets que esas aplicaciones están buscando para ingresarlas en el servidor de visualización actual. https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/sommelier/
Un procedimiento simple que debería funcionar en cualquier sistema, no solo Crouton / Crostini en ChromeOS.
https://github.com/dnschneid/crouton/wiki/Sommelier-(A-more-native-alternative-to-xiwi)
fuente