Public | Automated Build

Last pushed: a day ago
Short Description
Ubuntu XRDP and MATE virtual desktop. XORG and XVNC. Simple persistent user/data management.
Full Description

Ubuntu 16.04 with XRDP and MATE. Version 2

Use to send feedback, issues, comments and general chat.

rattydave/docker-ubuntu-xrdp-mate-custom:latest points to v2

A virtual desktop docker conainer with persistant user information.

This image is automatically rebuilt when updates are realeased for Ubuntu.


  • Ubuntu 16.04
  • Mate Desktop (ubuntu repo)
  • XRDP built from source (devel branch)
  • XRPDXORG built from source (devel branch)
  • tightvncserver (ubuntu repo)
  • Epiphany web browser (ubuntu repo)
  • openssh-server (always useful)
  • Custom xrdp.ini script
  • UK Keyboard layout
  • UK Timezone

Reasons for choosing the souce of XRDP and XRDPXORG over the repo versions is that the display can resized. Also xorg is far more effecient at memory and processing. (At present. I have experimented with ubuntu 17.xx and this is not the case anymore)

docker run --name RattyDAVEv2 \
           -p 3389:3389 \
           -p 2222:22 \
           -v %LOCAL_PATH_TO_CREATEUSERS.TXT_FILE%:/root/createusers.txt \
           -v %LOCAL_PATH_TO_HOME_DIRECTORY%:/home \
           -dit --restart unless-stopped \
  • Replace %LOCAL_PATH_TO_CREATEUSERS.TXT_FILE% with the local filename of the createusers file.
  • Replace %LOCAL_PATH_TO_HOME_DIRECTORY% with the local directory of the /home directorys.
  • You do not need to publish port 22 only use if needed.

This file contains 3 fields (username:password:is_sudo). Where username is the login id. Password is the password. is_sudo does the user have sudo access(only Y is recognised).



In this example 4 users will be created and only daisy will have sudo rights.

At every reboot it will check this file and ADD any new users.

Example of a working command line.

docker run -d --name RattyDAVEv2 \
           -p 3389:3389 \
           -v /root/createusers.txt:/root/createusers.txt \
           -v /root/home:/home \
           -dit --restart unless-stopped \


I doubt most people would want this version but I have made available. This release contains development tools.

  • x3270
  • filezilla
  • netbeans
  • dia
  • geany
  • putty
  • mysql-workbench
  • remmina
  • openjdk-9-jre
  • libreoffice
  • pasmo
  • BlueJ
  • Rocket2014 (A RC2014 Z80 emulator - - ROMs located in /opt/rocket2014/examples)

Screen sharing:
On the master user connect using the Xvnc option and login as normal.
On the desktop there is a file called session_info.txt this will contain the display number and password.

       On the other clients connect using the Reconnect option.
       Using the information in the session_info file:
            PORT = 5900 + display number. (So if display is 11 then the port would be 5911)
            USERNAME = Username of the master account.
            PASSWORD = the password in the Session_info.txt file. (e.g. 1a2b3c4d)

Example of a working command line.

docker run -d --name RattyDAVEv2-tools \
           -p 3389:3389 -p 2222:22 \
           -v /root/createusers.txt:/root/createusers.txt \
           -v /root/home:/home \
           -dit --restart unless-stopped \

Previous Versions.


Build contains.

  • ubuntu 16.04
  • mate desktop
  • xrdp
  • firefox
  • remmina
  • UK Keyboard layout
  • UK Timezone
docker run -d --name Desktop -p 3389:3389 rattydave/docker-ubuntu-xrdp-mate-custom:v1


As core.

  • Added desktop user as a local user.
  • username desktop
  • password desktop
  • Also has sudo rights.

Started implmentation for external users.

Local users only.

docker run -d --name Desktop -p 3389:3389 rattydave/docker-ubuntu-xrdp-mate-custom:v1-users

External User support.
Change %HOST_VOLUME_FOR_HOME% to the external volume.

docker run -d --name Desktop -v %HOST_VOLUME_FOR_HOME%:/home_ext -p 3389:3389 rattydave/docker-ubuntu-xrdp-mate-custom:v1-users
Docker Pull Command