I want to self host some services offered by HomelabOS in my personal computer. What are the pros and cons of doing it on a virtual machine vs doing it directly on my computer with the dockers that HomelabOS installs? There are some services that I would like to make public like Funkwhale.
disk space, RAM, startup speed: containers have an advantage because they have negligible overhead; VMs require more disk and RAM because they run another whole copy of Linux and typically lots of userland processes before starting your application.
security: VMs aren’t perfect but they have a reduced attack surface vs containers. Here is the most recent Linux container escape bug (as far as I know) from a month ago.
if you want to run multiple services on one machine and you’re worried that one service might get compromised and you want to ensure that it doesn’t compromise the others, then maybe you want to run VMs. however, there are sometimes VM escape bugs too, so, if you want to be really careful you should actually run the services on different physical machines.
VMs also have the advantage of letting you run different versions of Linux, or run other operating systems altogether, but i don’t think that is relevant to your situation.