﻿1
00:00:04,670 --> 00:00:10,720
‫Tutto ok. Ora che hai imparato tutto sui volumi e sui rilegature, e

2
00:00:10,720 --> 00:00:16,120
‫sul motivo per cui dobbiamo preoccuparci dei dati persistenti, facciamo qualcosa che è uno scenario reale, ovvero gli aggiornamenti del database.

3
00:00:16,120 --> 00:00:21,250
‫Immagina una situazione in cui stai eseguendo una particolare versione di un database.

4
00:00:21,250 --> 00:00:28,210
‫Diciamo postgres, e hai bisogno di aggiornare la versione della patch perché forse c'è una correzione per la sicurezza, o una

5
00:00:28,210 --> 00:00:30,490
‫correzione di bug, o qualcosa del genere.

6
00:00:30,490 --> 00:00:36,730
‫Normalmente su un sistema, si dovrebbe semplicemente aggiornare il software. Faresti un aggiornamento o un aggiornamento del sistema di gestione

7
00:00:37,030 --> 00:00:41,340
‫dei pacchetti e gestiresti tutti gli aggiornamenti delle librerie e tutto da solo.

8
00:00:41,650 --> 00:00:43,090
‫Ma come lo facciamo in un contenitore?

9
00:00:43,180 --> 00:00:48,700
‫Perché, se stiamo cercando di seguire la best practice di non aggiornare le applicazioni nei contenitori, ma piuttosto

10
00:00:48,700 --> 00:00:52,810
‫di sostituire il contenitore con una nuova versione, come possiamo farlo con il database?

11
00:00:52,810 --> 00:00:58,990
‫Quello che farai per questo compito è che utilizzerai Docker Hub per ottenere informazioni

12
00:00:59,110 --> 00:01:03,910
‫sull'aggiornamento della versione specifica di Postgres. Inizieremo con te nello specifico creando

13
00:01:03,910 --> 00:01:12,100
‫un contenitore utilizzando la versione 9. 6. 1, che è una versione precedente. E avrai bisogno di creare un volume con nome.

14
00:01:12,100 --> 00:01:18,820
‫Dovrai appoggiarti alla documentazione di Docker Hub per questo, usando il repository ufficiale di Postgres.

15
00:01:19,270 --> 00:01:23,920
‫Dovrai accedere al Dockerfile per quella specifica versione e imparare cosa deve

16
00:01:23,920 --> 00:01:28,260
‫essere il percorso del volume. Quindi puoi nominare il tuo volume come vuoi sul lato sinistro.

17
00:01:28,270 --> 00:01:33,040
‫Ma ricorda che i due punti nella parte destra di esso, che deve essere il percorso in cui

18
00:01:33,040 --> 00:01:34,590
‫i database effettivi saranno nel contenitore.

19
00:01:34,810 --> 00:01:38,680
‫Una volta che hai capito tutto e hai iniziato il tuo contenitore, dovresti iniziare a controllare i log per vedere quando

20
00:01:38,680 --> 00:01:43,390
‫ha finito di creare i database e tutte le cose di avvio. Poiché la prima volta che si avvia un

21
00:01:43,390 --> 00:01:47,680
‫contenitore di database, in genere viene eseguito un mucchio di cose in background, ad

22
00:01:47,710 --> 00:01:51,810
‫esempio la creazione di un utente amministratore e un database predefinito e così via.

23
00:01:51,820 --> 00:01:55,660
‫Ci sarà un punto in cui i registri si fermeranno e quindi sarà solo in esecuzione.

24
00:01:55,660 --> 00:02:02,530
‫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.

25
00:02:02,620 --> 00:02:07,630
‫Se l'hai fatto correttamente, sarai in grado di eseguire Quindi creerai un nuovo

26
00:02:07,660 --> 00:02:10,560
‫contenitore con una nuova versione.

27
00:02:10,630 --> 00:02:16,300
‫Sarà un comando molto simile al primo, solo tu specifichi una versione diversa, ti

28
00:02:16,310 --> 00:02:22,780
‫assicurerai anche di voler specificare il volume del nome uguale perché deve usare i dati che

29
00:02:22,780 --> 00:02:24,420
‫hai usato nel primo.

30
00:02:24,460 --> 00:02:28,060
‫Certo, assicurati di aver interrotto il primo perché entrambi non possono accedere agli

31
00:02:28,060 --> 00:02:29,450
‫stessi dati nello stesso momento.

32
00:02:29,680 --> 00:02:33,730
‫Una volta avviato, prosegui e controlla di nuovo i log per il nuovo contenitore.

33
00:02:34,000 --> 00:02:38,980
‫Quello che dovresti vedere è che ha solo un paio di righe di log di avvio perché non

34
00:02:38,980 --> 00:02:40,900
‫deve fare tutto il lavoro dell'avvio iniziale.

35
00:02:40,900 --> 00:02:43,650
‫Questo è il modo in cui sai che sta usando lo stesso

36
00:02:43,660 --> 00:02:48,050
‫volume chiamato è che la seconda volta che si avvia, può avere solo quattro o cinque voci di registro.

37
00:02:48,310 --> 00:02:50,070
‫Quindi questo è uno scenario del mondo reale.

38
00:02:50,070 --> 00:02:54,860
‫Lo farai se esegui mai database di produzione o tutto ciò che ti serve per essere aggiornato.

39
00:02:55,000 --> 00:03:00,700
‫Si noti che la maggior parte dei sistemi di database non esegue automaticamente aggiornamenti importanti.

40
00:03:00,700 --> 00:03:05,470
‫Di solito richiede uno strumento. uno strumento separato per ognuno di essi che devi eseguire.

41
00:03:05,470 --> 00:03:06,670
‫Con postgres o MySQL, c'è

42
00:03:06,670 --> 00:03:12,310
‫Si tratta in realtà solo di aggiornare le versioni delle patch o quell'ultimo numero che

43
00:03:12,310 --> 00:03:16,800
‫non richiede modifiche allo schema o aggiornamenti importanti al codice dati stesso.

44
00:03:16,870 --> 00:03:18,080
‫Come prima, se

45
00:03:18,160 --> 00:03:24,400
‫rimani bloccato, non preoccuparti perché questa è una novità e potrebbe non essere così chiara in Docker Hub.

46
00:03:24,730 --> 00:03:28,120
‫Se ti blocchi a un certo punto e Docker Hub non ti

47
00:03:28,120 --> 00:03:33,180
‫aiuta, basta controllare la prossima lezione, che sono io che sto facendo lo stesso esercizio come farei io.

48
00:03:33,190 --> 00:03:33,550
‫In bocca al lupo.

