/docker-ubuntu-vnc-desktop

Docker image to provide HTML5 VNC interface to access Ubuntu 16.04 LXDE desktop environment.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

docker-ubuntu-vnc-desktop

Docker image to provide HTML5 VNC interface to access Ubuntu 16.04 LXDE desktop environment with added netboot.xyz iso access in directory /iso/netboot.xyz.iso.

Quick Start

Run the docker container and access with port 6080

docker run -p 6080:80 centminmod/docker-ubuntu-vnc-desktop

Browse http://127.0.0.1:6080/

VNC Viewer

Forward VNC service port 5900 to host by

docker run -it --rm -p 6080:80 -p 5900:5900 centminmod/docker-ubuntu-vnc-desktop

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

docker run -it --rm -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword centminmod/docker-ubuntu-vnc-desktop

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

docker run -p 6080:80 -e HTTP_PASSWORD=mypassword centminmod/docker-ubuntu-vnc-desktop

SSL

To connect with SSL, generate self signed SSL certificate first if you don't have it

mkdir -p ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/nginx.key -out ssl/nginx.crt

Specify SSL port by SSL_PORT, certificate path to /etc/nginx/ssl, and forward it to 6081

docker run -p 6081:443 -e SSL_PORT=443 -v ${PWD}/ssl:/etc/nginx/ssl centminmod/docker-ubuntu-vnc-desktop

Screen Resolution

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

docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword -e RESOLUTION=1920x1080 centminmod/docker-ubuntu-vnc-desktop

Default Desktop User

The default user is root. You may change the user and password respectively by USER and PASSWORD environment variable, for example,

docker run -p 6080:80 -e USER=doro -e PASSWORD=password centminmod/docker-ubuntu-vnc-desktop

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

sudo modprobe snd-aloop index=2

Start the container

docker run -it --rm -p 6080:80 --device /dev/snd -e ALSADEV=hw:2,0 centminmod/docker-ubuntu-vnc-desktop

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!

demo video

Dell iDRAC 6 IPMI Java Console Usage

Go into IcedTea web panel and lower the Extended applet security level for java applets

Launch Firefox browser and go to your IPMI web login and add a permenant exception for HTTPS based IPMI login

Launch console and open with IceTea Java Web Start + check trust publisher and content.

Answer yes to run java console applet

Troubleshooting

  1. boot2docker connection issue, fcwu#2

License

See the LICENSE file for details.