Accueil » Tous les articles » Restauration de containers Docker avec Rclone

Restauration de containers Docker avec Rclone

par | Mai 5, 2026 | ubuntu | 0 commentaires

| Mis à jour le 5 mai 2026

Article de la série « Mon ordinateur Ubuntu » À lire après : Sauvegarder ses containers Docker automatiquement avec Rclone vers Google Drive.
Actions et articles créés avec l’aide de Claude.ai. 100% testé et ajusté par moi.


La sauvegarde automatique mise en place dans l’article précédent ne vaut que si on sait s’en servir le jour où on en a besoin. Cet article décrit la procédure complète de restauration d’un container Docker depuis une sauvegarde Google Drive – testée sur Stirling PDF, Nginx Proxy Manager et Portainer.

Avant de commencer : vérifie que tu as bien une sauvegarde récente dans Google Drive. La commande suivante liste les dates disponibles :

sudo rclone --config /home/USER/.config/rclone/rclone.conf lsd "gdrive:/daily"

Note la date de la sauvegarde que tu veux restaurer – tu en auras besoin à l’étape 4.


Vue d’ensemble de la procédure

  1. Noter l’état actuel du container (point de comparaison)
  2. Arrêter et supprimer le container
  3. Renommer le dossier local (précaution de sécurité)
  4. Restaurer les fichiers depuis Google Drive
  5. Relancer le container
  6. Vérifier que tout fonctionne

Nota : dans tout ce qui suit, tu remplaceras USER par ton nom d’utilisateur linux.


Procédure standard (Stirling PDF et containers similaires)

Étape 1 – Noter l’état actuel

Avant de toucher quoi que ce soit, note les éléments qui te permettront de vérifier que la restauration a bien fonctionné :

  • les réglages personnalisés du logiciel (utilisateurs, mots de passe, configuration)
  • les favoris, l’historique, tout ce qui est propre à ton usage

Vérifie l’empreinte des fichiers locaux actuels :

ls -la /home/USER/docker/nom-du-logiciel/

pour chaque sous-dossier :

ls -la /home/USER/docker/nom-du-logiciel/sous-dossier/

Vérifie aussi, pour chaque sous-dossier également, que la sauvegarde Drive contient bien les fichiers critiques et que leurs tailles correspondent :

sudo rclone --config /home/USER/.config/rclone/rclone.conf ls "gdrive:/daily/YYYY-MM-DD/nom-du-logiciel/sous-dossier/"

Les tailles en octets doivent correspondre à celles des fichiers locaux. Ce qui importe c’est que les fichiers principaux (base de données, configuration) soient de taille identique – pas besoin de vérifier les logs. Si c’est le cas, tu peux continuer en confiance.

Étape 2 – Arrêter et supprimer le container dans Portainer

Si tu restaure Portainer, va voir le cas particulier plus bas.

Depuis ton navigateur, ouvre Portainer :

  1. Va dans Stacks dans le menu de gauche
  2. Clique sur la stack du logiciel à restaurer
  3. Clique sur Stop puis sur Delete this stack
  4. Confirme la suppression

Le logiciel n’est plus accessible. C’est normal, on va le reconstruire depuis la sauvegarde.

Étape 3 – Renommer le dossier local (précaution)

Plutôt que de supprimer définitivement le dossier local, on le renomme. Si quelque chose se passe mal pendant la restauration, on peut revenir en arrière immédiatement.

mv /home/USER/docker/nom-du-logiciel /home/USER/docker/nom-du-logiciel-BACKUP-TEST

Vérifie que le dossier original n’existe plus :

ls /home/USER/docker/

Tu dois voir nom-du-logiciel-BACKUP-TEST mais plus nom-du-logiciel.

Étape 4 – Restaurer les fichiers depuis Google Drive

Crée un nouveau dossier vide :

mkdir -p /home/USER/docker/nom-du-logiciel

Puis copie les fichiers depuis la sauvegarde Drive. Note bien les guillemets autour du chemin Drive – ils évitent tout problème d’interprétation :

Si tu restaures Nginx Proxy Manager, va voir le cas particulier plus bas.

sudo rclone --config /home/USER/.config/rclone/rclone.conf copy "gdrive:/daily/YYYY-MM-DD/nom-du-logiciel" /home/USER/docker/nom-du-logiciel

La commande ne retourne rien dans le terminal pendant qu’elle travaille – c’est normal. Pour surveiller la progression dans un second terminal :

watch -n 5 ls -la /home/USER/docker/nom-du-logiciel/

Les sous-dossiers apparaissent progressivement. Quitte avec Ctrl+C quand c’est terminé.

Une fois la copie terminée, vérifie que les fichiers critiques sont bien là et ont la bonne taille :

ls -la /home/USER/docker/nom-du-logiciel/configs/

Étape 5 – Relancer le container dans Portainer

Si tu restaure Portainer, va voir le cas particulier plus bas.

Le fichier docker-compose.yml a été restauré avec les données. Affiche son contenu :

cat /home/USER/docker/nom-du-logiciel/docker-compose.yml

Puis dans Portainer :

  1. Va dans Stacks – clique sur + Add stack
  2. Donne le même nom qu’avant à la stack (le nom du répertoire)
  3. Dans l’éditeur Web editor, colle le contenu du docker-compose.yml
  4. Clique sur Deploy the stack

Portainer va télécharger l’image Docker si nécessaire et démarrer le container.

Étape 6 – Vérifier que tout fonctionne

Ouvre le logiciel dans ton navigateur et vérifie :

  • que tu peux te connecter avec ton compte habituel
  • que tes réglages personnalisés sont bien présents (utilisateurs, configuration, favoris)
  • que les données sont intactes

Si tout est conforme à ce que tu avais noté à l’étape 1, la restauration est réussie.

Nettoyage après un test réussi

Une fois que tu as confirmé que la restauration fonctionne parfaitement, supprime le dossier de sauvegarde temporaire :

rm -rf /home/USER/docker/nom-du-logiciel-BACKUP-TEST

Cas particulier – Nginx Proxy Manager

NPM contient des données critiques : tes certificats Let’s Encrypt et ta configuration de proxy. La procédure standard s’applique, avec deux différences importantes.

Différence 1 – commande de restauration

Les certificats Let’s Encrypt dans letsencrypt/live/ sont des liens symboliques (symlinks) qui pointent vers les vrais fichiers dans letsencrypt/archive/. Sans l’option --copy-links, rclone refuse de les copier et la restauration échoue au démarrage avec l’erreur cannot load certificate.

La commande de restauration doit donc inclure --copy-links :

sudo rclone --config /home/USER/.config/rclone/rclone.conf copy --copy-links "gdrive:/daily/YYYY-MM-DD/nginx-proxy-manager" /home/USER/docker/nginx-proxy-manager

Différence 2 – vérification après restauration

En plus des vérifications habituelles, vérifie :

  • que tes proxy hosts sont bien présents dans l’interface NPM
  • que le cadenas vert s’affiche sur pdf.DOMAINE.com (certificat SSL actif)

Si les certificats ont expiré pendant une longue interruption, NPM les renouvellera automatiquement au redémarrage.


Cas particulier – Portainer

Portainer est un cas spécial car il s’auto-gère. On ne peut pas le restaurer depuis son propre interface puisqu’il sera arrêté pendant la procédure. Toute la restauration se fait en ligne de commande.

1 – Noter l’état actuel

ls -la /home/USER/docker/portainer/
ls -la /home/USER/docker/portainer/data/

Vérifie que la sauvegarde contient bien les fichiers critiques :

sudo rclone --config /home/USER/.config/rclone/rclone.conf ls "gdrive:/daily/YYYY-MM-DD/portainer/data/"

Tu dois voir portainer.db, portainer.key et portainer.pub avec des tailles cohérentes.

2 – Arrêter et supprimer Portainer en ligne de commande

docker stop portainer
docker rm portainer

Vérifie que le container n’existe plus :

docker ps -a | grep portainer

La commande ne doit rien retourner.

3 – Renommer le dossier local

mv /home/USER/docker/portainer /home/USER/docker/portainer-BACKUP-TEST

Vérifie :

ls /home/USER/docker/

Tu dois voir portainer-BACKUP-TEST mais plus portainer.

4 – Restaurer les fichiers depuis Google Drive

mkdir -p /home/USER/docker/portainer
sudo rclone --config /home/USER/.config/rclone/rclone.conf copy "gdrive:/daily/YYYY-MM-DD/portainer" /home/USER/docker/portainer

Surveille la progression :

watch -n 5 ls -la /home/USER/docker/portainer/

5 – Redonner les droits root et relancer Portainer

Les fichiers dans portainer/data/ doivent appartenir à root – Portainer les gère en root et refuse de démarrer autrement. C’est une étape indispensable après restauration :

sudo chown -R root:root /home/USER/docker/portainer/data

Puis relance Portainer directement en ligne de commande :

docker run -d \
  -p 9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /home/USER/docker/portainer/data:/data \
  portainer/portainer-ce:latest

6 – Vérifier que tout fonctionne

Ouvre Portainer dans ton navigateur (https://[IP-DU-BEELINK]:9443).

Si Portainer retrouve ton tableau de bord habituel sans te demander de créer un nouveau mot de passe, la restauration est réussie. Vérifie que tes stacks sont bien présentes dans l’onglet Stacks.

Nettoyage

rm -rf /home/USER/docker/portainer-BACKUP-TEST

En cas de problème

Le logiciel démarre mais ne retrouve pas les données Vérifie que les chemins dans le docker-compose.yml correspondent bien aux dossiers restaurés. Un chemin mal copié suffit à pointer vers un dossier vide.

« Can’t follow symlink without -L/–copy-links » Ce message apparaît lors de la restauration de NPM. Ajoute --copy-links à la commande rclone de restauration – voir la section NPM ci-dessus.

« Permission denied » au démarrage du container Les fichiers restaurés par Rclone appartiennent à USER, mais certains containers ont besoin que leurs dossiers appartiennent à root. C’est systématiquement le cas pour Portainer. Tape :

sudo chown -R root:root /home/USER/docker/nom-du-logiciel/sous-dossier

Puis redémarre la stack dans Portainer.

Portainer affiche « New Portainer installation » Les fichiers de données n’ont pas les bons droits après restauration. Arrête le container, refais sudo chown -R root:root /home/USER/docker/portainer/data, puis relance avec docker run.

Tu veux restaurer une version plus ancienne Remplace simplement YYYY-MM-DD par la date souhaitée dans la commande de l’étape 4. Les sauvegardes hebdomadaires sont dans gdrive:/weekly/YYYY-Wxx/ et les mensuelles dans gdrive:/monthly/YYYY-MM/.


Dans le prochain article

Maintenant que la sauvegarde et la restauration sont opérationnelles et testées, on verra comment installer un nouveau container en suivant dès le départ les bonnes pratiques – sans avoir à corriger la configuration après coup.

0 0 votes
Évaluation de l'article
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x