Vous devez créer un point de restauration avant les mises à jour du conteneur qui peuvent modifier les données persistantes de l’application, les schémas de base de données, la propriété des volumes ou la disposition du stockage. Vous n’avez pas besoin d’un nouvel instantané du système de fichiers avant chaque pull d’image inoffensif ou redémarrage lorsque le service est sans état, que les chemins persistants ne changent pas et qu’une sauvegarde testée couvre déjà les données.
La règle utile pour un NAS domestique n’est pas « instantané à chaque mise à jour ». C’est « protéger chaque mise à jour modifiant l’état ». Cela nécessite de savoir ce que contrôle l’image du conteneur, ce qui vit dans les volumes ou montages bind, et si l’application peut récupérer d’un instantané cohérent en cas de crash.
Une règle d’instantané échoue car les mises à jour du conteneur changent différentes choses
Remplacer une image peut être peu risqué lorsque le conteneur ne sert que du code jetable et lit la configuration depuis le contrôle de version. La même mise à jour peut être très risquée lorsque la nouvelle version migre une base de données, réécrit un index, change la propriété des fichiers ou modifie la disposition d’un volume persistant.
La persistance du conteneur dépend d’un stockage correctement mappé. Un guide de mise à jour pour serveur domestique explique que les mappages de volumes conservent les données de l’application lors de la recréation, mais la persistance seule ne crée pas un point de restauration après que l’application modifie ces fichiers.
Choisissez l’unité de restauration avant de choisir l’instantané
| État à protéger | Objet de restauration | Instantané seul ? |
|---|---|---|
| Image et tag du conteneur | Ancien digest d'image ou version épinglée | Aucun instantané de données nécessaire si rien de persistant ne change |
| Fichier Compose, environnement, ports et montages | Exportation de configuration sous contrôle de version | Non ; un instantané de stockage ne restaure pas la définition du déploiement |
| Montages bind et volumes nommés avec fichiers ordinaires | Instantané du système de fichiers ou sauvegarde de fichiers vérifiée | Habituellement, lorsque les fichiers sont au repos et que tous les chemins sont inclus |
| PostgreSQL, MariaDB, SQLite ou une autre base de données active | Vidage conscient de l'application, instantané coordonné ou copie de fermeture propre brève | Pas automatiquement |
| Secrets, certificats et identifiants externes | Enregistrement indépendant de sauvegarde et de récupération des secrets | Non ; ils peuvent vivre en dehors de l'ensemble de données instantané |
L'unité de retour en arrière doit inclure tous les composants dont l'application a besoin pour démarrer. Revenir en arrière uniquement sur l'image peut laisser en place le nouveau schéma de base de données, tandis que revenir en arrière uniquement sur le volume peut laisser une image ou une configuration incompatible active.
Instantané avant les mises à jour pouvant réécrire l'état persistant
Migrations de base de données et de schéma
Effectuez une sauvegarde consciente de l'application ou un instantané coordonné avant une mise à jour dont les notes de version mentionnent une migration de schéma, une conversion de base de données, un réindexage ou des étapes de mise à niveau unidirectionnelles. Un flux de travail pratique de mise à jour de conteneur combine explicitement la sauvegarde des données de l'application avec l'enregistrement de la version actuelle avant de récupérer un remplacement.
Modifications de la disposition et des permissions des volumes
Créez un point de retour en arrière lorsque la mise à jour modifie les chemins de montage, la propriété UID/GID, les répertoires de base de données, les métadonnées des médias, les vignettes générées ou le format de stockage de l'application. Ces changements peuvent rendre l'ancien conteneur incapable de lire les données mises à jour même lorsque les fichiers existent toujours.
Données domestiques volumineuses ou difficiles à recréer
Faites un instantané avant de mettre à jour les bibliothèques de photos, les systèmes de documents, l'historique de la domotique, les gestionnaires de mots de passe ou les métadonnées des médias lorsque la reconstruction de l'état prendrait plus de temps que la création et le test d'un point de retour en arrière.
Ignorez l'instantané lorsque la mise à jour est vraiment sans état
Un instantané de stockage séparé peut avoir peu de valeur lorsque le conteneur n'a pas de chemin persistant inscriptible, que toute la configuration est reproductible, que les données externes sont déjà protégées, et que le retour en arrière signifie démarrer l'image précédemment épinglée. Confirmez que l'application n'écrit pas silencieusement sur un volume anonyme ou un chemin hôte en dehors du jeu de données attendu.
Enregistrez la somme de contrôle exacte de l'ancienne image même dans ce chemin à faible risque. Les opérateurs de serveurs domestiques souhaitent souvent la somme de contrôle de l'ancienne image afin qu'un problème découvert après plusieurs redémarrages puisse toujours être lié à la version qui a changé.
Un instantané de système de fichiers en direct peut ne pas être cohérent avec l’application
Un instantané de système de fichiers capture un point dans le temps, mais une base de données active peut avoir des pages modifiées en mémoire, des transactions partiellement écrites ou des fichiers dépendants qui doivent être cohérents entre eux. Les conseils de sauvegarde de base de données distinguent une copie cohérente en cas de crash d’un instantané cohérent avec l’application créé pendant que la base de données est en mode sauvegarde ou autrement mise en pause.
Pour une petite application NAS domestique, le choix le plus simple et sûr peut être un dump logique ou un arrêt propre bref avant la création de l’instantané. Une archive simple d’un volume MySQL en direct n’est pas équivalente ; les conseils pratiques pour la sauvegarde de conteneurs recommandent de stopper la base de données avant de copier lorsqu’aucune méthode consciente de l’application n’est utilisée.
Utilisez une matrice de risques au lieu d’une règle pour chaque mise à jour
| Condition de mise à jour | Protection recommandée | Pourquoi |
|---|---|---|
| Version corrective, pas de migration, service sans état | Épinglez l’ancienne image et conservez l’historique de configuration | Aucun état persistant ne devrait changer |
| L’application écrit des fichiers ordinaires dans un ensemble de données instantané | Instantané rapide avant mise à jour plus sauvegarde normale | Le retour arrière est simple lorsque tous les chemins sont couverts |
| Migration de base de données ou nouveau format de stockage | Sauvegarde native de la base de données plus instantané coordonné | L’ancienne image peut ne pas comprendre les données migrées |
| Plusieurs ensembles de données, base de données externe, secrets ou certificats | Liste de contrôle des dépendances et sauvegardes séparées pour chaque propriétaire d’état | Un instantané de système de fichiers ne peut pas couvrir l’application entière |
| La mise à jour est irréversible ou le retour arrière n’a jamais été testé | Fenêtre de maintenance, test de restauration isolé et conservation prolongée des instantanés | Le chemin de retour inconnu est le principal risque |
Utilisez un flux de mise à jour réversible pour un NAS domestique
- Lisez les notes de version pour les migrations, les changements de permissions, les paramètres supprimés et les versions minimales de la base de données.
- Enregistrez le digest de l'image actuelle, le fichier compose, les variables d'environnement, les montages et la version de l'application.
- Créez la protection requise par la matrice de risques : pas d'instantané, instantané rapide du système de fichiers, sauvegarde de base de données consciente de l'application, ou les deux.
- Mettez à jour une pile applicative à la fois et gardez l'ancienne image disponible.
- Testez la connexion, les données principales, les tâches en arrière-plan, les téléchargements, les écritures en base de données et une restauration ou exportation représentative.
- Conservez le point de restauration pré-mise à jour jusqu'à ce que l'application survive à une utilisation domestique normale et au cycle de sauvegarde régulier.
- Supprimez l'instantané temporaire uniquement après qu'une sauvegarde distincte puisse reconstruire l'état actuel.
La restauration doit être testée sur un clone ou une cible séparée lorsque la plateforme de stockage le permet. Une restauration directe peut supprimer un état plus récent ; les utilisateurs de ZFS, par exemple, doivent comprendre que revenir en arrière supprime les instantanés ultérieurs et les modifications créées après le point sélectionné.
FAQ
Un instantané d'un conteneur de base de données en cours d'exécution est-il suffisant ?
Uniquement lorsque la base de données et la méthode de stockage peuvent produire un état cohérent en cas de crash récupérable ou lorsque l'instantané est coordonné avec la base de données. Pour les applications de serveur domestique de grande valeur, utilisez la sauvegarde de conteneur cohérente avec la base de données plutôt que de supposer qu'un instantané de volume en direct est suffisant.
Combien de temps un instantané pré-mise à jour doit-il être conservé ?
Conservez-le jusqu'à ce que l'application mise à jour ait passé les contrôles fonctionnels, survécu à une utilisation normale et complété au moins une sauvegarde vérifiée distincte. Gardez-le plus longtemps lorsque les migrations sont irréversibles, que des problèmes peuvent apparaître lentement ou que la reconstruction de l'ancienne pile applicative serait difficile.
Un instantané est un outil de restauration rapide, pas un substitut aux sauvegardes versionnées, à l'historique de configuration, à la récupération des secrets ou à la protection des bases de données conscientes des applications. Utilisez-le lorsque la mise à jour peut modifier l'état, et évitez-le lorsque la mise à jour est réellement jetable et que la procédure de restauration est déjà éprouvée.
Assistance et conseils
Plus à lire

Plex peut-il partager un GPU avec un autre conteneur Docker ?
Plex et un autre conteneur peuvent souvent accéder au même GPU, mais vous devez tester la prise en charge des pilotes, le mappage des...

Comment déterminer si une erreur Plex vient du client ou du serveur
Reproduisez le même élément sur un autre client, comparez le chemin de session, puis recueillez les preuves côté serveur uniquement après que la portée...

Comment configurer le cache de Plex et le stockage temporaire du transcodage
Protégez l’état persistant de Plex en plaçant les fichiers temporaires de transcodage sur un stockage local adapté, puis vérifiez le nettoyage, l’espace libre et...

