OCI Containers Come to Proxmox 9.1 – A First Look
Proxmox 9.1 introduces support for OCI container images, bringing Docker‑style workloads into the Proxmox ecosystem for the first time. It’s still a tech preview, but it’s a promising step toward more flexible application hosting inside Proxmox.
Why OCI Support Matters
Until now, Proxmox has traditionally focused on virtual machines and LXC containers. Both are powerful, but many applications today are distributed as OCI images on registries like Docker Hub.
Adding OCI support means:
- You can pull widely used container images directly into Proxmox
- You can use familiar image tags like
grafana/grafana - You gain a more standardized way of handling app deployments
- You can use container images with full immutability
This brings Proxmox closer to the workflows many homelabbers and developers already use.
How Proxmox Implements OCI Containers
The biggest surprise to me was that Proxmox translates OCI containers inside an LXC container (the best I can tell).
This means:
- The OCI image is pulled and stored locally as a template
- Proxmox builds an LXC around it
- Networking and resource allocation behave like any LXC
It’s different from Docker or containerd, but it keeps things portable and backup‑friendly. It also protects the host by not running containers directly on the Proxmox node.
Pulling OCI Images
OCI images are pulled from registries the same way you pull LXC templates.
Inside your storage area for container templates, you’ll see a new option:
Pull From OCI Registry
You can enter something like:
grafana/grafana
Proxmox will:
- Query available tags
- Download the selected tagged image
- Store it as a
.tarcontainer template
Once downloaded, the image appears in your template list just like any LXC base image.
Creating a Container From an OCI Image
Creating a container is similar to creating an LXC:
- Select Create CT
- Fill out the usual container details
- Choose your OCI image as the template
- Assign CPU, RAM, storage, and networking
Networking uses LXC networking, not Docker networking. This gives you:
- Access to Proxmox bridge interfaces
- DHCP or static assignment
- No need for macvlan workarounds
- Clear separation from the Proxmox host itself
The result is kind of a hybrid - an LXC wrapper running an OCI application inside.
Running the Example: Grafana
In the video I pulled the image: grafana/grafana
After creating the container and letting DHCP assign an address, Grafana launched immediately inside the LXC wrapper. Visiting the LXC container’s IP brought up Grafana just like normal.
It’s fast, just like containers an LXCs.
Environment Variables and Configuration
Proxmox exposes container configuration through a new Environment section inside the LXC Options tab.
You can:
- View default environment variables shipped with the OCI image
- Add or override variables
- Restart the container to apply changes
This is similar to Docker Compose environment variables, but exposed in the Proxmox UI.
Limitations and Quirks (Keep in mind it is a Tech Preview)
This feature is labeled a tech preview, and it shows.
A few early limitations:
- Updating images is not streamlined nor even documented at this point
- You may need to rebuild containers instead of pulling updates (certainly hope not in the future)
- Console access behaves differently from a normal LXC (which is fine, but we have terminal access with LCX and even with OCI containers, so why not here?)
- Traditional Docker workflows (run, exec, logs) don’t exist. For all intensive purposes, one should forget the term Docker altogether.
None of this was unexpected, but it’s worth keeping in mind if you’re planning to test it in your homelab.
What I’d Love to See Next
This is a great step forward, and I’m excited about where it could go.
A few things that would really make the experience better:
- Pulling OCI images on‑demand directly from the create menu
- Switching image versions without rebuilding the whole container
- A more streamlined update flow
- Optional direct host‑level container execution
- Console access, just as we would with containers
- Immutability, just like with OCI containers
- Update detection mechanism when new container images are released.
Proxmox ha some of the foundation, now it’s about smoothing out the workflow and the limitations.
Why Run OCI Images at All?
Some may ask why even both with OCI images when you can install applications directly inside an LXC or VM.
Here’s why I think containers are the way to go:
- Applications ship with all dependencies included
- Versions are pinned and reproducible
- Containerized apps behave the same across environments
- No need to manage system‑level package installs
- Faster deployment and rollback
- Immutable nature of containers
To wrap it up, containers simplify your stack, reduce drift, and make deployments repeatable.
Final Thoughts
OCI support in Proxmox 9.1 may not replace Docker, but it’s a welcome addition for anyone running a homelab or managing self‑hosted services. It’s early, but it’s promising, and it’s great to see containers becoming a first‑class citizen in the Proxmox ecosystem. If I had my choice, I would still have OCI containers be a first class citizen on the platform. Personally it feels like they are doing whatever they can to avoid it. If this feature matures however, I will gladly replace my existing LXCs for an OCI based one and still hope the Proxmox team adds a truly native OCI container support.
Thanks for reading, I’m Tim.—
Join the conversation
Proxmox 9.1 adds support for OCI containers.
— Techno Tim (@TechnoTimLive) November 20, 2025
That means you can now run Docker-style workloads inside Proxmox using LXC.
I tested it, showed how it works, and covered the current limitations.https://t.co/ieY0JDxHmm
🛍️ Check out my recommended gear
🤝 Support the channel and help keep this site ad‑free
