Full Desktop in Docker

manish srivastava - Jun 21 '20 - - Dev Community

If you don't know what is docker? First, read this article: Dockers for Extreme Beginners in Desi (layman ) language.. This article got 9k+ readings in the last 20 days and count increasing.

What we are building today?

We are building a fully functional desktop inside a docker container. The Ubuntu latest release Focal Fossa or Ubuntu:20.04 is used to build this container. Desktop Environment is Xfce with windows theme from b00merang Project and wallpapers from pixabay.

VNC & RDP are two technologies to connect to remote desktops. I used RDP and VNC is left for you to try :)

Screenshots:

Alt Text
Alt Text
Alt Text

And how the desktop looks in small screen mobile:
Alt Text

Why we are building?

(1)You can find a number of docker images with a "desktop environment"on google.But these images are custom build i.e leaving libre office suite etc to remain light in size.
(2) Being a docker image you can spin a desktop in a click.

Why Xfce Desktop Environment?

Xfce is lighter than mate and gnome. Being lighter, performance is better in the container.

How to create a desktop in a docker container?

(1) Pull Image and Run:manishfoodtechs/xfcefulldesktop_ubuntu20.4

docker run -it -p 9096:3389 -e 3389 --shm-size 2g manishfoodtechs/xfcefulldesktop_ubuntu20.4

In above command:

  • we are opening port of host 9096 to listen port of container 3389. You can use any port in place of 9096 but Port 3389 is a standard port of xrdp.
  • we are exposing container's 3389 port with -e 3389
  • shm-size 2g is given so that Firefox doesn't break.

Look at this terminal image :

Alt Text

(2) Service start xrdp:

/etc/init.d/xrdp restart

In above command:
-We are starting xrdp

then, ### visit : hostip:9096 in RDP client of your PC. More about RDP here

USER ID: root and Password: 123456 . Please don't forget to change password with command passwd root and add some more users.

(3) Troubleshoot:

  • wait on black / blue screen in 20-30 seconds desktop will get up.
  • If, rdp is not connecting, then get inside the container shell and run /etc/init.d/xrdp restart as you did in step (2).

IMPORTANT:
Docker is not meant for running complete desktops but running apps. The closet container like VM machine is LXD. If you had visited my above-said article (docker in desi language) you would be able to spin a desktop in lxd container.

More?

Try to pull the container with podman over gvisor.


I hope you people like the above article and learned something.

IMP REQUEST:
You are most welcome to join my team form for joining .
Also you are most welcome to join OPEN SOURCE INTELLIGENT SYSTEM (OSINT) if you can help in open source project regarding safeguarding humans from various diseases like CORONA outbreak
https://github.com/Manishfoodtechs/OSINTHRH/wiki

Contact email: Manishfoodtechs@gmail.com.

If you have any problem, our team is also engaged in professional consultancy and delivery.

image credit: manish srivastava
Further Read : x11docker and dx-11 https://dev.to/brickpop/my-dream-come-true-launching-gui-docker-sessions-with-dx11-in-seconds-1a53
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player