Step to step guide on installing docker compose and running it

Hi There
I am new to the Linux world, trying to determine the best way to run Plex, Emby and Tautillu on Ubuntu server. Some people are saying run Docker and use compose .

Welcome to the forum!

It depends on your setup. I personally recommend VMs, because they are the most documented. If you want lower power and you don’t mind getting your hands (really) dirty, then lxc (incus) or docker (or podman). The reason the VM would be the easiest is because you can just use the repositories and call it a day (some built-in, some provided by the developers, like plex).

You could run all of them in 1 box, avoiding VMs altogether, but I prefer some separation. Running on baremetal does help with performance. Containers do get close to baremetal performance (unlike VMs), but VMs can get direct hardware attached to them (passthrough / VFIO). Well, containers can too, but more difficult.


If I was to do categories:

  • easiest: baremetal with the repositories
  • easy: VMs (with repos)
  • medium: lxc / incus (with repos)
  • medium-hard: docker with docker-compose
  • hard: VMs with hardware passthrough (with repos)
  • even harder (but arguably better than docker in some sense): podman or kubernetes (probably k3s or microk8s) with their own compose or build files
  • hardest: containers with hardware passthrough (with their compose or other build files respectively)

The easiest way to install Docker on Linux is to use the get-docker helper script - this will also install docker compose.

Then run sudo usermod -aG docker $USER and log out/back in to set your normal user to run docker commands without sudo.

I have found that Docker will run fine in a single system container (eg, LXC, LXD or Incus) but my limited experiments with Swarm or k8s using multiple system containers haven’t been very successful but it’s a while since I’ve tried going down that road.