Proxmox 9.1: Natively Run Docker OCI Containers

Proxmox Virtual Environment (VE) has long been a cornerstone for virtualization, offering robust open-source solutions for managing virtual machines (VMs) and Linux Containers (LXCs). Historically, integrating Docker containers into a Proxmox environment often involved a layer of abstraction – either running Docker within a full-fledged VM or nesting it inside an unprivileged LXC. While functional, these approaches introduced overhead and complexity.

With the release of Proxmox VE 9.1, the landscape for containerization within Proxmox has fundamentally shifted. This latest iteration introduces integrated support for Open Container Initiative (OCI) images, marking a significant stride towards more native and efficient Docker container deployment. This guide will walk you through understanding this new capability, setting up your Proxmox VE 9.1 environment, and deploying Docker-compatible OCI images directly, streamlining your containerized workloads.

The Paradigm Shift: OCI and Proxmox VE 9.1

The Open Container Initiative (OCI) is a Linux Foundation project established to create open industry standards around container formats and runtimes. Essentially, OCI provides a standardized specification for container images (image-spec) and how they should be executed (runtime-spec). Docker images, the most prevalent container format, are fully OCI compliant.

Prior to Proxmox VE 9.1, running a Docker image typically meant installing Docker Engine inside a guest operating system (VM or LXC) and then managing containers from within that guest. This setup, while effective, incurred the overhead of an additional operating system layer for VMs or the complexities of managing cgroups and kernel capabilities for nested LXCs.

Proxmox VE 9.1 revolutionizes this by offering integrated support for OCI images. Instead of requiring a separate Docker installation, Proxmox can now directly consume OCI images, converting them into native LXC containers. This capability allows administrators to pull standard OCI images from public registries like Docker Hub or upload them manually, using them as direct templates for LXC containers. This direct integration offers several compelling advantages:

  • Reduced Overhead: By eliminating the need for a full VM or a complex nested Docker setup, resources are utilized more efficiently. LXC containers share the host kernel, significantly reducing memory and CPU footprint compared to VMs.
  • Simplified Management: Containers can be managed directly through the Proxmox VE web interface or CLI, leveraging Proxmox’s robust management features for resource allocation, networking, and storage.
  • Streamlined Workflows: DevOps pipelines that produce OCI-compliant images can now integrate seamlessly with Proxmox VE, enabling faster deployment and consistent environments.

It’s important to note that while this feature significantly enhances container deployment, Proxmox VE 9.1 itself does not include the Docker Engine. Instead, it uses OCI images as a base for its existing LXC framework. Proxmox explicitly states that the ability to run “application containers” from OCI images is currently considered a technology preview.

Preparing Your Proxmox VE 9.1 Environment

To leverage OCI image support, ensure your Proxmox VE installation is updated to version 9.1. Proxmox VE 9.1 is built upon Debian 13.2 “Trixie” and ships with a Linux kernel 6.17.2, along with LXC 6.0.5.

The process begins in the Proxmox VE web interface.

  1. Log in to the Proxmox VE Web Interface: Access your Proxmox server via a web browser (https://your-proxmox-ip:8006).

  2. Navigate to Storage: In the left-hand navigation pane, select your Proxmox node, then click on one of your storage devices (e.g., local or local-lvm) that is configured to store container templates.

  3. Pull OCI Image: Within the storage view, you’ll find a new option: “OCI Images”. Click on it.

    Proxmox VE 9.1 OCI Image Pull option
    Photo by BoliviaInteligente on Unsplash
    Here, you can either upload an OCI image archive or, more commonly, pull an image directly from a registry. Click “Pull from OCI Registry”.

  4. Configure Image Pull: A dialog will appear where you can specify the OCI registry and image name. For example, to pull the latest Nginx image from Docker Hub, you would enter:

    • Registry: registry.hub.docker.com (or leave blank for Docker Hub)
    • Image: library/nginx
    • Tag: latest (or a specific version)

    Click “Pull”. Proxmox will download the OCI image and convert it into a usable LXC template. This template will then appear under the “OCI Images” section of your chosen storage.

Deploying OCI-based LXC Containers

Once the OCI image is available as a template, deploying a container is similar to creating a standard LXC, with a few key differences.

  1. Create a New CT: In the Proxmox VE web interface, click on the “Create CT” button in the top right.
  2. General Settings: Fill in the required fields:
    • Node: Select the Proxmox node where the container will run.
    • CT ID: A unique identifier for your container.
    • Hostname: A hostname for the container.
    • Password: Set a root password for the container.
  3. Template Selection: This is where the new OCI integration shines.
    • Select your storage where the OCI image was pulled.
    • Under “Template”, you will now see your pulled OCI image listed (e.g., oci-template-library_nginx:latest). Select it.
      Proxmox VE 9.1 LXC creation with OCI template
      Photo by BoliviaInteligente on Unsplash
  4. Disk Size: Allocate the desired disk space for your container.
  5. CPU: Assign the number of CPU cores.
  6. Memory: Set the memory limits (RAM and Swap).
  7. Network: Configure the network for your container. Proxmox VE 9.1 also offers enhancements for application containers, including host-managed DHCP and configurable environment variables, which can simplify networking without needing a full userspace network stack within the container.
  8. DNS: Configure DNS settings as needed.
  9. Confirm: Review your settings and click “Finish” to create the container.

The container will be created based on the OCI image. You can then start it, and it will run as a lightweight LXC container, leveraging the efficiencies of Proxmox’s native containerization.

For those preferring the command line, you can also use the pct create command, specifying the OCI image as the template source. While the exact CLI command for creating LXC from OCI is still evolving with this tech preview, it will likely involve a syntax similar to existing pct create commands, referencing the OCI template.

For those preferring the command line, you can also use the pct create command, specifying the OCI image as the template source. While the exact CLI command for creating LXC from OCI is still evolving with this tech preview, it will likely involve a syntax similar to existing pct create commands, referencing the OCI template. For instance, you might expect to use something like pct create <CTID> --storage <storage_id> --ostemplate oci:<template_name> --hostname <hostname> --memory <MB> --rootfs <size>G, adapting the template identifier to match the format Proxmox uses internally for OCI-derived templates.

Post-Deployment Management and Considerations

Once your OCI-based LXC container is deployed, you can manage it much like any other LXC container within Proxmox VE. This includes starting, stopping, restarting, and accessing its console through the web interface or using pct commands like pct start <CTID> and pct enter <CTID>.

However, it’s important to understand the nuances of running “application containers” (derived from OCI images) within Proxmox’s LXC framework. LXC traditionally excels at “system containers” that mimic a full operating system. OCI images, on the other hand, are often designed for single-process, lightweight “application containers”.

While Proxmox VE 9.1 allows you to pull these OCI images, the resulting LXC container still operates within the LXC paradigm. This means:

  • No Built-in Docker Engine: As previously stated, Proxmox VE 9.1 does not include the Docker Engine. You won’t have docker commands available within the LXC itself unless you explicitly install Docker inside the LXC, which would negate some of the “reduced overhead” benefits.
  • Application-Centric vs. System-Centric: OCI images often expect a minimal environment. When converted to an LXC, you might find that some traditional LXC features (like a full init system) are present but potentially unnecessary or require configuration adjustments for purely application-focused workloads.
  • Updates and Image Management: Updating an OCI-based LXC currently involves a more manual process. If a new version of the base OCI image is released, you would typically pull the new image as a new template and then create a new container, migrating any persistent data. Simplifying this update process for OCI-based LXCs is likely on the roadmap for future development.
  • Orchestration: Proxmox VE is not a container orchestrator like Kubernetes or Docker Swarm. While it provides excellent management for individual LXC containers, it does not offer built-in features for multi-container application deployment, scaling, or service discovery inherent to dedicated container orchestration platforms. You would still need external tools or manual scripting for complex multi-container applications.

Despite these considerations, the direct OCI image support in Proxmox VE 9.1 significantly streamlines the initial deployment of Docker-compatible images. It’s an excellent step for those looking to run individual containerized applications or a small set of services with minimal overhead directly on their Proxmox hosts, without the complexities of a full Docker installation within a VM or nested LXC.

Conclusion

Proxmox VE 9.1 marks a pivotal moment for containerization within the platform. By introducing integrated support for OCI images, Proxmox has opened its ecosystem to the vast world of Docker-compatible containers, offering a more efficient and streamlined deployment experience. The ability to directly pull OCI images and convert them into native LXC containers significantly reduces resource overhead and simplifies management, making it easier for administrators to leverage containerized applications alongside their VMs and traditional LXCs.

While the “application containers” feature is still in technology preview, it represents a substantial leap forward, bridging the gap between traditional virtualization and modern containerization workflows. This integration empowers users to deploy standardized applications more rapidly and consistently, fostering a more agile and resource-efficient infrastructure. As Proxmox continues to refine this capability, we can anticipate even more seamless integration and advanced management features, further solidifying Proxmox VE’s position as a versatile and powerful open-source virtualization solution.

References

Virtualization Howto (2025). Proxmox VE 9.1 Launches with OCI Image Support, vTPM Snapshots, and Big SDN Upgrades. Available at: https://www.virtualizationhowto.com/2025/11/proxmox-ve-9-1-launches-with-oci-image-support-vtpm-snapshots-and-big-sdn-upgrades/ Linuxiac (2025). Proxmox VE 9.1 Released With OCI-Based LXC Deployment. Available at: https://linuxiac.com/proxmox-ve-9-1-released-with-oci-based-lxc-deployment/ Proxmox Server Solutions GmbH (2025). Proxmox Virtual Environment 9.1 available!. Available at: https://pve.proxmox.com/pve-docs/ StorageReview.com (2025). Proxmox VE 9.1 Released with Enhanced Container Support, Virtual TPM Snapshots, and Improved SDN Monitoring. Available at: https://www.storagereview.com/news/proxmox-ve-9-1-released-with-enhanced-container-support-virtual-tpm-snapshots-and-improved-sdn-monitoring

Thank you for reading! If you have any feedback or comments, please send them to [email protected].