📖 Introduction
Docker est devenu incontournable pour déployer rapidement des applications. Cependant, dans certains cas, il peut être intéressant de migrer ses conteneurs Docker vers des conteneurs LXC ou des machines virtuelles (VM) sous Proxmox :
✅ Simplifier l'administration
✅ Réduire la couche d'abstraction
✅ Améliorer les performances I/O
✅ Bénéficier des fonctionnalités natives de Proxmox (snapshots, sauvegardes, clustering, HA)
Dans cet article, nous allons voir quand choisir un LXC ou une VM, puis comment migrer proprement vos services Docker.
🤔 LXC ou VM : lequel choisir ?
📦 LXC (Linux Container)
Avantages
- Très léger
- Démarrage quasi instantané
- Consomme peu de RAM
- Performances proches du bare metal
Inconvénients
- Partage le noyau de l'hôte
- Moins isolé qu'une VM
- Certaines applications nécessitent des privilèges supplémentaires
Idéal pour
✅ Nextcloud
✅ Jellyfin
✅ Nginx Proxy Manager
✅ Pi-hole
✅ Home Assistant
🖥️ Machine Virtuelle
Avantages
- Isolation complète
- Compatible avec n'importe quel OS
- Possibilité d'installer Docker à l'intérieur si besoin
Inconvénients
- Plus gourmande en ressources
- Temps de démarrage plus long
Idéal pour
✅ Serveurs Windows
✅ Kubernetes
✅ Applications nécessitant un noyau spécifique
✅ Environnements de test
🗺️ Schéma de migration
┌─────────────────────┐
│ Serveur Docker │
└──────────┬──────────┘
│
▼
┌───────────────────┐
│ Sauvegarde Data │
└─────────┬─────────┘
│
▼
┌───────────────────┐
│ Création LXC / VM │
└─────────┬─────────┘
│
▼
┌───────────────────┐
│ Installation App │
└─────────┬─────────┘
│
▼
┌───────────────────┐
│ Restauration Data │
└───────────────────┘
📋 Étape 1 : Inventorier les conteneurs Docker
Commencez par lister les conteneurs :
docker ps -a
Puis récupérez leur configuration :
docker inspect nom_du_conteneur
Vérifiez notamment :
- Les volumes montés
- Les ports exposés
- Les variables d'environnement
- Les réseaux utilisés
💾 Étape 2 : Sauvegarder les données
La plupart des applications stockent leurs données dans des volumes Docker.
Exemple :
docker volume ls
Archivez les données :
tar -czvf nextcloud-backup.tar.gz /opt/docker/nextcloud
ou
docker run --rm \ -v nextcloud_data:/source \ -v $(pwd):/backup \ alpine \ tar czf /backup/nextcloud.tar.gz -C /source .
🏗️ Étape 3 : Créer le LXC ou la VM
Création d'un LXC
Dans Proxmox :
- Créer CT
- Choisir Debian 12 ou Ubuntu 24.04
- Définir CPU/RAM
- Ajouter le stockage
- Activer les options :
Nesting = Oui Keyctl = Oui
Exemple
CPU : 2 vCPU RAM : 2 Go Disque : 20 Go
Création d'une VM
Si l'application nécessite une isolation complète :
CPU : 2 à 4 vCPU RAM : 4 Go+ Disque : selon besoin
Installez ensuite votre système Linux préféré.
🔧 Étape 4 : Installer l'application nativement
Exemple : Jellyfin
Sous Debian :
curl https://repo.jellyfin.org/install-debuntu.sh | bash
Puis :
apt install jellyfin
Les données seront stockées directement dans :
/var/lib/jellyfin
Exemple : Nextcloud
Installation via :
apt install apache2 mariadb-server php
ou
snap install nextcloud
📂 Étape 5 : Restaurer les données
Copiez vos sauvegardes :
scp nextcloud-backup.tar.gz root@nouveau-serveur:/tmp
Extraction :
tar -xzvf nextcloud-backup.tar.gz
Puis replacez les données dans le dossier approprié.
🌐 Étape 6 : Reconfigurer le réseau
Docker gérait souvent les ports automatiquement :
8080 → 80 8443 → 443
Avec un LXC ou une VM :
IP : 192.168.1.50 Port HTTP : 80 Port HTTPS : 443
Il suffit ensuite de mettre à jour :
- Reverse proxy
- DNS
- Certificats SSL
🎯 Cas pratique : Migration de Jellyfin
Avant
Docker Host
└── Jellyfin
├── Port 8096
└── Volume /media
Après
Proxmox
└── LXC Jellyfin
├── IP 192.168.1.30
├── Port 8096
└── Montage /media
Résultat :
🚀 Démarrage plus rapide
🚀 Sauvegardes natives Proxmox
🚀 Moins de couches logicielles
⚠️ Pièges à éviter
❌ Migrer sans sauvegarde
❌ Oublier les permissions :
chown -R jellyfin:jellyfin /media
❌ Conserver les anciens ports Docker
❌ Négliger les variables d'environnement importantes
🏁 Conclusion
Migrer de Docker vers un conteneur LXC ou une VM Proxmox permet souvent de simplifier l'infrastructure tout en profitant pleinement des fonctionnalités de virtualisation de Proxmox.
Choisissez :
📦 LXC si vous recherchez les meilleures performances et une faible consommation de ressources.
🖥️ VM si vous privilégiez l'isolation maximale et la compatibilité.
Dans la majorité des homelabs, un conteneur LXC est souvent le meilleur compromis entre performance, simplicité et intégration avec Proxmox. 🚀