‫Tutto ok. Ora che hai imparato tutto sui volumi e sui rilegature, e
‫sul motivo per cui dobbiamo preoccuparci dei dati persistenti, facciamo qualcosa che è uno scenario reale, ovvero gli aggiornamenti del database.
‫Immagina una situazione in cui stai eseguendo una particolare versione di un database.
‫Diciamo postgres, e hai bisogno di aggiornare la versione della patch perché forse c'è una correzione per la sicurezza, o una
‫correzione di bug, o qualcosa del genere.
‫Normalmente su un sistema, si dovrebbe semplicemente aggiornare il software. Faresti un aggiornamento o un aggiornamento del sistema di gestione
‫dei pacchetti e gestiresti tutti gli aggiornamenti delle librerie e tutto da solo.
‫Ma come lo facciamo in un contenitore?
‫Perché, se stiamo cercando di seguire la best practice di non aggiornare le applicazioni nei contenitori, ma piuttosto
‫di sostituire il contenitore con una nuova versione, come possiamo farlo con il database?
‫Quello che farai per questo compito è che utilizzerai Docker Hub per ottenere informazioni
‫sull'aggiornamento della versione specifica di Postgres. Inizieremo con te nello specifico creando
‫un contenitore utilizzando la versione 9. 6. 1, che è una versione precedente. E avrai bisogno di creare un volume con nome.
‫Dovrai appoggiarti alla documentazione di Docker Hub per questo, usando il repository ufficiale di Postgres.
‫Dovrai accedere al Dockerfile per quella specifica versione e imparare cosa deve
‫essere il percorso del volume. Quindi puoi nominare il tuo volume come vuoi sul lato sinistro.
‫Ma ricorda che i due punti nella parte destra di esso, che deve essere il percorso in cui
‫i database effettivi saranno nel contenitore.
‫Una volta che hai capito tutto e hai iniziato il tuo contenitore, dovresti iniziare a controllare i log per vedere quando
‫ha finito di creare i database e tutte le cose di avvio. Poiché la prima volta che si avvia un
‫contenitore di database, in genere viene eseguito un mucchio di cose in background, ad
‫esempio la creazione di un utente amministratore e un database predefinito e così via.
‫Ci sarà un punto in cui i registri si fermeranno e quindi sarà solo in esecuzione.
‫un volume docker ls e vedere il volume elencato lì, con il nome che hai dato, e dovresti essere in grado di fermare quel contenitore.
‫Se l'hai fatto correttamente, sarai in grado di eseguire Quindi creerai un nuovo
‫contenitore con una nuova versione.
‫Sarà un comando molto simile al primo, solo tu specifichi una versione diversa, ti
‫assicurerai anche di voler specificare il volume del nome uguale perché deve usare i dati che
‫hai usato nel primo.
‫Certo, assicurati di aver interrotto il primo perché entrambi non possono accedere agli
‫stessi dati nello stesso momento.
‫Una volta avviato, prosegui e controlla di nuovo i log per il nuovo contenitore.
‫Quello che dovresti vedere è che ha solo un paio di righe di log di avvio perché non
‫deve fare tutto il lavoro dell'avvio iniziale.
‫Questo è il modo in cui sai che sta usando lo stesso
‫volume chiamato è che la seconda volta che si avvia, può avere solo quattro o cinque voci di registro.
‫Quindi questo è uno scenario del mondo reale.
‫Lo farai se esegui mai database di produzione o tutto ciò che ti serve per essere aggiornato.
‫Si noti che la maggior parte dei sistemi di database non esegue automaticamente aggiornamenti importanti.
‫Di solito richiede uno strumento. uno strumento separato per ognuno di essi che devi eseguire.
‫Con postgres o MySQL, c'è
‫Si tratta in realtà solo di aggiornare le versioni delle patch o quell'ultimo numero che
‫non richiede modifiche allo schema o aggiornamenti importanti al codice dati stesso.
‫Come prima, se
‫rimani bloccato, non preoccuparti perché questa è una novità e potrebbe non essere così chiara in Docker Hub.
‫Se ti blocchi a un certo punto e Docker Hub non ti
‫aiuta, basta controllare la prossima lezione, che sono io che sto facendo lo stesso esercizio come farei io.
‫In bocca al lupo.