Proxmox : utiliser une image Docker (format OCI)

Ressources

https://www.virtualizationhowto.com/2025/11/complete-guide-to-proxmox-containers-in-2025-docker-vms-lxc-and-new-oci-support/

https://github.com/containers/skopeo

https://raymii.org/s/tutorials/Finally_run_Docker_containers_natively_in_Proxmox_9.1.html

Présentation

La version de Proxmox VE 9.1 permet l'importation et l'utilisation d'image au format OCI pour créer des conteneurs LXC.

OCI est une organisation visant à créer un standard pour unifier la façon de stocker les containers. opencontainers.org/

Voici quelques registres qui permettent l'hébergement d'images au format OCI :

Docker hub : docker.io (https://hub.docker.com/)

Github Container Registry : ghcr.io (https://oalahurikar.github.io/app-dev-blog/Github/Github-Container-Registry)

Red Hat Quay : quay.io (https://www.projectquay.io/)

etc.

En cas de problème de droits sur le stockage (solution non testée)

Problème possible lors de l'utilisation d'un NAS :

La conversion OCI→LXC peut nécessiter de créer/écrire des fichiers et d'ajuster des propriétaires UID/GID dans le rootfs.
* Si le serveur NAS a configuré dans sa directive export, rootsquash (mapping qui dégrade root), Proxmox ne peut pas faire les chown/chmod nécessaires pour extraire les couches de l'image OCI entrainant une erreur OS 13.

Solution : privilégiez dans la définition de l'export /etc/exports, le paramètre norootsquash.

/export/proxmox 192.168.x.0/24(rw,sync,no_root_squash,no_subtree_check)

Puis exécutez la commande

exportfs -ra.

Le norootsquash est la clé pour que Proxmox (root) puisse lire/écrire et chown le contenu.

Création/configuration d'un stockage dans Proxmox pour importer les images OCI

Créer un stockage de type Directory :

Menu Datacenter → Storage → Add → Directory

Paramètres :

ID : templates (définir le nom de votre choix)

Directory : /var/lib/vz (ou un autre chemin de votre choix comme /mnt/templates )

Content : cochez CT Template

Cliquez sur Add.

En configurant la valeur Directory avec /var/lib/vz, les templates OCI seront stockés dans le dossier /var/lib/vz/template/cache.

Importer une image OCI

menu Datacenter → Storage → local → CT Templates,

cliquez sur Pull from OCI Registry,

téléchargez l’image OCI après avoir indiqué sa référence, puis cliqué sur le bouton Query Tags pour lister les tags disponibles et choisi le tag voulu.

Exemple pour l'image Docker debian :

Exemple pour l'image Docker rancher/nginx :

Après téléchargement, les images sont disponibles dans le dossier au format tar :

Exemple de création d'un conteneur LXC pour n8n

Importer l'image OCI n8nnio/n8n:2.5.0

menu Datacenter → Storage → local → CT Templates,

cliquez sur Pull from OCI Registry,

téléchargez l’image OCI après avoir indiqué sa référence, puis cliqué sur le bouton Query Tags pour lister les tags disponibles et choisi le tag voulu.