• This repository has been archived on 22/Oct/2023
  • Stars
    star
    179
  • Rank 214,039 (Top 5 %)
  • Language
    Shell
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple Xpra X11 bridge to enable GUI with any docker image

Pluggable X11 GUI for docker images

Run GUI applications in Docker with the same client(Xpra) on Windows, GNU/Linux, MacOS or web-browser over ssh or tcp.

(clickable!) img/demo.jpg

Try It!

docker run -d \
 --name x11-bridge \
 -e MODE="tcp" \
 -e XPRA_HTML="yes" \
 -e DISPLAY=:14 \
 -e XPRA_PASSWORD=111 \
 --net=host \
 jare/x11-bridge

docker run -d \
 --name emacs-1 \
 --volumes-from x11-bridge \
 -e DISPLAY=:14 \
 jare/emacs emacs

docker run -d \
 --name emacs-2 \
 --volumes-from x11-bridge \
 -e DISPLAY=:14 \
 jare/emacs emacs

Then visit http://localhost:10000/index.html?encoding=rgb32&password=111 See http://localhost:10000/connect.html for options

Or via ssh:

docker run -d \
 --name x11-bridge \
 -e MODE="ssh" \
 -v ~/.ssh/pub_rsa:/etc/pub-keys/me.pub \
 -e DISPLAY=:14 \
 --net=host \
 jare/x11-bridge

docker run -d \
 --name emacs-1 \
 --volumes-from x11-bridge \
 -e DISPLAY=:14 \
 jare/emacs emacs

docker run -d \
 --name emacs-2 \
 --volumes-from x11-bridge \
 -e DISPLAY=:14 \
 jare/emacs emacs

Then attach to the Xpra server via cmd tool or Xpra's GUI app: xpra attach --encoding=rgb --ssh="ssh -o StrictHostKeyChecking=no -p 22" ssh:xpra@localhost:14

  • Note -o StrictHostKeyChecking=no - it allows us to ignore server's identity instead adding it to known_hosts. If you want to rely on the identity you should use a privately built image.
  • All names of the pub keys should end with .pub i.e. /etc/pub-keys/<key_name>.pub
  • If Xpra lags, select Lowest Bandwidth when using Xpra app with a local Xpra host.
  • With Windows client you'll need Pageant you can convert your rsa keys to Pageant's format with PuTTYgen
  • GUI app in your image may requirelibGL.so.1 (provided by libgl1-mesa-glx on Ubuntu) and font
  • It is good idea to use ssl proxy or mount a certificate (see Xpra start-up message) if you want to use tcp or html mode beyond local network
  • You can modify the user
  • To use Xpra mmap(Linux): docker run ... -v /tmp/spacemacs-mmap/:/tmp/spacemacs-mmap/ ... jare/x11-bridge and attach with TMPDIR=/tmp/spacemacs-mmap/ xpra attach --mmap=yes --encoding=rgb --ssh="ssh -o StrictHostKeyChecking=no -p 22" ssh:xpra@localhost:14

Webcam and sound are currently disabled