Dawan Proxmox VE — TSSR

Chapitre 1 — Introduction, Installation et LXC

11. Templates et création d'un conteneur

Un conteneur se crée toujours à partir d'un template : une archive qui contient le système de fichiers d'une distribution déjà installée. Cette section part des images disponibles sur le nœud, présente les templates LXC et leur gestion, puis crée un premier conteneur — à l'interface, puis en ligne de commande.

11.1 Télécharger des images : ISOs pour les VMs, templates pour les LXC

Avant de créer une VM ou un conteneur, Proxmox a besoin d'une image de référence stockée localement sur le nœud. Il en existe deux types, et ils répondent à des besoins différents.

Une ISO est l'image d'un CD d'installation — elle sert à démarrer une VM pour la première fois et lancer l'installateur du système d'exploitation. C'est exactement ce qu'on fait quand on installe Linux ou Windows sur un PC depuis une clé USB. Les ISOs se stockent dans local → ISO Images et pointent vers /var/lib/vz/template/iso/.

Un template LXC est différent : c'est un système de fichiers complet, déjà installé et compressé, prêt à être extrait et démarré en quelques secondes. Il n'y a pas d'installateur — le conteneur est opérationnel dès sa création. Les templates se stockent dans local → CT Templates et pointent vers /var/lib/vz/template/cache/.

ISO démarrée sur un installateur pour une VM, template LXC extrait pour un conteneur

Les deux chemins, de l'image rangée dans local à la machine prête. L'ISO passe par un installateur, le template est simplement extrait : d'où les minutes d'un côté et les secondes de l'autre. Cliquez sur un chemin pour le détail.

Dans local Dossier Exemple Sert à
ISO Images /var/lib/vz/template/iso/ debian-13.6.0-amd64-netinst.iso créer des VMs KVM
CT Templates /var/lib/vz/template/cache/ debian-13-standard_13.6-1_amd64.tar.zst créer des LXC

Télécharger une ISO pour les VMs

Une ISO est l'image du disque d'installation d'un système : c'est d'elle qu'on installe une VM KVM.

Via l'interface web : cliquez sur votre nœud → local → onglet ISO Images → bouton Download from URL.

Fenêtre Download from URL du stockage local : URL, nom de fichier, taille et type de l'ISO Proxmox VE 9.2

On colle l'adresse, puis Query URL interroge le serveur : le nom du fichier, sa taille et son type se remplissent seuls. Download télécharge l'ISO directement sur le nœud, sans passer par votre poste. L'adresse de l'ISO Debian du cours :

https://cdimage.debian.org/cdimage/archive/13.6.0/amd64/iso-cd/debian-13.6.0-amd64-netinst.iso

Le dossier archive/ conserve toutes les versions de Debian : l'adresse fonctionnera toujours. En ligne de commande, le même fichier se télécharge avec wget dans /var/lib/vz/template/iso/, le dossier des ISO du stockage local.

Choisissez la version netinst : environ 750 Mo, contre 4 à 5 Go pour une ISO complète. Si le serveur n'a pas d'accès internet, local → ISO Images → Upload envoie l'ISO depuis votre poste.

11.2 Les templates LXC

Pour créer un conteneur LXC, Proxmox a besoin d'un point de départ — un système de fichiers minimal correspondant à une distribution Linux. Ces archives s'appellent des templates. Ce sont l'équivalent des images Docker ou des ISOs pour les VM, en beaucoup plus léger : un template Debian 13 pèse environ 130 Mo une fois compressé.

Proxmox maintient un dépôt de templates officiels pour les distributions les plus courantes : Debian, Ubuntu, Alpine, CentOS, Fedora, et d'autres. Ces templates sont téléchargeables directement depuis l'interface graphique ou depuis la ligne de commande.

11.2.1 Gérer les templates avec pveam

pveam — Proxmox VE Appliance Manager — est l'outil en ligne de commande dédié à la gestion des templates. Pour voir ce qui est disponible dans le dépôt officiel, on consulte la section system :

Dans le Shell du nœud (interface web → votre nœud → Shell) :

# Rafraîchir l'index des modèles (fait aussi chaque jour par une tâche planifiée)
pveam update

# Lister les templates disponibles dans le dépôt (section système)
pveam available --section system

Résultat attendu (extrait — la liste complète compte une quarantaine de lignes) :

system          alpine-3.24-default_20260714_amd64.tar.xz
system          debian-12-standard_12.12-1_amd64.tar.zst
system          debian-13-standard_13.6-1_amd64.tar.zst
system          debian-13-standard_13.6-1_arm64.tar.zst
system          ubuntu-24.04-standard_24.04-2_amd64.tar.zst

La colonne de gauche indique la section (ici system), la colonne de droite le nom du fichier template. Le nom se lit en trois morceaux. D'abord la distribution et sa version (debian-13).

Puis le type : standard, un système minimal avec SSH (default chez Alpine). Enfin la révision du modèle (13.6-1) et l'architecture (amd64). Le format .tar.zst indique une compression Zstandard, plus rapide que gzip pour des tailles similaires.

Le nom exact change à chaque nouvelle révision. Recopiez-le depuis cette liste plutôt que depuis un support : un pveam download avec une révision disparue répond 400 Parameter verification failed. Et si la liste semble ancienne, c'est l'index local qui date — pveam update le rafraîchit.

Pour télécharger un template sur le stockage local de votre nœud Proxmox :

Dans le Shell du nœud (interface web → votre nœud → Shell) :

# Télécharger le template Debian 13 sur le stockage "local"
pveam download local debian-13-standard_13.6-1_amd64.tar.zst

Résultat attendu :

downloading https://download.proxmox.com/images/system/debian-13-standard_13.6-1_amd64.tar.zst to /var/lib/vz/template/cache/debian-13-standard_13.6-1_amd64.tar.zst
...
download finished

Une fois téléchargé, le template est stocké dans /var/lib/vz/template/cache/. Pour lister les templates disponibles localement :

Dans le Shell du nœud (interface web → votre nœud → Shell) :

# Lister les templates présents sur le stockage local
pveam list local

Résultat attendu :

NAME                                                         SIZE
local:vztmpl/debian-13-standard_13.6-1_amd64.tar.zst       134.47MB

La référence local:vztmpl/... est exactement ce qu'on utilisera dans la commande pct create pour désigner ce template.


11.3 Créer un conteneur LXC

11.3.1 Via l'interface graphique

L'interface graphique de Proxmox propose un assistant de création en plusieurs étapes. Pour le lancer, cliquez sur Create CT en haut à droite de l'interface. L'assistant vous guidera à travers :

  1. General — VMID (identifiant numérique unique du conteneur), hostname, mot de passe root, clé SSH facultative
  2. Template — sélection du template téléchargé (stockage local, sous CT Templates)
  3. Disks — taille du disque racine et stockage cible (local-lvm recommandé)
  4. CPU — nombre de cœurs alloués
  5. Memory — RAM et swap en mégaoctets
  6. Network — interface réseau, bridge, IP statique ou DHCP, passerelle
  7. DNS — serveur DNS (hérite des paramètres de l'hôte par défaut)
  8. Confirm — récapitulatif avant création

À noter : la case "Unprivileged container" en bas de l'onglet General est cochée par défaut depuis Proxmox VE 7. Ne la décochez pas sans raison valable.

11.3.2 Via la ligne de commande avec pct create

La commande pct create offre exactement les mêmes options que l'assistant graphique, mais dans un format reproductible et scriptable. C'est ce que les administrateurs utilisent pour automatiser le déploiement de dizaines de conteneurs identiques.

Voici la commande complète pour créer un conteneur webserver avec une IP statique :

Dans le Shell du nœud (interface web → votre nœud → Shell) :

# Créer le conteneur ID 200 à partir du template Debian 13
# RAM 512 Mo, swap 512 Mo, disque 8 Go sur local-lvm
# IP fixe sur la plage vmbr0, première ressource en .50 (voir la règle d'adressage)
# Mode non-privilégié, démarrage automatique après création
pct create 200 local:vztmpl/debian-13-standard_13.6-1_amd64.tar.zst \
  --hostname webserver \
  --memory 512 \
  --swap 512 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=10.44.1.50/24,gw=10.44.1.1 \
  --password Dawan2025! \
  --unprivileged 1 \
  --start 1

Résultat attendu (sur PVE 9.2, template Debian 13) :

extracting archive '/var/lib/vz/template/cache/debian-13-standard_13.6-1_amd64.tar.zst'
Total bytes written: 312475648 (298MiB, 156MiB/s)
Detected container architecture: amd64
Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ...
done: SHA256:6/X+dOaSB4jVFWJSk0Y0z6IdYkZY9Shrw2nJt8Jvxl0 root@webserver
WARN: Systemd 257 detected. You may need to enable nesting.
Task finished with 1 warning(s)!

Chaque option a un rôle précis. --memory 512 alloue 512 Mo de RAM. --rootfs local-lvm:8 crée un volume logique de 8 Go sur le groupe de volumes LVM.

L'option --net0 configure la première interface réseau avec les paramètres IP statiques. L'option --start 1 démarre le conteneur immédiatement après la création, sans avoir à lancer pct start manuellement.

Le message WARN: Systemd 257 detected. You may need to enable nesting. est normal sur un conteneur Debian 13, et ce n'est pas une erreur. Le Task finished with 1 warning(s)! qui suit ne signale que cet avertissement.

La version récente de systemd (257, celle de Trixie) conseille d'activer le nesting, pour que certaines de ses unités fonctionnent au mieux. Le conteneur démarre et fonctionne parfaitement sans. Si un service précis à l'intérieur s'en plaint, on ajoute --features nesting=1 (voir §10.1.3) — mais pour un serveur web ordinaire, on l'ignore.

Attention aux adresses IP : votre conteneur prend une adresse fixe (jamais DHCP), prise sur la plage de votre vmbr0, à partir de .50 (voir la règle d'adressage de l'introduction). Elle ne doit pas être déjà utilisée. Ici 10.44.1.50 est un exemple : reportez la plage qui vous est indiquée pour la salle.

À retenir : une ISO sert à installer une VM ; un template est le système de fichiers prêt à l'emploi d'un conteneur (pveam update, pveam download). On crée un conteneur par l'assistant Create CT ou par pct create, en IP fixe prise sur la plage du vmbr0 à partir de .50.