====== 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
===== 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**, **root\_squash** (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 **no\_root\_squash**.
/export/proxmox 192.168.x.0/24(rw,sync,no_root_squash,no_subtree_check)
Puis exécutez la commande
exportfs -ra.
Le **no\_root\_squash** 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** :
{{ :reseau:cloud:proxmox:oci_01.png |}}
Exemple pour l'image Docker **rancher/nginx** :
{{ :reseau:cloud:proxmox:oci_02.png |}}
Après téléchargement, les images sont disponibles dans le dossier au format tar :
{{ :reseau:cloud:proxmox:oci_03.png |}}
===== Création d'un conteneur LXC basée sur une image OCI importée=====