The repository contains a collection of Docker images with headless VNC environments.
Each Docker image is installed with the following components:
- Desktop environment Xfce4 or IceWM
- VNC-Server (default VNC port
5901
) - noVNC - HTML5 VNC client (default http port
6901
) - Browsers:
- Mozilla Firefox
- Chromium
-
consol/centos-xfce-vnc
: Centos7 withXfce4
UI session -
consol/ubuntu-xfce-vnc
: Ubuntu withXfce4
UI session -
consol/centos-icewm-vnc
: Centos7 withIceWM
UI session -
consol/ubuntu-icewm-vnc
: Ubuntu withIceWM
UI session
It's also possible to run the images in container orchestration platforms like Kubernetes or OpenShift. For more information how to deploy containers in the cluster, take a look at OpenShift usage of "headless" VNC Docker images
See the changelog.md.
The usage is for all provide images similar, for instance see following the usage of the consol/centos-xfce-vnc
image:
Run command with mapping to local port 5901
(vnc protocol) and 6901
(vnc web access):
docker run -d -p 5901:5901 -p 6901:6901 consol/centos-xfce-vnc
Change the default user and group within a container to your own with adding --user $(id -u):$(id -g)
:
docker run -d -p 5901:5901 -p 6901:6901 --user $(id -u):$(id -g) consol/centos-xfce-vnc
If you want to get into the container use interactive mode -it
and bash
docker run -it -p 5901:5901 -p 6901:6901 consol/centos-xfce-vnc bash
Build an image from scratch:
docker build -t consol/centos-xfce-vnc centos-xfce-vnc
=> connect via VNC viewer localhost:5901
, default password: vncpassword
=> connect via noVNC HTML5 client: http://localhost:6901/?password=vncpassword
Since 1.1.0
all images run as non-root user per default, so that means, if you want to extend the image and install software, you have to switch in the Dockerfile
back to the root
user:
## Custom Dockerfile
FROM consol/centos-xfce-vnc:1.1.0
MAINTAINER Tobias Schneck "tobias.schneck@consol.de"
ENV REFRESHED_AT 2017-04-10
## Install a gedit
USER 0
RUN yum install -y gedit \
&& yum clean all
## switch back to default user
USER 1984
Per default, since version 1.1.0
all container processes will executed with user id 1984
. You can change the user id like follow:
Add the --user
flag to your docker run command:
docker run -it --user 0 -p 6911:6901 consol/centos-xfce-vnc
Add the --user
flag to your docker run command:
docker run -it -p 6911:6901 --user $(id -u):$(id -g) consol/centos-xfce-vnc
The following VNC environment variables can be overwritten at the docker run
phase to customize your desktop environment inside the container:
VNC_COL_DEPTH
, default:24
VNC_RESOLUTION
, default:1280x1024
VNC_PW
, default:my-pw
Simply overwrite the value of the environment variable VNC_PW
. For example in
the docker run command:
docker run -it -p 5901:5901 -p 6901:6901 -e VNC_PW=my-pw consol/centos-xfce-vnc
Simply overwrite the value of the environment variable VNC_RESOLUTION
. For example in
the docker run command:
docker run -it -p 5901:5901 -p 6901:6901 -e VNC_RESOLUTION=800x600 consol/centos-xfce-vnc
Since version 1.2.0
it's possible to prevent unwanted control over VNC. Therefore you can set the environment variable VNC_VIEW_ONLY=true
. If set the docker startup script will create a random cryptic password for the control connection and use the value of VNC_PW
for the view only connection over the VNC connection.
docker run -it -p 5901:5901 -p 6901:6901 -e VNC_VIEW_ONLY=true consol/centos-xfce-vnc
5.1) Chromium crashes with high VNC_RESOLUTION (#53)
If you open some graphic/work intensive websites in the Docker container (especially with high resolutions e.g. 1920x1080
) it can happen that Chromium crashes without any specific reason. The problem there is the too small /dev/shm
size in the container. Currently there is no other way, as define this size on startup via --shm-size
option, see #53 - Solution:
docker run --shm-size=256m -it -p 6901:6901 -e VNC_RESOLUTION=1920x1080 consol/centos-xfce-vnc chromium-browser http://map.norsecorp.com/
Thx @raghavkarol for the hint!
For questions, professional support or maybe some hints, feel free to contact us via testautomatisierung@consol.de or open an issue.
The guys behind:
ConSol Software GmbH
Franziskanerstr. 38, D-81669 München
Tel. +49-89-45841-100, Fax +49-89-45841-111
Homepage: http://www.consol.de E-Mail: info@consol.de