Yes, even though Docker has no devices, we can still fool it well enough by passing through our X server info as a bind mount and setting our DISPLAY environment variable.
Grant permission to docker to use the xhost/xserver
xhost +local:docker
non-network local connections being added to access control list
If you didn't do the above you will get an error like this when trying to launch a GUI app from Docker:
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
Here is an example of doing it to Debian 11:
The relevant portion is to add the bind mount "-v /tmp/.X11-unix/:/tmp/.X11-unix"
and set the display environment variable: "-e DISPLAY=$DISPLAY debian:11"
docker run -v /tmp/.X11-unix/:/tmp/.X11-unix -it -e DISPLAY=$DISPLAY debian:11
docker, gui, applicationsyes, devices, server, info, bind, mount, display, variable, xhost, xserver, connections, didn, app, unable, init, container, debian, relevant, portion, quot, tmp, unix,