Proxmox OCI Is NOW USEFUL

bluepr0

Well-Known Member
Mar 1, 2019
83
15
48
70
Hi everyone,

I've recorded a walkthrough of ProxMenux's OCI manager, deploying application images as LXC containers in Proxmox VE without installing Docker Engine.

What I find useful is having each application directly in Proxmox: its own IP, CPU and RAM settings, persistent volumes, and backup management.

The walkthrough covers:
  • AdGuard Home as a simple first deployment.
  • Frigate with recordings stored on a NAS, including the GPU/NPU options offered by the wizard.
  • Nginx Proxy Manager from its single-service Compose file, as an example of deploying an application outside the built-in catalog.
  • Backing up AdGuard Home to Proxmox Backup Server, deleting the container and restoring it.

ProxMenux is a third-party community project. Credit to Pedro, its developer.

Project and OCI documentation

The original video is in Spanish, but an English audio track is available.

Watch the walkthrough on YouTube

Would you use this approach for individual homelab services, or do you prefer keeping them together with Docker Compose?
 
Last edited:
Would you use this approach for individual homelab services, or do you prefer keeping them together with Docker Compose?
I would not use that approach. I want my workloads to be cattle, not pets, wherever possible. The data needs to be treated special but the compute should be ephemeral/disposable. I use the docker NFS driver in all my compose files, and the data sits on my all flash NAS, each app having one or more dedicated data sets on TrueNAS. TrueNAS handles the data security for me. One VM running most of my docker containers is almost perfect for me. I do run Ollama and my GPU in their own VM, and I do run docker containers on each of my machines (Proxmox, TrueNAS, Synology, my Ansible host) to enable my Grafana/Promtail/Loki monitoring stack.
 
  • Like
Reactions: Johannes S
I would not use that approach. I want my workloads to be cattle, not pets, wherever possible. The data needs to be treated special but the compute should be ephemeral/disposable. I use the docker NFS driver in all my compose files, and the data sits on my all flash NAS, each app having one or more dedicated data sets on TrueNAS. TrueNAS handles the data security for me. One VM running most of my docker containers is almost perfect for me. I do run Ollama and my GPU in their own VM, and I do run docker containers on each of my machines (Proxmox, TrueNAS, Synology, my Ansible host) to enable my Grafana/Promtail/Loki monitoring stack.
That’s possible with OCI/LXC too: keep persistent data on your NAS and recreate the container with the same settings and mounts. I show NAS mounts in the Frigate section of the video.
 
It may be possible, but its far from optimal. I don't want to manage 30 different LXCs when I can manage one VM
Curious how managing (seperately) 30 different docker images/instances inside one VM is different/more difficult than managing 30 different LXCs? Some specifics would help clarify the problem space.
 
It may be possible, but its far from optimal. I don't want to manage 30 different LXCs when I can manage one VM
It's a different use case, as you know LXCs and VMs are quite different.

I'm just happy that I can have my docker images (or other that are OCI) running natively on Proxmox! ❤️
 
I'm just happy that I can have my docker images (or other that are OCI) running natively on Proxmox!
You definitely can do that, (I do it natively within the Proxmox GUI without the above mentioned ProxMenux), but where it becomes more limiting is when you want to stack/coordinate/integrate multiple OCI images in one application. For this I use a VM running docker, as I have yet to see a way of doing this with the OCI pull image, natively in Proxmox.
 
  • Like
Reactions: Johannes S
You definitely can do that, (I do it natively within the Proxmox GUI without the above mentioned ProxMenux), but where it becomes more limiting is when you want to stack/coordinate/integrate multiple OCI images in one application. For this I use a VM running docker, as I have yet to see a way of doing this with the OCI pull image, natively in Proxmox.
Not a problem for me the management part, Proxmenux includes a Management section tho I do everything with AI, barely touch any docker manager or even the Proxmox UI
 
  • Like
Reactions: PigLover
Not a problem for me the management part, Proxmenux includes a Management section tho I do everything with AI
Not sure I fully understand your answer, so let us use an example:

You want to spin up an OCI image in an LXC for a Joplin server that should run in a Tailscale NW. This in fact requires 3 OCI images;

1. Joplin server image.
2. PostgreSQL image.
3. Tailscale image.

How do you do this, within the OCI image pull of Proxmox?
Doing it with docker installed in a VM (or even an LXC, though I wouldn't) is pretty simple, but not so within the OCI image pull framework.
Please enlighten me, if this is possible.

I feel I must also add, that I personally would shy away from even using scripts (at least blindly) within a HV environment. Using ProxMenux, is probably even more dramatic. Read these forums of mishaps caused by these actions.

Anyway, each to his own.
 
  • Like
Reactions: Johannes S
Curious how managing (separately) 30 different docker images/instances inside one VM is different/more difficult than managing 30 different LXCs? Some specifics would help clarify the problem space.
Simple, I don't want to have to create a new LXC every time I deploy a new docker. With a dedicated VM if I want to run a new container, I pull the docker compose file from my git repo and run "docker compose up -d". I also don't want to have to cycle through 30 LXC containers to update the docker containers. In a single VM, Watchtower updates all my containers for me automatically. I only back up my docker VM once a month, as its basically disposable. As long as TrueNAS is snapshotting and backing up my data, the docker environment adds no value. I can recreate it and have all my dockers back up and running in short order if it dies, becomes corrupted or what have you. My entire environment has compute separated from data. I don't want to go the other way. Even the few VMs I run are all very small. The data resides on the NAS and gets shared by by iSCSI or NFS
 
  • Like
Reactions: Johannes S
@gfngfn256 and @louie1961 These are good examples. Thank you for clarifying.

If I understand you correctly, what you are both describing are simplified versions of a Kubernetes "pod". A single atomic unit that contains/runs all of the OCI images that make up a service. This makes sense.

Even with tools like like a menu based OCI manager Proxmox OCI is a long way from delivering this.

I do still believe that getting a platform like Proxmox to the point that it can manage OCI-based services directly is a desirable long term goal. But miles away.
 
Last edited:
Here's the thing. The so called "overhead" of running a VM to host docker becomes very immaterial when you run dozens of containers like I do. Plus, I don't want my docker containers using my hypervisor kernel. The isolation of a dedicated VM kernel is a positive feature to me. I will likely never adopt OCI services in Proxmox. To me running containers directly on Proxmox is not a plus
 
  • Like
Reactions: Johannes S and UdoB