Quick answer

Most people asking this end up running both, layered: Proxmox VE 9 on the metal as a Type-1 hypervisor carving hardware into VMs and LXC containers, with Docker inside a VM packaging and running the apps. Proxmox’s own documentation recommends that VM placement. Docker-in-LXC works with nesting=1 for trusted, internal services.

Type “proxmox vs docker” into any search engine and you’ll find a decade of forum threads arguing about the wrong question. Proxmox VE and Docker are not competitors. Proxmox VE 9 is a Type-1 hypervisor — it owns your physical hardware and carves it into virtual machines and LXC containers. Docker is an application runtime — it packages a single app and its dependencies into a portable image and runs it. One is the foundation of your homelab; the other is something you run on that foundation. The real 2026 decision is not which to pick — it’s how to layer them: Docker inside a Proxmox VM, Docker inside an LXC, Proxmox-native LXC per service with no Docker at all, or (new this cycle) Proxmox’s own OCI container support.

This guide gives you the layered answer with the details the usual comparisons skip: what Proxmox’s documentation actually recommends (with the real quote, not the folklore), the ZFS storage-driver conflict that silently breaks Docker-in-LXC on most Proxmox hosts, where GPU passthrough really stands for each option, and a decision tree you can run your own setup through. If you’re still deciding between containers and VMs at the Proxmox layer itself, start with our LXC vs VM breakdown — this article picks up where that one ends.

What Proxmox VE actually is (2026)

Proxmox VE is a free, open-source (AGPLv3) Type-1 hypervisor, currently at version 9.2. In Proxmox’s own words, it “tightly integrates the KVM hypervisor and Linux Containers (LXC), software-defined storage and networking functionality, on a single platform.” In practice that means:

  • Full KVM virtual machines — Windows, pfSense/OPNsense, Home Assistant OS, anything with its own kernel.
  • LXC system containers — lightweight full-Linux-OS containers sharing the host kernel, each with its own IP and filesystem.
  • A web UI, clustering, and snapshots — plus first-class Proxmox Backup Server integration for deduplicated, incremental backups of every VM and container.

The no-subscription repository makes it fully usable for homelab without paying anything.

What Docker actually is

Docker Engine is an application container runtime. It pulls OCI-format images (from Docker Hub or anywhere else), layers them onto a shared host kernel, and starts them in under a second. Its real superpower for self-hosters is the ecosystem: nearly every project you’d want to self-host publishes a docker-compose.yml, and Docker Compose turns a whole multi-service stack into one file and one command. What Docker is not: a hypervisor. It can’t run Windows, can’t give a workload its own kernel, and doesn’t manage your physical host. It also isn’t the only engine that runs OCI images — Podman does the same thing daemonlessly and rootless by default, which is a separate decision from the layering question here.

Why the question is framed wrong

Because the two tools sit at different layers, “Proxmox vs Docker” really decomposes into two separate questions:

  1. Should my bare metal run Proxmox? For almost any homelab beyond a single-purpose box: yes. Even if you only ever run Docker, putting Proxmox underneath costs you a few percent overhead and buys you snapshots, easy reinstalls, backups, and the freedom to add a VM later. (If you are weighing that hypervisor choice against VMware, the Proxmox vs ESXi breakdown covers why the free tier lands on Proxmox after Broadcom.)
  2. How should Docker run on that host? This is the decision with real trade-offs — and it’s the rest of this article.

The four ways to run containers on Proxmox

Proxmox LXC (native)Docker in a VMDocker in an LXCProxmox OCI (PVE 9.1+, preview)
Shares host kernelYesNo (own kernel)YesYes
IsolationMediumHighLow–mediumMedium
RAM overheadMinimal~0.5–1 GB per VMMinimalMinimal
Boot time<1 s15–45 s<1 s<1 s
PBS backup storyFull container backupFull VM backup, volumes includedFull container backupContainer backup
Docker ComposeNoYes, nativeYes (nesting=1)No
GPU accessDevice bind mountFull VFIO passthroughDevice bind mountNot documented
ZFS host compatibilityNativeNativeNative since OpenZFS 2.2 (PVE 8.1+)Native
Official Proxmox guidanceFirst-classRecommended for DockerVM recommended insteadTechnology preview
Best forSingle Linux servicesCompose stacks, anything importantRAM-starved hosts, trusted servicesExperiments

The Docker-in-LXC debate: what Proxmox actually says

The claim you’ll see everywhere is “Proxmox officially discourages Docker in LXC.” The reality is more precise. There is no wiki page banning it (the oft-cited Docker_on_LXC page simply doesn’t exist), but the official Proxmox documentation does take a position — quoted in Proxmox’s own forum best-practices thread:

“…it is recommended that you run them inside a Proxmox QEMU VM. This will give you all the advantages of application containerization, while also providing the benefits that VMs offer, such as strong isolation from the host and the ability to live-migrate.”

So: a recommendation toward VMs, not a prohibition of LXC. In homelab practice, Docker inside an LXC with features: nesting=1 (add keyctl=1 for some workloads) runs reliably for trusted, internal services — that’s the long-standing consensus across the Proxmox forums and communities like LearnLinuxTV.

The famous ZFS gotcha — now mostly historical. For years, Docker’s default overlay2 storage driver didn’t support ZFS backing filesystems, so Docker inside an LXC on a ZFS-backed Proxmox host fell back badly out of the box, and the community fix was switching to fuse-overlayfs. OpenZFS 2.2 changed this: it added native overlayfs support, so on Proxmox VE 8.1+ (and PVE 9, which ships OpenZFS 2.3) overlay2 simply works in an LXC on ZFS. If you’re on an older pool or you see overlay errors, fuse-overlayfs remains the fallback — or skip the whole question and run Docker in a VM, where the guest’s ext4 makes it a non-issue.

Backup reality: where each option wins

This is the most under-weighted factor in every comparison we read, and it’s where the layered setup pays off:

  • Docker in a VM + PBSProxmox Backup Server snapshots the entire VM: Docker Engine, every container, every named volume, all application data. Restoring your whole stack after a bad upgrade is one operation. This is the best backup story in self-hosting.
  • LXC (native or with Docker) + PBS — also good: PBS backs up the full container.
  • Docker on bare metal — you own the problem: volume-by-volume backups with tar jobs or Restic, plus the compose files, plus remembering how it all fit together. It works, but it’s the reason bare-metal Docker hosts tend to be rebuilt rather than restored.

GPU passthrough: which setup actually works

  • VM + VFIO — the reliable path. Pass the full GPU to a VM (our step-by-step guide), then install Docker plus the NVIDIA Container Toolkit inside it. This is the standard setup for Ollama, Stable Diffusion, Jellyfin/Plex hardware transcode.
  • LXC + device bind mount — contrary to what some comparison pages claim, LXC GPU access does exist: you bind-mount the /dev/nvidia* devices and match driver versions between host and container. It works for CUDA workloads and it’s lighter than a VM — but it’s a different mechanism from VFIO, it couples the container to host driver versions, and it’s more fragile across upgrades.
  • Docker bare metal — works, but again forfeits the hypervisor’s snapshot/backup layer around it.

What about Proxmox 9’s native OCI support?

New since PVE 9.1: you can create LXC containers directly from OCI images — the same image format Docker uses. Per the official release notes, creating system containers from suitable OCI images is supported, while application containers from OCI images are explicitly a technology preview. There is no Compose equivalent, no orchestration, and no ecosystem around it yet. It’s a genuinely interesting direction — one image standard across your whole stack — but in mid-2026 it is not a Docker replacement for a real homelab. Watch it; don’t build on it.

The honest decision tree

Run your setup through this, top to bottom:

  1. Need Windows, pfSense, Home Assistant OS, or any non-Linux workload? You need Proxmox VMs regardless. Docker slots in as one more VM.
  2. GPU-accelerated containers (LLMs, Stable Diffusion, transcoding)? Docker in a VM with VFIO passthrough.
  3. Want one-step restore of your whole stack, data included? Docker in a VM, backed up by PBS.
  4. Proxmox host on ZFS and set on Docker-in-LXC? On PVE 8.1+ (OpenZFS 2.2+) overlay2 works natively; on an older pool, use fuse-overlayfs inside the container — and know why.
  5. Under 16 GB of RAM and every megabyte counts? Docker in an LXC with nesting=1 for trusted, internal-only services is a legitimate choice — size it with our Docker RAM planner.
  6. Just running a handful of single Linux services (DNS, reverse proxy, monitoring)? Proxmox-native LXC per service, no Docker needed — lowest overhead, per-service IPs, clean PBS backups.

Most homelabs end up hybrid: a couple of native LXCs for infrastructure services, one Docker VM for the Compose stacks, and headroom for the odd full VM. If that’s where you land, our Docker Compose starter stack fills the Docker VM in about half an hour, and the Proxmox capacity planner tells you how much host you actually need.

Bottom line

Proxmox and Docker answer different questions. Proxmox decides how your hardware is divided; Docker decides how applications are packaged. Put Proxmox on the metal, put Docker in a VM on top of it (or in an LXC if you know the trade-offs and your storage driver), and you get the ecosystem of Docker with the snapshots, backups, and flexibility of a real hypervisor underneath. That layered setup — not a winner-take-all choice — is why the “vs” framing never quite made sense.

Frequently asked questions

Does Proxmox replace Docker?
No. Proxmox VE is a Type-1 hypervisor - it manages virtual machines and LXC system containers at the infrastructure level. Docker is an application container runtime that packages and runs individual apps. Proxmox cannot run Docker Compose stacks natively (its new OCI image support is a technology preview aimed at LXC, not a Docker replacement), and Docker cannot host a Windows VM or carve up your physical server. They operate at different layers, and most serious homelab setups use both together: Proxmox as the host, Docker inside a VM.
Should I run Docker inside Proxmox?
Yes - that is the standard homelab pattern. The recommended path is to create one Proxmox VM (Debian or Ubuntu), install Docker Engine inside it, and run your stacks with Docker Compose. You get clean isolation, live migration if you ever cluster, and the killer feature: Proxmox Backup Server snapshots the whole VM - Docker volumes included - so restoring your entire stack is one operation. Docker inside an LXC container also works for trusted workloads with nesting enabled, but it comes with caveats, especially on ZFS hosts.
Is Docker still relevant in 2026?
Yes. Docker’s OCI image format is the universal container standard - Kubernetes, Podman, and even Proxmox VE 9’s new OCI import feature all consume the same images. Docker Compose remains the dominant homelab orchestration tool by a wide margin, and nearly every self-hosted project ships a compose file first. Alternatives like Podman are genuinely good (we compare them separately), but none of them make Docker knowledge obsolete - they run the same images.
What is driving the move to Docker alternatives?
Three reasons dominate the discussion, and only one matters for a homelab. First, Docker Desktop requires a paid license for companies over 250 employees or $10M revenue - irrelevant at home, where Docker Engine on Linux is free. Second, the Docker daemon runs as root, which security-focused users address by switching to Podman’s rootless model. Third, organizations at scale outgrow Compose and move to Kubernetes - again not a single-node homelab concern. For home servers in 2026, Docker remains the default choice with the biggest ecosystem.
Can I run Docker in an LXC container on Proxmox?
Yes, with caveats. Enable nesting (features: nesting=1, optionally keyctl=1) in the container options and Docker will run. The old ZFS storage gotcha is largely history: OpenZFS 2.2 (shipped with Proxmox VE 8.1+; PVE 9 ships 2.3) added overlayfs support on ZFS, so Docker’s default overlay2 driver now works out of the box in an LXC on a ZFS-backed volume - the fuse-overlayfs workaround only applies to older pre-2.2 pools. Proxmox’s official documentation still recommends running Docker inside a QEMU VM instead, for stronger isolation and live migration. For trusted, internal-only homelab services, Docker-in-LXC is widely used and works; for anything you care about isolating, use the VM.

Evidence ledger

Last updated
Methodology
This guide was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs and prices verified against vendor and project documentation current on the date above. Full editorial standard: methodology.
Update log
  • 2026-08-13 — Last reviewed and updated.
Corrections
Spotted an error or a stale number? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV, who builds and runs TechFuelHQ from St. Louis, Missouri.