Sign inSign up

dewgenenny/docker-headless-vnc-container

By dewgenenny

•Updated almost 9 years ago

Headless ubuntu based docker container, utilising novnc. Has Browsers & ssh client

Image
0

10K+

dewgenenny/docker-headless-vnc-container repository overview

⁠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

Docker VNC Desktop access via HTML page

⁠Current provided OS & UI sessions:

  • consol/centos-xfce-vnc: Centos7 with Xfce4 UI session

  • consol/ubuntu-xfce-vnc: Ubuntu with Xfce4 UI session

  • consol/centos-icewm-vnc: Centos7 with IceWM UI session

  • consol/ubuntu-icewm-vnc: Ubuntu with IceWM 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 "[email protected]"
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:

⁠2.1) Using root (user id 0)

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 [email protected]⁠ 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: [email protected]⁠

Tag summary

Content type

Image

Digest

Size

452 MB

Last updated

almost 9 years ago

docker pull dewgenenny/docker-headless-vnc-container