Skip to main content Why Proxmox and VMs over Portainer and Docker containers? : r/homelab
r/homelab icon
Go to homelab

Why Proxmox and VMs over Portainer and Docker containers?

Help

I have a software dev background, been programming since I was 12 or so, but have always loved the DevOps side of things too. So now that I am building a new house, I am building a home network and A/V system using Control4, among other things.

One thing I want to do is build my own server that will be installed in my rack. I see so many people recommending to install Proxmox and use VMs for their applications. I come from the business world where we use K8s to deploy services using Docker containers. I get the difference: home vs business enterprise.

But why not use Portainer and Docker containers for your apps?

Why Proxmox and heavy VMs to install your Plex, HomeAssistant, Grafana, TrueNAS, etc apps?

Simplify Your VM setup inside Visual Studio Code! Tired of juggling VM tools? Manage virtual machines right within VS Code and cut down on distractions.
Thumbnail image: Simplify Your VM setup inside Visual Studio Code! Tired of juggling VM tools? Manage virtual machines right within VS Code and cut down on distractions.
Sort by:
Best
Open comment sort options

Simply put: there is stuff that's not yet containerized which I'd still like to run, so I use proxmox. Or there's stuff that can be run on docker but it's more work - home assistant for example. Yes it works with docker, but it works better (imo) in a VM or bare metal for that matter.

Nothing wrong with either way, but personally I prefer the simplicity of proxmox and being able to run a VM, LXC and docker (in either of those) on the same host without much issues.

It's more down to personal preference than being a home vs. Enterprise thing.

More replies

Depends. If you're always "rolling your own" with regards to software, then there's probably not much difference.

If you're leaning on the support of an OS with regards to full package management (mainly talking Linux since Windows really doesn't have this concept), then you get a more "managed" platform from the OS, which could save some effort. Not all distros are equal in that regard though. Some distros have a quasi-supported "store"... which means it's highly variable with regards to patching. Others, patch security holes fairly quickly, backporting changes into the versions they manage (think RHEL like distros or SUSE/openSUSE).

If you're used to being the "OS manager" (so to speak) for everything, every part, every piece, every dependency, every config incompatibility... again, there won't be much difference. Except if different OS's is a goal, in which case your only choice may be VMs. Having a fully supported and managed OS and application platform where you're never really leveraging any of that, well, it doesn't really give you the benefits of doing things that way.

Since you're already used to the complexity of managing "all" coming from a k8s cloud world, you probably don't need to see the other side. But I wouldn't call it "home vs business". Both models can be used for either.

You can do both. Even better If you run docker on a proxmox VM since you can backup the whole thing and migrate it to another node with very little effort.

Proxmox does containers and VMs. VMs offer greater security and isolation, and some things just lend themselves to VMs. I use both - I use proxmox’s VMs to isolate security domains then containers within them for running stuff. I use docker within the VMs for simplicity instead of Proxmox’s own container support.

VMs is better if you wanna run a bunch of different OS and want to isolate resources given to the VMs. Containers are better for fast deployment. Each approach serves its purpose. In any case, VMs does not eliminate Containers and vise versa. If you are running a hypervisor, install a single VM for your containers with Portainer and have the possibility to deploy a VM on demand.

No problem with using Portainer and Docker but as already well said, not all apps can be containerized. Hence, you might want to run Proxmox with LXC and VMs in parallel just to have more flexibility. Sometimes, you're building a cluster of several servers and you want your apps to migrate or failover between the servers so you need VMs for that.

Our platform is customizable for technical traders and fundamental traders, including all the indicators in between.
Thumbnail image: Our platform is customizable for technical traders and fundamental traders, including all the indicators in between.
Edited

You can use containers on proxmox even from web gui.

Proxmox is a lightweight hypervisor for vms but at it's core it's just debian based linux distro you can do with it whatever a linux box can do. You can install portainer and manage your containers that way.

Personally I went with proxmox because it is an easy, preconfigured base layer on which i can run whatever. Though I use containers wherever i can due to having only 4c8t haswell xeon.

Also Truenas is freebsd based so you can't put it in a container like you can with homeassistant or plex, and I am not aware of other one stop NAS solutions that work as container (if you know any i am looking forward to recomendations).

More replies

Thanks for the responses, you guys have sold me on Proxmox.

Off topic: It doesn't appear that Proxmox has high CPU needs besides extended memory and virtualization support. Would a 12th or 13th gen i7 with 10 cores be good enough, or should I go for something more server-esque, like an Epyc CPU? Anything under $800 to $900.

u/cjcox4 u/hannsr u/imaginary_owlet

I've run proxmox on dual core Celerons. A friend runs proxmox on an HP thin client with an AMD GX-420 CPU and 8GB RAM. It has barely any overhead, so a 12th/13th gen i7 will be plenty.

Of course it always depends on what you are planning to run. I mostly ran out of RAM before I ran out of compute.

More replies
More replies

The simple answer, not everything runs easily in docker and I need VMs or Containers for that.