Sì, puoi ripristinare un’immagine del container senza perdere i dati dell’app quando lo stato persistente si trova al di fuori del container e rimane compatibile con la versione precedente.
Su un NAS domestico, la sostituzione dell’immagine ricrea normalmente solo l’ambiente di esecuzione dell’applicazione, mentre i volumi denominati o i bind mount conservano database, impostazioni e file degli utenti. Il punto critico sono le modifiche allo schema: un’immagine più recente potrebbe migrare il database o riscrivere la configurazione in un modo che la versione precedente non è in grado di leggere. Prima del ripristino, acquisisci i mount correnti, l’identità dell’immagine, la configurazione, i segreti e un backup coerente dei dati.
Blocca lo stato corrente prima di modificare l’immagine
Disattiva gli aggiornamenti automatici delle immagini e annota il tag dell’immagine corrente, il digest immutabile, la configurazione del container, le variabili d’ambiente, le reti, le porte, i mount, la politica di riavvio e il controllo di integrità. Salva il file Compose o la configurazione esportata separatamente dal container.
Un flusso di lavoro per il ripristino dei container su NAS consiglia di conservare un’immagine precedente nota e disponibile, invece di affidarsi a un tag mobile come latest. Il punto di ripristino utilizzabile è la versione specifica dell’immagine precedente, insieme alla configurazione con cui è stata eseguita.
Esegui un backup o uno snapshot coerente del database dell’applicazione prima di arrestare la versione più recente. Non dare per scontato che il volume esistente sia una copia adatta al ripristino, perché potrebbe contenere già modifiche allo schema o ai dati apportate dall’aggiornamento.
Verifica che i dati dell’app siano archiviati al di fuori del livello scrivibile
Mappa ogni volume denominato e bind mount, quindi individua eventuali database, caricamenti, plugin, certificati, cache o configurazioni ancora memorizzati esclusivamente nel livello scrivibile del container.
Lo spazio di archiviazione persistente sopravvive alla sostituzione del container solo quando il nuovo container si ricollega alla stessa posizione esterna dei dati. Il flusso di lavoro di SynoForum per la gestione delle versioni delle immagini verifica esplicitamente che i dati dei volumi rimangano nell’archiviazione del NAS prima di ricreare un container da un’altra immagine.
Se i dati critici esistono solo nel livello scrivibile, copiali o esportali prima di rimuovere il container corrente. Considera questa estrazione una procedura di ripristino, non un motivo per mantenere indefinitamente un container senza versionamento.
Blocca la versione esatta dell’immagine precedente invece di riutilizzare Latest
Scarica o individua il tag o il digest dell’ultima versione sicuramente funzionante e aggiorna solo il riferimento all’immagine. Verifica l’architettura, l’edizione dell’applicazione e le variabili d’ambiente necessarie prima di ricreare il servizio.
Gli utenti che ripristinano servizi gestiti con Compose tornano comunemente a una versione esplicita precedente dell’immagine, invece di chiedere a Docker di invertire un container in esecuzione. Una discussione pratica sul ripristino ruota attorno alla modifica del tag dell’immagine Compose bloccato e alla ricreazione del servizio.
Non utilizzare una vecchia immagine memorizzata nella cache di cui non conosci l’identità. Dopo il download, annota il digest, così una nuova compilazione non selezionerà silenziosamente un binario diverso sotto lo stesso tag modificabile.
Verifica se la versione più recente ha modificato il database
Leggi le note di rilascio dell’applicazione e i log delle migrazioni per le versioni comprese tra quella di destinazione del ripristino e l’immagine corrente. Cerca modifiche irreversibili allo schema, riscritture della configurazione, cambiamenti delle chiavi di crittografia o aggiornamenti dei plugin.
Il ripristino del database è più complesso di quello dell’immagine, perché il codice dell’applicazione e lo schema devono rimanere compatibili. Octopus descrive le migrazioni compatibili con le versioni precedenti come un requisito quando le versioni vecchia e nuova dell’applicazione possono coesistere o essere invertite, rendendo la compatibilità dello schema tra le versioni il fattore decisivo per il ripristino.
Se l’immagine precedente non riesce a leggere il database migrato, ripristina il backup del database precedente all’aggiornamento invece di puntare il vecchio codice al nuovo stato. Conserva separatamente il database corrente nel caso sia necessario annullare anche il ripristino.
Ricrea il servizio utilizzando gli stessi percorsi persistenti
Arresta e ricrea il container dell’applicazione utilizzando l’immagine precedente, mantenendo gli stessi volumi denominati o bind mount verificati. Non utilizzare comandi o opzioni dell’interfaccia che rimuovono i volumi.
Mantieni coerenti i nomi delle reti, gli alias dei servizi, le porte pubblicate, le mappature UID/GID, i segreti e le destinazioni del proxy inverso, salvo che la versione precedente richieda una differenza documentata. L’avvio corretto del container con mount errati può creare una nuova app vuota e sembrare una perdita di dati.
Controlla l’elenco dei mount e i log dell’applicazione prima di accedere o consentire l’esecuzione dei processi in background. Se l’app inizializza un nuovo database, arrestala immediatamente e correggi il percorso dei dati invece di importare i dati nella posizione errata.
Convalida il ripristino e mantieni un percorso di recupero in avanti
Verifica l’accesso, la lettura e la scrittura del database, i caricamenti, i processi pianificati, le integrazioni e un riavvio controllato. Confronta un campione di record e file con l’inventario precedente al ripristino.
Il flusso di lavoro di ZimaSpace per gli snapshot dei dati dell’app prima dell’aggiornamento offre una preparazione più sicura per gli aggiornamenti futuri.
Il ripristino è completo solo quando la vecchia immagine utilizza i dati persistenti corretti, lo schema è compatibile o è stato ripristinato e il servizio sopravvive a un’ulteriore ricreazione. Conserva la versione più recente dell’immagine, il relativo backup dei dati e le note sul ripristino finché la versione precedente non sarà rimasta stabile per l’intero normale periodo di utilizzo.
Supporto e consigli
Altro da leggere

Plex può condividere una GPU con un altro container Docker?
Plex e un altro container possono spesso accedere alla stessa GPU, ma è necessario testare il supporto dei driver, la mappatura dei dispositivi, il...

Come capire se un errore di Plex proviene dal client o dal server
Riproduci lo stesso elemento su un altro client, confronta il percorso della sessione, quindi raccogli le prove dal server solo dopo che l’ambito ti...

Come configurare la cache di Plex e l’archiviazione temporanea per la transcodifica
Proteggi lo stato persistente di Plex collocando i file temporanei di transcodifica su un’unità locale adatta, quindi verifica la pulizia, lo spazio libero e...

