Coder Social home page Coder Social logo

haocen / docker-headless-vnc-container Goto Github PK

View Code? Open in Web Editor NEW

This project forked from consol/docker-headless-vnc-container

0.0 2.0 0.0 1.03 MB

Collection of Docker images with headless VNC environments

License: Apache License 2.0

Shell 100.00%

docker-headless-vnc-container's Introduction

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

5) Known Issues

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!

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]

docker-headless-vnc-container's People

Contributors

elgalu avatar haocen avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.