Comment j’ai migré mon serveur Docker vers un nouveau système sans tracas

Comment j’ai migré mon serveur Docker vers un nouveau système sans tracas

Avez-vous déjà envisagé de migrer vos conteneurs Docker d’un serveur vers un autre ? Récemment, j’ai eu l’envie d’améliorer mon homelab en remplaçant un ancien serveur rack par un système plus récent et plus puissant. La migration de mes conteneurs Docker semblait être un défi redoutable, mais en réalité, le processus s’est révélé bien plus simple que prévu. Cette migration ne nécessite que quelques commandes et beaucoup de patience, selon le nombre de conteneurs que vous exploitez.

Dans ce guide complet, je vais vous expliquer étape par étape comment j’ai réussi à migrer mon serveur Docker vers un système entièrement nouveau, sans déplacer la machine virtuelle elle-même. Cette méthode vous permettra d’effectuer une transition en douceur tout en minimisant les interruptions de service.

1. Préparation du nouveau système

La première étape cruciale consiste à préparer minutieusement votre nouveau système. Cette préparation déterminera en grande partie le succès de votre migration.

Installation et configuration de base

J’ai commencé par m’assurer que ma nouvelle machine virtuelle était prête à accueillir Docker. Il est essentiel d’utiliser la même version du système d’exploitation que l’ancien serveur pour éviter les incompatibilités. Dans mon cas, j’ai opté pour Ubuntu Server 24.04 LTS, une distribution que j’utilise depuis plus d’une décennie pour mes serveurs Linux.

Une fois Ubuntu Server installé sur le nouvel hôte de machine virtuelle, j’ai procédé à l’installation de Docker et de toutes les dépendances nécessaires. Cette étape inclut :

  • L’installation des pilotes supplémentaires (NVIDIA ou Intel selon votre configuration)
  • La configuration de tous les chemins de dossiers nécessaires pour Docker
  • La vérification de la connectivité réseau
  • L’installation des outils de sauvegarde et de transfert
LIRE AUSSI  Le nouveau laptop System76 avec RTX 5070 Ti et 92 Go de RAM

Arrêt des services Docker

Attention : Cette étape nécessite un arrêt complet de vos services Docker, planifiez donc cette migration pendant une période de faible activité.

Après avoir configuré le nouveau système, j’ai arrêté le service Docker et le socket avec les commandes suivantes :

systemctl stop docker.socket
systemctl stop docker

Ces deux commandes sont nécessaires pour s’assurer que Docker est complètement arrêté. Cela permet de modifier le système de fichiers principal de Docker sans risquer de corrompre les données.

J’ai ensuite exécuté exactement les mêmes commandes sur l’ancien système. Il est crucial d’arrêter Docker sur l’ancien système avant de rassembler les fichiers, car cela garantit qu’aucune modification ne se produira entre le début et la fin de la migration.

2. Collecte et sauvegarde des fichiers Docker

Cette étape représente la partie la plus chronophage du processus, mais elle est absolument critique pour le succès de la migration.

Sauvegarde du dossier Docker principal

La première action consiste à créer une archive tar du dossier Docker principal. J’ai utilisé la commande suivante sur l’ancien serveur :

sudo tar -czvf docker-backup.tar.gz /var/lib/docker

Cette commande sauvegarde l’intégralité du dossier /var/lib/docker dans un fichier tar.gz compressé. La durée de cette opération dépend directement du nombre de conteneurs que vous exploitez et de la taille de vos volumes Docker. Dans mon cas, cette étape a pris environ 30 à 45 minutes.

Sauvegarde des volumes et configurations personnalisées

Ensuite, j’ai sauvegardé mes fichiers Docker personnalisés avec la commande suivante :

sudo tar -cvzf docker-files.tar.gz /portainer

Comme j’utilise Portainer comme gestionnaire Docker, j’ai organisé tous mes fichiers Docker sous /portainer sur le serveur. Cette structure inclut des dossiers comme /portainer/audiobookshelf, /portainer/plex, etc. Cette commande a nécessité environ une heure pour se terminer en raison du volume important de données dans mes dossiers de volumes Docker.

Conseil : Avant de commencer la sauvegarde, supprimez les fichiers et dossiers inutiles de vos volumes pour accélérer le processus.

3. Transfert des données vers le nouveau système

Une fois les archives créées, il est temps de transférer les données vers le nouveau serveur. Cette étape peut être réalisée de plusieurs manières selon votre infrastructure.

Transfert réseau avec rsync

Disposant d’un réseau 2,5 Gb/s à domicile, j’ai opté pour un transfert réseau. J’ai utilisé la commande rsync suivante qui permet de surveiller la progression du transfert :

rsync -ah --info=progress2 docker-backup.tar.gz utilisateur@hote-distant:/chemin/destination/

Cette commande offre l’avantage de pouvoir surveiller la vitesse de transfert et de s’assurer que tout se déroule selon le plan. Le transfert s’est achevé en quelques minutes grâce à la bande passante élevée.

LIRE AUSSI  Les applications terminales Linux indispensables pour personnaliser chaque nouveau système

Alternatives de transfert

Si vous préférez utiliser un support physique, vous pouvez également transférer les fichiers via USB. Cependant, vérifiez la version USB de votre ancien serveur – dans mon cas, le Dell R720 ne disposait que d’USB 2.0, rendant le transfert réseau beaucoup plus rapide.

4. Restauration des données sur le nouveau système

Une fois les fichiers transférés sur le nouveau serveur, il faut les extraire aux bons emplacements.

Extraction des archives

J’ai commencé par extraire le dossier Docker principal :

sudo tar -xpf docker-backup.tar.gz -C /

Puis j’ai extrait mes fichiers Docker personnalisés :

sudo tar -xpf docker-files.tar.gz -C /

Ces commandes restaurent tous les anciens fichiers Docker et les montages de volumes à leurs emplacements appropriés tout en préservant les permissions, ce qui constitue l’essentiel de la migration.

Important : L’option -p dans la commande tar préserve les permissions des fichiers, ce qui est crucial pour le bon fonctionnement de Docker.

5. Démarrage de Docker sur le nouveau système

Avec tous les fichiers en place, il est temps de démarrer Docker pour la première fois sur le nouveau système.

Commandes de démarrage

Le démarrage de Docker nécessite seulement deux commandes simples :

systemctl start docker
systemctl start docker.socket

Contrairement à mes attentes, la plupart des conteneurs se sont lancés immédiatement et étaient prêts à fonctionner. Si la configuration ne diffère pas beaucoup entre votre ancien et nouveau système, tout devrait fonctionner sans problème.

6. Résolution des problèmes courants

Même avec une préparation minutieuse, certains ajustements peuvent être nécessaires après la migration.

Changements de runtime graphique

L’un des premiers problèmes que j’ai dû résoudre concernait le changement de quelques conteneurs utilisant le runtime NVIDIA vers un runtime Intel. Mon ancien serveur disposait d’une carte graphique GTX 1650 pour l’IA et le transcodage, tandis que le nouveau serveur possède un i9-13900K avec des graphiques intégrés Intel capables de gérer les mêmes charges de travail.

Problèmes de configuration spécifiques

J’ai rencontré un problème majeur avec Home Assistant. Pour une raison inconnue, le conteneur Docker de Home Assistant n’a pas conservé ses paramètres lors de la migration. La solution était simple : j’ai rallumé l’ancienne machine virtuelle, téléchargé le fichier de sauvegarde depuis Home Assistant, et l’ai restauré sur la nouvelle machine virtuelle.

LIRE AUSSI  La Seagate IronWolf Pro 4 To en promotion : un choix idéal pour débuter votre NAS

Ajustements réseau

Certains aspects du réseau Docker peuvent nécessiter une révision. Par exemple, j’ai dû reconfigurer Scrypted pour utiliser le réseau hôte au lieu d’un nouveau réseau “scrypted-default” qui avait été créé. J’ai également dû :

  • Configurer l’IP statique sur la nouvelle machine virtuelle
  • Mettre à jour diverses configurations pour fonctionner avec les graphiques intégrés
  • Vérifier les mappages de ports

7. Vérification et optimisation post-migration

Une fois tous les conteneurs opérationnels, il est important de vérifier le bon fonctionnement de l’ensemble du système.

Tests de fonctionnalité

Effectuez des tests complets de tous vos services :

  • Vérifiez que tous les conteneurs démarrent correctement
  • Testez la connectivité réseau
  • Validez les performances des applications
  • Contrôlez les logs pour détecter d’éventuelles erreurs

Surveillance des performances

Dans mon cas, le nouveau serveur s’est révélé plus rapide, plus réactif et plus capable que l’ancien, tout en consommant moins d’électricité. Cette amélioration des performances justifie pleinement l’effort de migration.

Conclusion

La migration d’un serveur Docker vers un nouveau système peut sembler intimidante au premier abord, mais elle s’avère finalement assez simple avec une bonne préparation. Le processus principal – compression des données Docker, transfert des fichiers, et extraction sur le nouveau système – ne nécessite que quelques commandes et de la patience.

Cette expérience m’a permis d’apprendre une compétence précieuse qui me sera certainement utile à l’avenir. La migration a pris environ trois à quatre heures au total, principalement consacrées aux opérations de sauvegarde et de transfert.

Points clés à retenir :

  • Planifiez la migration pendant une période de faible activité
  • Assurez-vous que le nouveau système est correctement configuré avant de commencer
  • Utilisez des outils de transfert avec surveillance de progression
  • Préparez-vous à effectuer quelques ajustements post-migration
  • Testez minutieusement tous les services après la migration

Docker reste un outil remarquable qui alimente pratiquement l’intégralité de mon homelab. Cette migration réussie renforce ma confiance dans la robustesse et la portabilité de cette technologie de conteneurisation.

Rédactrice spécialisée en édition de site. Formation de journaliste et passionnée par les nouvelles technologies, l’intelligence artificielle et la rédaction web.

Laisser un commentaire