Proxmox VE inside a Docker container.
- High-performance — Identically to bare-metal thanks to KVM acceleration
- Fast iteration — Spin up or tear down a PVE node quickly within seconds
- Easy backups — Stores all your configuration in a volume mount
- Simple networking — Comes with a pre-configured NAT bridge with DHCP
- LXC supported — LXC containers work out of the box
- Multi-platform — Support for ARM64 processors via PXVIRT
services:
proxmox:
hostname: pve
image: dockurr/proxmox
container_name: proxmox
environment:
PASSWORD: "root"
ports:
- 8006:8006
volumes:
- ./storage:/var/lib/vz
- ./config:/var/lib/pve-cluster
restart: always
privileged: true
stop_grace_period: 2mdocker run -it --rm --name proxmox --hostname pve --privileged -e "PASSWORD=root" -p 8006:8006 -v "${PWD:-.}/storage:/var/lib/vz" -v "${PWD:-.}/config:/var/lib/pve-cluster" --stop-timeout 120 docker.io/dockurr/proxmox- Intel VT-x / AMD-V enabled
- Modern Linux host with kernel 6.8+
- Docker Engine (version 27+ recommended)
- Windows 11 with Docker Desktop (WSL2):
- WSL kernel version 6.6+ (
wsl --version) - Nested virtualization enabled in WSL Settings
- WSL kernel version 6.6+ (
Very simple! These are the steps:
-
Start the container and connect to port 8006 using your web browser.
-
Login using the username
rootand the password you specified in thePASSWORDenvironment variable.
Enjoy your time with your brand new Proxmox installation, and don't forget to star this repo!
To change the location for the local storage pool used by Proxmox to store large objects like disk images and .iso files, include the following bind mount in your compose file:
volumes:
- ./storage:/var/lib/vzReplace the example path ./storage with the desired storage folder or named volume.
To change the location of your Proxmox VE configuration data, include the following bind mount in your compose file:
volumes:
- ./config:/var/lib/pve-clusterReplace the example path ./config with the desired storage folder or named volume.
First check if your software is compatible using this chart:
| Product | Linux | Win11 | Win10 | macOS |
|---|---|---|---|---|
| Docker CLI | ✅ | ✅ | ❌ | ❌ |
| Docker Desktop | ❌ | ✅ | ❌ | ❌ |
| Podman CLI | ✅ | ✅ | ❌ | ❌ |
| Podman Desktop | ✅ | ✅ | ❌ | ❌ |
After that you can run the following commands in Linux to check your system:
sudo apt install cpu-checker
sudo kvm-okIf you receive an error from kvm-ok indicating that KVM cannot be used, please check whether:
-
the virtualization extensions (
Intel VT-xorAMD SVM) are enabled in your BIOS. -
you enabled "nested virtualization" if you are running the container inside a virtual machine.
-
you are not using a cloud provider, as most of them do not allow nested virtualization for their VPS's.
Special thanks to rtedpro-cpu and LongQT-sea, this project would not exist without their invaluable work.

