Ubuntu RDP container
Ubuntu RDP container
https://hub.docker.com/r/rattydave/docker-ubuntu-xrdp-mate-custom/
Pulls
1M+
Use https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom/issues to send feedback, issues, comments and general chat.
Quick Start
Run the following to get started.
echo "user:pass:N" > CREATEUSERS.TXT
docker run --name RattyDAVE \
--privileged=true \
-p 3389:3389 \
-e TZ="Europe/London" \
-v ${PWD}/CREATEUSERS.TXT:/root/createusers.txt \
-dit --restart unless-stopped \
rattydave/docker-ubuntu-xrdp-mate-custom
Then on a windows machine type
mstsc
Then put in the IP address of the docker host.
Login using the username user
and the password pass
A virtual desktop docker container with persistent user information.
This image is automatically rebuilt when updates are released for Ubuntu.
Ubuntu 22.04 with XRDP and MATE. (latest)
Contents:
Ubuntu 22.04
Mate Desktop (ubuntu repo)
XRDP (ubuntu repo)
XRPDXORG (ubuntu repo)
tightvncserver (ubuntu repo)
Epiphany web browser (ubuntu repo)
Custom xrdp.ini script
Default UK Keyboard layout (Can be changed)
Default UK Timezone (Can be changed)
You are now able to set the time zone with the TZ variable
Ability to run a script on container startup. This is useful for installing packages that are needed.
Local Drive mapping (require elevated rights with this parameter
-privileged=true
)Clipboard Sharing (require elevated rights with this parameter
-privileged=true
)
docker run --name RattyDAVE \
--privileged=true \
-p 3389:3389 \
-e TZ="Europe/London" \
-v %LOCAL_PATH_TO_CREATEUSERS.TXT_FILE%:/root/createusers.txt \
-v %LOCAL_PATH_TO_STARTUP.SH_FILE%:/root/startup.sh \
-v %LOCAL_PATH_TO_HOME_DIRECTORY%:/home \
-dit --restart unless-stopped \
rattydave/docker-ubuntu-xrdp-mate-custom
Replace %LOCAL_PATH_TO_CREATEUSERS.TXT_FILE% with the local filename of the createusers file.
Replace %LOCAL_PATH_TO_STARTUP.SH_FILE% with the local filename of the startup.sh script. This is run after the user creation and before the service start.
Replace %LOCAL_PATH_TO_HOME_DIRECTORY% with the local directory of the /home directory.
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). It also needs a "newline" at the end of the line.
Example of a CREATEUSERS.TXT file
mickey:mouse:N
daisy:duke:Y
dog:flash:n
morty:rick:wubba
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 STARTUP.SH file to change locale.
apt-get update
apt-get -y install language-pack-de language-pack-gnome-de
locale-gen de_DE.UTF-8
update-locale LANG=de_DE.UTF-8
To Connect
Please note some clients need an extra parameter set glyph-cache. xfreerdp, remmina and others need this set.
Linux example of how to connect:
xfreerdp /size:1920x1140 /kbd:0x00000809 /v:%IP_ADDRESS% /gdi:hw /drive:home,$HOME +clipboard /sound:sys:alsa +glyph-cache
Windows example:
Open a command prompt and type
mstsc
Then put in the ip address of the docker host.
Auto Update
To automatically update I recommend using watchtower.
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
rattydave/docker-ubuntu-xrdp-mate-custom:20.04-tools
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-11-jre
libreoffice
pasmo
BlueJ
Rocket2014 (A RC2014 Z80 emulator - https://github.com/trcwm/rocket2014 - 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 --name RattyDAVE20.04-tools \
--privileged=true \
-p 3389:3389 \
-e TZ="Europe/London" \
-v %LOCAL_PATH_TO_CREATEUSERS.TXT_FILE%:/root/createusers.txt \
-v %LOCAL_PATH_TO_STARTUP.SH_FILE%:/root/startup.sh \
-v %LOCAL_PATH_TO_HOME_DIRECTORY%:/home \
-dit --restart unless-stopped \
rattydave/docker-ubuntu-xrdp-mate-custom:20.04-tools
Please note some clients need an extra parameter set glyph-cache. xfreerdp, remmina and others need this set.
Linux example of how to connect xfreerdp /v:xxx.xxx.xxx.xxx /drive:home,/home/xxxx +clipboard +glyph-cache
Last updated
Was this helpful?