Docker container images with "headless" VNC session
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
Current provided OS & UI sessions:
-
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
OpenShift / Kubernetes
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
Latest Changes
See the changelog.md.
Usage
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
Hints
1) Extend a Image with your own software
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
2) Change User of running Sakuli Container
Per default, since version 1.1.0
all container processes will executed with user id 1984
. You can change the user id like follow:
0
)
2.1) Using root (user id Add the --user
flag to your docker run command:
docker run -it --user 0 -p 6911:6901 consol/centos-xfce-vnc
2.2) Using user and group id of host system
Add the --user
flag to your docker run command:
docker run -it -p 6911:6901 --user $(id -u):$(id -g) consol/centos-xfce-vnc
3) Override VNC environment variables
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
3.1) Example: Override the VNC password
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
3.2) Example: Override the VNC resolution
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
4) View only 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
Contact
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