I've been using Docker for about three years now and have set up a personal homelab with around 60 containers, with about a third of them active at any one time. Currently, my applications run on a bare metal server that operates 24/7, mainly dedicated to managing these containers. My server isn't super powerful; it features an AMD Ryzen 5 4600G and 32GB of RAM, and I run Linux Mint instead of Ubuntu Server since I prefer its GUI for managing my backup strategies.
I also dabble with Proxmox and PBS using two smaller, older PCs. My main question is whether it would be wise to install Proxmox on my main server and run a single Ubuntu Server VM for all my Docker containers, alongside some other minor tasks. This shift could simplify my backup procedures significantly, utilizing PBS to back up both the OS and my data, which is the primary concern I have right now. However, I'm worried about the performance impact of running Docker inside a VM on Proxmox compared to my current bare metal setup. Since switching setups is a considerable effort, I'm looking for advice on this.
3 Answers
It ultimately depends on your requirements. I've had great results running containers on bare metal, but if you're looking to isolate services or need to deal with special configurations, VMs would make sense. Just remember, Proxmox functions as a resource manager, so dedicated CPU cores and adequate RAM will be essential to benefit from this setup. Your current hardware might hold up, but you'll want to keep resource allocation in mind!
Docker should work fine even if it’s running inside a VM. The virtualization layer doesn’t really interfere with Docker itself. But keep in mind, Proxmox doesn’t officially recommend running Docker within an LXC container, which could be relevant if you consider that route. If you plan on leveraging Proxmox for other VMs and features, go for it; just weigh your needs carefully!
If those minor tasks aren’t VM-based, I'd suggest sticking with your bare metal Linux for now. And regarding performance, it's important to note that hypervisors usually don't slow things down significantly because they leverage hardware for the heavy lifting.
It’s actually more complicated than that! Performance can really vary based on what you’re running—particularly network, storage, and memory management can take hits. Typically, on one server with direct storage access and without anything fancy, the performance drop is minimal, though.