Migration Docker vers Proxmox

📖 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 :

  1. Créer CT
  2. Choisir Debian 12 ou Ubuntu 24.04
  3. Définir CPU/RAM
  4. Ajouter le stockage
  5. 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. 🚀