====== 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=====