🐳 Installer Docker dans un conteneur LXC Proxmox
Cette procédure décrit l'installation complète de Docker Engine dans un conteneur LXC hébergé sur Proxmox VE.
Elle est destinée aux services de la plateforme tels que Bitwarden, Docker Registry, Harbor, AdGuard Home ou tout autre service reposant sur Docker Compose.
🎯 Objectif
À l'issue de cette procédure, le conteneur disposera :
- de Docker Engine ;
- du plugin Docker Compose ;
- du service Docker démarré automatiquement ;
- d'un environnement prêt à héberger des applications Docker.
📋 Prérequis
- Cluster Proxmox opérationnel
- Conteneur Ubuntu créé
- Accès root au nœud Proxmox
- Accès root au conteneur
- Connexion Internet fonctionnelle
🧱 Étape 1 - Préparer le conteneur LXC
Docker nécessite des permissions supplémentaires pour fonctionner correctement dans un conteneur LXC.
Modifier la configuration du conteneur
Depuis l'hôte Proxmox :
nano /etc/pve/lxc/<ID>.conf
Ajouter les paramètres suivants :
features: nesting=1
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
Remplacer <ID> par l'identifiant du conteneur.
🔄 Étape 2 - Redémarrer le conteneur
pct restart <ID>
🔐 Étape 3 - Se connecter au conteneur
pct exec <ID> -- bash
📦 Étape 4 - Installer les dépendances
apt update
apt upgrade -y
apt install -y \
ca-certificates \
curl \
gnupg
🔑 Étape 5 - Ajouter la clé GPG Docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
📚 Étape 6 - Ajouter le dépôt Docker
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| tee /etc/apt/sources.list.d/docker.list > /dev/null
⬇️ Étape 7 - Installer Docker
apt update
apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
▶️ Étape 8 - Activer le service Docker
systemctl enable docker
systemctl start docker
✅ Étape 9 - Vérifier l'installation
docker run hello-world
Si le conteneur hello-world s'exécute correctement, Docker est opérationnel.
👤 Étape 10 - Utiliser Docker sans sudo (optionnel)
usermod -aG docker $USER
Fermer puis rouvrir la session utilisateur.
🔍 Vérifications
Version de Docker
docker version
Informations système
docker info
Version de Docker Compose
docker compose version
🚨 Dépannage
| Problème | Solution |
|---|---|
| Docker ne démarre pas | Vérifier les paramètres LXC puis redémarrer le conteneur. |
| Erreur AppArmor | Contrôler lxc.apparmor.profile: unconfined. |
| Erreur cgroups | Contrôler features: nesting=1. |
| Problème réseau | Vérifier la configuration réseau du LXC. |
| Diagnostic système | journalctl -u docker |
⚠️ Limitations des conteneurs LXC
- Les conteneurs non privilégiés peuvent rencontrer des limitations avec Docker.
- Certaines fonctionnalités liées aux cgroups ou à OverlayFS peuvent ne pas être disponibles.
- Pour les charges de travail importantes, une machine virtuelle reste la solution recommandée.
💡 Bonnes pratiques
- Utiliser Docker Compose pour tous les services.
- Stocker les stacks dans
/opt/docker-<service>. - Versionner tous les fichiers
docker-compose.yml. - Utiliser le registre privé de la plateforme.
- Installer Node Exporter sur les hôtes Docker afin de superviser les ressources.
- Prévoir les sauvegardes des volumes persistants.
📚 Voir également
- Docker Cheat Sheet
- Docker Registry
- Harbor
- Monitoring des hôtes Docker
- Sauvegarde des volumes Docker
```
No comments to display
No comments to display