/ubuntu-desktop-docker

Dockerized Ubuntu Desktop environment with RDP and SSH access used by TalTech IVAR Lab.

GNU General Public License v3.0GPL-3.0

Ubuntu Desktop Docker

Ubuntu version Ubuntu version GitHub Workflow Status Docker Image Size (latest by date)

Based on the linuxserver/rdesktop:ubuntu-mate image by linuxserver.io

Dockerized Ubuntu Desktop environment with RDP and SSH access used by TalTech IVAR Lab. Primarily intended as a base image for our ROS Desktop images.

Why and how

Learn why this project was created and how it is useful by reading our Motivation doc.

What's included

In addition to what is already in linuxserver/rdesktop:ubuntu-mate, our image applies the following modifications:

  • OpenSSH server
  • Command line packages:
  • GUI packages:
  • Custom xrdp login screen styling:
    • Darker colors to match the default desktop theme
    • Updated xrdp logo
  • Desktop look: desktop screenshot from ubuntu desktop docker

Usage

Quick start

Once you have installed Docker, to launch the container directly:

docker run -d \
  --name=ubuntu-desktop \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/Tallinn \
  -p 3390:3389 `# rdp` \
  -p 2222:22 `# ssh` \
  --shm-size="1gb" \
  --security-opt seccomp=unconfined \
  --restart unless-stopped \
  taltechivarlab/ubuntu-desktop:22.04

Once the container has started, you must ssh into it (default password is abc):

ssh abc@localhost -p 2222

...and change abc user's default password following the displayed instructions.

After that, you can use login abc and the newly set password to log in to the container using any remote desktop client.

💡 When inside the container, you can switch your default shell to Zsh by running the following command in the terminal:

sudo usermod --shell $(command -v zsh) abc

☝ You can stop and restart the created container from Docker without losing your data. It is equivalent to system shutdown from the containerized Ubuntu's point of view. However, keep in mind that deleting your container will destroy all the data and software contained inside.

Advanced usage

For more advanced use cases, such as opening additional ports and enabling hardware graphics acceleration, please refer to the Advanced Usage doc.

Building locally

If you want to build this image locally instead of pulling it from Dockerhub, clone this repository and run the build:

docker build --file Dockerfile_Jammy -t taltechivarlab/ubuntu-desktop:22.04 .

In case you want to build a multi-architecture image (e.g. to run it on a Raspberry Pi), you can build for multiple platforms using the Docker Buildx backend (by specifying them in the --platform flag):

docker buildx build --platform=linux/amd64,linux/arm64 --file Dockerfile_Jammy -t taltechivarlab/ubuntu-desktop:22.04 --output=oci .

Contributing

The project is in early stages of development, so we are not yet accepting contributions from outside our university organization.