← Retour au portail

Fiche 6 - LXC — Conteneurs sous Proxmox VE

Créer et gérer des conteneurs LXC sous Proxmox VE : différences avec les VMs, création, gestion réseau et templates.

Intermédiaire — SISR 2ème année ⏱️ 20 min 📁 Virtualisation

🎯 Objectifs de la fiche

  1. VM vs Conteneur LXC — Différences, avantages, cas d'usage
  2. Télécharger un template LXC — pveam, templates Debian/Ubuntu
  3. Créer un conteneur LXC — Via l'UI Proxmox ou pct
  4. Gérer les conteneurs — start, stop, exec, config
  5. Réseau et ressources — IP, bridge, CPU, RAM

Prérequis

Proxmox VE installé et fonctionnel. Accès root sur Proxmox.

1. VM vs Conteneur LXC

CritèreVM (KVM)Conteneur LXC
IsolationComplète — noyau proprePartielle — partage le noyau de l'hôte
Démarrage30-60 secondes1-3 secondes
RessourcesRAM/CPU dédiés (overhead important)Léger — partagés avec l'hôte
OS supportésWindows, Linux, BSD, tout OSLinux uniquement
SécuritéMeilleure isolationMoins isolé (noyau partagé)
Usage idéalWindows Server, isolation forte, tests OSServices Linux : web, DNS, DHCP, proxy
ℹ️ En pratique : utilisez LXC pour les services Linux courants (Apache, Nginx, DNS, MariaDB) et KVM pour Windows, les services nécessitant une isolation forte, ou quand vous avez besoin de simuler un OS complet.

2. Télécharger un template LXC

# Mettre à jour la liste des templates disponibles
pveam update

# Lister les templates disponibles
pveam available | grep debian
pveam available | grep ubuntu

# Télécharger un template (Debian 13)
pveam download local debian-13-standard_13.0-1_amd64.tar.zst

# Lister les templates téléchargés
pveam list local
Ou via l'interface web :
Noeud > local > CT Templates > Templates
→ Sélectionner debian-13-standard
→ Download

3. Créer un conteneur LXC

3.1 Via l'interface web

ÉtapeParamètreValeur recommandée
GeneralCT ID / Hostname200 / debian-web
GeneralPasswordMot de passe root du conteneur
TemplateTemplatedebian-13-standard_13.0-1_amd64.tar.zst
DisksDisk size8 Go minimum
CPUCores1-2
MemoryRAM512 Mo – 1024 Mo (conteneur léger)
NetworkBridgevmbr0
NetworkIPv4DHCP ou Static (192.168.1.50/24)
DNSDNS servers192.168.1.10 ou 8.8.8.8

3.2 Via la CLI (pct)

pct create 200 local:vztmpl/debian-13-standard_13.0-1_amd64.tar.zst \
  --hostname debian-web \
  --memory 1024 \
  --cores 2 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.50/24,gw=192.168.1.1 \
  --rootfs local-lvm:8 \
  --password MonMotDePasse \
  --unprivileged 1 \
  --start 1

4. Gérer les conteneurs

CommandeAction
pct listLister tous les conteneurs
pct start 200Démarrer le conteneur 200
pct stop 200Arrêter le conteneur 200
pct shutdown 200Arrêt propre
pct status 200Voir l'état
pct enter 200Ouvrir un shell dans le conteneur
pct exec 200 -- bashExécuter bash dans le conteneur
pct config 200Voir la configuration
pct snapshot 200 snap1Créer un snapshot
pct destroy 200Supprimer définitivement
# Entrer dans le conteneur et installer Apache2
pct enter 200
apt update && apt install apache2 -y
systemctl enable --now apache2
exit

# Exécuter une commande sans entrer dans le conteneur
pct exec 200 -- systemctl status apache2

5. Conteneurs privilégiés vs non privilégiés

TypeDescriptionUsage
Non privilégié (--unprivileged 1)UID/GID mappés — root dans le conteneur = utilisateur non-root sur l'hôte. Plus sécurisé.Usage standard recommandé
Privilégié (--unprivileged 0)root dans le conteneur = root sur l'hôte. Moins sécurisé mais parfois nécessaire.Services nécessitant accès matériel ou montages NFS
Quelle est la principale différence entre un conteneur LXC et une VM ?
  • Un conteneur LXC utilise plus de RAM
  • Un conteneur partage le noyau de l'hôte, une VM a son propre noyau
  • Un conteneur LXC ne supporte pas le réseau
  • Une VM démarre plus vite

✅ Réponse : Un conteneur partage le noyau de l'hôte, une VM a son propre noyau

Quelle commande ouvre un shell dans le conteneur 200 ?
  • qm console 200
  • pct enter 200
  • docker exec -it 200 bash
  • lxc-attach 200

✅ Réponse : pct enter 200

Que télécharge la commande pveam download local template.tar.zst ?
  • Une image Docker
  • Un template LXC pour créer des conteneurs
  • Une ISO pour installer une VM
  • Une mise à jour de Proxmox

✅ Réponse : Un template LXC pour créer des conteneurs

Un conteneur LXC non privilégié est :
  • Un conteneur sans accès réseau
  • Un conteneur où root = root sur l'hôte
  • Un conteneur où root est mappé à un utilisateur non-root sur l'hôte
  • Un conteneur en lecture seule

✅ Réponse : Un conteneur où root est mappé à un utilisateur non-root sur l'hôte

Quelle commande liste tous les templates LXC téléchargés sur le stockage local ?
  • pveam list local
  • pct list templates
  • ls /var/lib/vz/template/cache/
  • qm listtemplates

✅ Réponse : pveam list local