Faire fonctionner Docker dans un CT (LXC) Proxmox

Par défaut, les conteneurs LXC sur Proxmox VE ne sont pas conçus pour exécuter Docker, car Docker lui-même utilise des fonctionnalités proches de la virtualisation et nécessite certains privilèges supplémentaires.
Cependant, il est tout à fait possible d’adapter un CT afin d’y installer et faire tourner Docker. Voici la procédure.


1. Préparer le conteneur LXC

  1. Créez un CT basé sur une distribution Linux compatible Docker (Ubuntu 22.04 ou Debian 12 conseillés).
  2. Donnez-lui suffisamment de ressources (CPU/RAM).
  3. Activez l’option « unprivileged » ou « privileged » selon votre préférence (Docker fonctionne mieux en privileged).

2. Modifier la configuration du CT

Sur le nœud Proxmox, éditez le fichier de configuration du CT :

nano /etc/pve/lxc/<ID_CT>.conf

Ajoutez (ou vérifiez) les options suivantes :

# Autoriser Docker
features: nesting=1,keyctl=1

# (Optionnel mais souvent nécessaire pour certains conteneurs Docker)
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:

⚠️ lxc.cap.drop: vide supprime la restriction par défaut et donne plus de privilèges au CT. À utiliser avec précaution.

Enregistrez puis redémarrez le conteneur :

pct restart <ID_CT>

3. Installer Docker dans le CT

Connectez-vous au CT :

pct enter <ID_CT>

Ensuite, installez Docker (exemple pour Debian/Ubuntu) :

apt update
apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

# Ajouter la clé GPG officielle
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg

# Ajouter le dépôt Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installer Docker
apt update
apt install -y docker-ce docker-ce-cli containerd.io

4. Tester Docker

Vérifiez que Docker fonctionne :

docker run hello-world

Si tout est correctement configuré, vous verrez le message de bienvenue de Docker.


5. Conseils et bonnes pratiques

  • Sécurité : un CT avec Docker est plus proche d’une VM au niveau des permissions. Si la sécurité est critique, préférez utiliser une VM KVM.
  • Réseau : selon vos besoins, configurez un bridge réseau ou utilisez le mode NAT de Proxmox.
  • Persistance : montez vos volumes de stockage Proxmox dans le CT pour que vos conteneurs Docker persistent.

✅ Avec cette configuration, vous pouvez exécuter Docker (et même Docker Compose) dans un CT Proxmox sans avoir à créer de VM classique.

Share this content:

Laisser un commentaire

You May Have Missed