E-NO
DevOps 10 min de lecture

Sauvegarde et restauration de Docker Desktop : guide pratique de mise en œuvre

calendar_today Publié : 2026-09-20
update Dernière mise à jour : 2026-09-20
analytics Efficacité SEO : 100%
Illustration du guide technique pour « Sauvegarde et restauration de Docker Desktop : guide pratique de mise en œuvre ».

Introduction

Perdre un environnement Docker local peut signifier des heures de reconstruction d'images, de saisie de secrets et de recréation de données de test. Les procédures de sauvegarde et de restauration de Docker Desktop vous aident à récupérer rapidement, surtout si vous utilisez des volumes persistants, des réseaux personnalisés ou des projets Compose. Ce guide couvre des techniques pratiques de sauvegarde et de restauration, des étapes de validation et la récupération en cas d'échec, en se concentrant sur Docker Desktop sous Windows, macOS et Linux.

Nous aborderons les composants essentiels : les données des conteneurs (volumes et montages de type bind), les images, les paramètres de Docker Desktop et les fichiers de configuration. Vous apprendrez à inspecter votre configuration actuelle, à créer des sauvegardes cohérentes, à les restaurer dans un nouvel environnement et à vérifier que vos applications fonctionnent toujours. Chaque section comprend des commandes réelles, les résultats attendus et des conseils de dépannage.

Cet article s'adresse aux développeurs, aux ingénieurs DevOps et à toute personne utilisant Docker Desktop pour le développement local ou la production à petite échelle. À la fin, vous disposerez d'un processus reproductible pour protéger votre travail et réduire les temps d'arrêt en cas de problème.

Ce qu'il faut sauvegarder dans Docker Desktop

Avant d'exécuter toute commande de sauvegarde, identifiez ce qui doit être protégé. Docker Desktop stocke les données à plusieurs endroits, et chacun nécessite une approche différente.

1. Données des conteneurs : volumes et montages de type bind

La plupart des applications avec état stockent leurs données dans des volumes Docker ou des montages de type bind. Comprendre la différence est essentiel pour la sauvegarde.

  • Les volumes Docker sont gérés par Docker et stockés dans un emplacement comme /var/lib/docker/volumes/ (Linux) ou à l'intérieur de la machine virtuelle Docker Desktop (macOS/Windows). Vous pouvez les sauvegarder à l'aide d'un conteneur temporaire.
  • Les montages de type bind mappent un répertoire hôte directement dans un conteneur. Ils sont simples à sauvegarder car les données se trouvent sur le système de fichiers hôte, mais ils peuvent causer des problèmes de permissions et de portabilité.

Pour voir quels volumes ou montages un conteneur en cours d'exécution utilise, inspectez-le :

docker inspect mon-conteneur --format '{{ json .Mounts }}'

Résultat attendu (exemple) :

[{"Type":"volume","Name":"myapp_data","Source":"/var/lib/docker/volumes/myapp_data/_data","Destination":"/var/lib/app","RW":true}]

Si le type de montage est bind, la source est un chemin hôte comme /home/utilisateur/projet/donnees. Sauvegardez ce répertoire directement avec des outils de fichiers standard.

2. Images Docker

Les images peuvent être reconstruites à partir de Dockerfiles ou récupérées depuis des registres, mais les images construites sur mesure sans Dockerfile peuvent être perdues. Exportez les images importantes avec docker save et importez-les plus tard avec docker load. Nous verrons cela plus loin.

3. Paramètres et configuration de Docker Desktop

Docker Desktop stocke des paramètres tels que les limites de ressources, la configuration du proxy et les préférences Kubernetes. Ceux-ci ne sont pas inclus dans les sauvegardes de volumes. Sur macOS et Windows, les paramètres se trouvent dans des fichiers comme ~/Library/Group Containers/group.com.docker/settings.json (macOS) et %APPDATA%\Docker\settings.json (Windows). Sur Linux, la configuration du moteur Docker se trouve dans /etc/docker/daemon.json. Sauvegardez ces fichiers si vous personnalisez votre environnement.

4. Fichiers Compose et variables d'environnement

Vos fichiers docker-compose.yml et .env définissent les services, les réseaux et les variables d'environnement. Ils sont souvent stockés dans le dépôt de votre projet, mais s'ils n'existent que localement, incluez-les dans votre plan de sauvegarde.

Création de sauvegardes : commandes et exemples

Sauvegarder un volume Docker

Utilisez un conteneur temporaire pour créer une archive tar du contenu du volume.

# Démarrer un conteneur temporaire qui monte le volume, pour utilisation avec --volumes-from
docker run -d --name source-sauvegarde -v myapp_data:/data alpine sleep infinity

# Créer une sauvegarde du volume 'myapp_data' en utilisant l'approche documentée --volumes-from
docker run --rm --volumes-from source-sauvegarde -v $(pwd):/backup alpine \
  tar czf /backup/myapp_data_backup.tar.gz -C /data .

# Supprimer le conteneur temporaire
docker rm -f source-sauvegarde

Cette commande :

  • Démarre un conteneur Alpine temporaire nommé source-sauvegarde qui monte le volume myapp_data sur /data et dort.
  • Exécute un second conteneur Alpine avec --volumes-from source-sauvegarde pour accéder au même volume.
  • Monte le répertoire courant sur /backup.
  • Crée un fichier tar compressé myapp_data_backup.tar.gz dans le répertoire courant.
  • Supprime le conteneur temporaire source-sauvegarde après la sauvegarde.

Après exécution, vérifiez que le fichier de sauvegarde existe et n'est pas vide :

ls -lh myapp_data_backup.tar.gz
# Attendu : une taille de fichier supérieure à 0 octet

Sauvegarder un montage de type bind

Pour un montage de type bind, copiez simplement le répertoire hôte :

# Exemple de source de montage bind : /home/utilisateur/projet/donnees
cp -a /home/utilisateur/projet/donnees /emplacement/sauvegarde/donnees_backup

Utilisez rsync pour des sauvegardes incrémentales :

rsync -av --delete /home/utilisateur/projet/donnees/ /emplacement/sauvegarde/donnees_backup/

Sauvegarder plusieurs volumes avec un script

Créez un script pour sauvegarder tous les volumes utilisés par vos conteneurs. Cet exemple itère sur les volumes de docker volume ls :

#!/bin/bash
REP_SAUVEGARDE="$(pwd)/sauvegardes"
mkdir -p "$REP_SAUVEGARDE"
for volume in $(docker volume ls --format '{{.Name}}'); do
  echo "Sauvegarde du volume : $volume"
  conteneur="source-sauvegarde-${volume}"
  docker run -d --name "$conteneur" -v "$volume":/data alpine sleep infinity
  docker run --rm --volumes-from "$conteneur" -v "$REP_SAUVEGARDE":/backup alpine \
    tar czf "/backup/${volume}_backup.tar.gz" -C /data .
  docker rm -f "$conteneur"
done

Exécutez chmod +x backup_volumes.sh puis ./backup_volumes.sh. Vérifiez les archives dans sauvegardes/.

Sauvegarder les images

Pour exporter une ou plusieurs images :

docker save -o myapp_image.tar myapp:latest

Pour plusieurs images, listez-les après -o :

docker save -o toutes_images.tar image1:tag image2:tag

Le fichier tar résultant peut être copié sur une autre machine.

Sauvegarder les fichiers de configuration

Copiez manuellement les fichiers de configuration importants vers votre répertoire de sauvegarde :

# Exemple macOS
cp ~/Library/Group\ Containers/group.com.docker/settings.json ./sauvegardes/docker-settings.json

# Exemple Linux
sudo cp /etc/docker/daemon.json ./sauvegardes/daemon.json

Si vous utilisez des contextes Docker, sauvegardez le répertoire des contextes :

cp -r ~/.docker/contexts ./sauvegardes/docker-contextes

Question rapide 1 sur 2

Sur Windows, quel fichier contient le disque de la machine virtuelle Docker Desktop et les données d'image qui doivent être sauvegardés si Docker Desktop ne peut pas démarrer ?

La référence indique que sur Windows, vous devez sauvegarder le fichier %LOCALAPPDATA%\Docker\wsl\data\docker_data.vhdx.

Restauration des sauvegardes

Restaurer un volume Docker

Pour restaurer un volume à partir d'une archive tar :

# Assurez-vous que le volume existe (créez-le si nécessaire)
docker volume create myapp_data

# Restaurer les données
docker run --rm -v myapp_data:/data -v $(pwd):/backup alpine \
  tar xzf /backup/myapp_data_backup.tar.gz -C /data

Après la restauration, vérifiez en démarrant le conteneur et en consultant les journaux de l'application.

Restaurer les images

docker load -i myapp_image.tar

Confirmez avec docker images.

Restaurer les fichiers de configuration

Copiez les fichiers sauvegardés vers leurs emplacements d'origine. Pour les paramètres de Docker Desktop, assurez-vous que Docker Desktop est arrêté avant de restaurer pour éviter les écrasements :

# macOS
cp ./sauvegardes/docker-settings.json ~/Library/Group\ Containers/group.com.docker/settings.json

Redémarrez Docker Desktop ensuite.

Restaurer un projet Compose

Si vous avez sauvegardé votre docker-compose.yml, restaurez-le et exécutez :

docker compose up -d

Vérifiez l'état avec docker compose ps.

Vérification et diagnostic

Après la restauration, confirmez que tout fonctionne comme prévu.

Contrôles de santé de base

Exécutez ces commandes pour inspecter l'environnement :

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# Attendu : liste des conteneurs en cours d'exécution avec statut Up

docker logs mon-conteneur --tail 50
# Attendu : journaux récents sans erreurs fatales

docker inspect mon-conteneur
# Vérifiez les montages, réseaux et variables d'environnement

Pour les projets Compose :

docker compose ps
# Assurez-vous que tous les services sont actifs

docker compose logs -f app
# Suivre les journaux du service 'app'

Tester la persistance des données

Un simple test de redémarrage permet de détecter les volumes manquants :

docker stop mon-conteneur
docker start mon-conteneur
# Vérifiez ensuite que les données sont toujours accessibles

Si les données disparaissent, le conteneur écrivait probablement dans son système de fichiers éphémère au lieu d'un volume.

Vérifier le contenu du volume

Montez le volume dans un conteneur temporaire et listez les fichiers :

docker run --rm -v myapp_data:/data alpine ls -la /data

Comparez avec les fichiers attendus.

Modes de défaillance et récupération

Même avec des sauvegardes, la restauration peut échouer. Comprenez les problèmes courants et comment les résoudre.

Erreurs de permission après restauration

Symptôme : Les journaux du conteneur affichent Permission denied lors de l'accès aux fichiers.

Cause : Les fichiers restaurés ont un mauvais propriétaire (par exemple, appartenant à root alors que l'application attend un utilisateur non root).

Récupération : Ajustez la propriété à l'intérieur du conteneur ou du volume. Par exemple :

docker run --rm -v myapp_data:/data alpine chown -R 1000:1000 /data

Volume non monté

Symptôme : L'application démarre mais les données sont absentes.

Cause : Mauvais nom de volume ou volume manquant.

Récupération : Vérifiez docker volume ls et la configuration de montage du conteneur avec docker inspect. Recréez le volume si nécessaire.

Restauration à partir d'une archive corrompue

Symptôme : L'extraction tar échoue ou produit des données incomplètes.

Cause : Fichier de sauvegarde corrompu (par exemple, transfert interrompu).

Récupération : Vérifiez toujours les archives de sauvegarde avec tar tzf avant de leur faire confiance. Relancez la sauvegarde si possible.

Paramètres Docker Desktop perdus

Symptôme : Les limites de ressources ou les paramètres de proxy sont revenus à la valeur par défaut.

Cause : Restauration des paramètres non effectuée ou mise à jour de Docker Desktop qui a écrasé les paramètres.

Récupération : Réappliquez à partir de la sauvegarde ou reconfigurez manuellement. Envisagez d'utiliser docker context pour gérer les paramètres.

Question rapide 2 sur 2

Selon la référence, que devez-vous faire avant de sauvegarder les fichiers de disque de la machine virtuelle Docker Desktop ?

Le passage indique que Docker Desktop doit être complètement arrêté avant de sauvegarder ces fichiers.

Pièges courants et comment les éviter

1. Ignorer les montages de type bind dans le plan de sauvegarde

Les montages bind sont souvent oubliés car les données sont sur l'hôte, pas dans les volumes Docker. Solution : Documentez tous les chemins de montage bind à l'aide de docker inspect et incluez-les dans votre script de sauvegarde.

2. Sauvegarder une base de données en direct sans cohérence

Un tar d'un volume de base de données en cours d'exécution peut être incohérent. Solution : Arrêtez le conteneur avant la sauvegarde ou utilisez des outils spécifiques à la base de données comme pg_dump (PostgreSQL) ou mysqldump (MySQL). Vous pouvez aussi utiliser docker exec pour exécuter la commande de dump et sauvegarder le fichier résultant.

Exemple pour PostgreSQL :

docker exec mon-postgres pg_dump -U utilisateur mabase > db_backup.sql

3. Ne pas tester régulièrement les restaurations

Les sauvegardes peuvent être invalides. Solution : Planifiez un test de restauration mensuel dans un environnement temporaire. Automatisez si possible.

4. Compter sur la fonction d'exportation de Docker Desktop

L'exportation/importation via l'interface graphique de Docker Desktop peut être lente et ne pas inclure tous les volumes. Solution : Utilisez des méthodes en ligne de commande pour la précision et l'automatisation.

5. Stocker les sauvegardes sur le même disque

Si le disque tombe en panne, les sauvegardes sont également perdues. Solution : Copiez les sauvegardes vers un stockage externe ou le cloud.

Liste de contrôle opérationnelle

Utilisez cette liste pour garantir un processus de sauvegarde et de restauration de haute qualité.

ÉlémentRôle responsableFréquenceVérification
Identifier tous les volumes et montages bindIngénieur DevOpsMensueldocker inspect sur tous les conteneurs
Mettre à jour le script de sauvegarde pour les nouveaux servicesDéveloppeurÀ chaque changement de projetTester le script en staging
Exécuter la sauvegarde complèteTâche planifiée (ou manuelle)QuotidienVérifier les journaux de sauvegarde et les tailles de fichiers
Vérifier les archives de sauvegardeIngénieur DevOpsHebdomadairetar tzf ou test de restauration
Tester la restauration dans un environnement propreIngénieur QAMensuelTests de fumée de l'application
Examiner les paramètres de Docker DesktopIngénieur DevOpsTrimestrielComparer les paramètres actuels à la sauvegarde

Attribuez un responsable unique pour chaque ligne, pas un groupe. Par exemple, « Priya Shah, responsable de l'ingénierie » pour la revue de la politique de sauvegarde, à revoir trimestriellement.

Conclusion

La sauvegarde et la restauration de Docker Desktop ne sont pas une tâche ponctuelle mais une pratique continue. En comprenant ce qu'il faut sauvegarder, en utilisant des commandes cohérentes et en testant régulièrement les restaurations, vous pouvez éviter les pertes de données et minimiser les temps d'arrêt. Commencez dès aujourd'hui avec une simple sauvegarde de volume, puis étendez pour inclure les images, les configurations et l'automatisation. Rappelez-vous : une sauvegarde n'est aussi bonne que son dernier test de restauration réussi.

Comme prochaine étape, implémentez le script de sauvegarde de volume pour un conteneur critique, vérifiez l'archive et planifiez un test de restauration dans la semaine à venir.

Recherches connexes

Score de qualité de l’article

Utilité pour le lecteur 100%
  • check_circle Guide prêt à lire
  • check_circle Exemples pratiques inclus
  • check_circle URL d’article optimisée pour le SEO