docker-ubuntu-vnc-desktop
docker-ubuntu-vnc-desktop is a Docker image to provide web VNC interface to access Ubuntu LXDE/LxQT desktop environment.
Quick Start
Run the docker container and access with port 6080
Browse http://127.0.0.1:6080/
Ubuntu Flavors
Choose your favorite Ubuntu version with tags
focal: Ubuntu 20.04 (latest)
focal-lxqt: Ubuntu 20.04 LXQt
bionic: Ubuntu 18.04
bionic-lxqt: Ubuntu 18.04 LXQt
xenial: Ubuntu 16.04 (deprecated)
trusty: Ubuntu 14.04 (deprecated)
VNC Viewer
Forward VNC service port 5900 to host by
Now, open the vnc viewer and connect to port 5900. If you would like to protect vnc service by password, set environment variable VNC_PASSWORD
, for example
A prompt will ask password either in the browser or vnc viewer.
HTTP Base Authentication
This image provides base access authentication of HTTP via HTTP_PASSWORD
SSL
To connect with SSL, generate self signed SSL certificate first if you don't have it
Specify SSL port by SSL_PORT
, certificate path to /etc/nginx/ssl
, and forward it to 6081
Screen Resolution
The Resolution of virtual desktop adapts browser window size when first connecting the server. You may choose a fixed resolution by passing RESOLUTION
environment variable, for example
Default Desktop User
The default user is root
. You may change the user and password respectively by USER
and PASSWORD
environment variable, for example,
Deploy to a subdirectory (relative url root)
You may deploy this application to a subdirectory, for example /some-prefix/
. You then can access application by http://127.0.0.1:6080/some-prefix/
. This can be specified using the RELATIVE_URL_ROOT
configuration option like this
NOTE: this variable should not have any leading and trailing splash (/)
Sound (Preview version and Linux only)
It only works in Linux.
First of all, insert kernel module snd-aloop
and specify 2
as the index of sound loop device
Start the container
where --device /dev/snd -e ALSADEV=hw:2,0
means to grant sound device to container and set basic ASLA config to use card 2.
Launch a browser with URL http://127.0.0.1:6080/#/?video, where video
means to start with video mode. Now you can start Chromium in start menu (Internet -> Chromium Web Browser Sound) and try to play some video.
Following is the screen capture of these operations. Turn on your sound at the end of video!
Generate Dockerfile from jinja template
WARNING: Deprecated
Dockerfile and configuration can be generated by template.
arch: one of
amd64
orarmhf
flavor: refer to file in flavor/
flavor
.ymlimage: base image
desktop: desktop environment which is set in flavor
addon_package: Debian package to be installed which is set in flavor
Dockerfile and configuration are re-generate if they do not exist. Or you may force to re-generate by removing them with the command make clean
.
Troubleshooting and FAQ
boot2docker connection issue, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/2
Multi-language supports, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/80
Autostart, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/85#issuecomment-466778407
x11vnc arguments(multiptr), https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/101
firefox/chrome crash (/dev/shm), https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/112
resize display size without destroying container, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/115#issuecomment-522426037
License
See the LICENSE file for details.