﻿1
00:00:04,670 --> 00:00:10,720
‫Oke. Nu je alles hebt geleerd over volumes en bind-mounts, en

2
00:00:10,720 --> 00:00:16,120
‫waarom we ons zorgen moeten maken over persistente gegevens, gaan we iets doen dat realistisch is, namelijk database-upgrades.

3
00:00:16,120 --> 00:00:21,250
‫Stelt u zich een situatie voor waarin u een bepaalde versie van een database gebruikt.

4
00:00:21,250 --> 00:00:28,210
‫Laten we zeggen postgres, en je moet de patchversie bijwerken omdat er misschien een beveiligingsoplossing is,

5
00:00:28,210 --> 00:00:30,490
‫of een bugfix, of zoiets.

6
00:00:30,490 --> 00:00:36,730
‫Normaal gesproken zou u op een systeem de software gewoon bijwerken. Je zou een update of upgrade van het pakketbeheersysteem

7
00:00:37,030 --> 00:00:41,340
‫uitvoeren en het zou alle updates voor de bibliotheken en alles zelf afhandelen.

8
00:00:41,650 --> 00:00:43,090
‫Maar hoe doen we dat in een container?

9
00:00:43,180 --> 00:00:48,700
‫Want als we proberen de best practice te volgen om applicaties in containers niet bij te werken, maar de container

10
00:00:48,700 --> 00:00:52,810
‫te vervangen door een nieuwe versie, hoe doen we dat dan met de database?

11
00:00:52,810 --> 00:00:58,990
‫Wat je voor deze opdracht gaat doen, is dat je Docker Hub gaat gebruiken om informatie te krijgen over het

12
00:00:59,110 --> 00:01:03,910
‫bijwerken van de specifieke versie van postgres. We beginnen met het specifiek maken van

13
00:01:03,910 --> 00:01:12,100
‫een container met versie 9. 6. 1, wat een oudere versie is. En u zult een benoemd volume moeten maken.

14
00:01:12,100 --> 00:01:18,820
‫Je zult hiervoor op de documentatie van Docker Hub moeten leunen, met behulp van de officiële postgres-repository.

15
00:01:19,270 --> 00:01:23,920
‫U moet naar de Dockerfile voor die specifieke versie gaan en leren

16
00:01:23,920 --> 00:01:28,260
‫wat het volumepad moet zijn. Vervolgens kunt u aan de linkerkant uw volume een naam geven die u maar wilt.

17
00:01:28,270 --> 00:01:33,040
‫Maar onthoud die dubbele punt aan de rechterkant ervan, dat moet het pad zijn waar de daadwerkelijke

18
00:01:33,040 --> 00:01:34,590
‫databases in de container komen.

19
00:01:34,810 --> 00:01:38,680
‫Als je dat allemaal doorhebt en je container hebt gestart, zou je de logs moeten gaan controleren om te zien wanneer

20
00:01:38,680 --> 00:01:43,390
‫het klaar is met het maken van de databases en alle opstartdingen. Omdat de eerste keer dat

21
00:01:43,390 --> 00:01:47,680
‫u een databasecontainer start, deze meestal een heleboel dingen op de achtergrond

22
00:01:47,710 --> 00:01:51,810
‫doet, zoals het maken van de admin-gebruiker en een standaarddatabase, enzovoort.

23
00:01:51,820 --> 00:01:55,660
‫Er zal een punt zijn waarop de logboeken zullen stoppen en dan zal het gewoon worden uitgevoerd.

24
00:01:55,660 --> 00:02:02,530
‫Als je het correct hebt gedaan, kun je een docker-volume ls doen en het volume daar zien, met de naam die je het hebt gegeven,

25
00:02:02,620 --> 00:02:07,630
‫en je zou die container moeten kunnen stoppen. Vervolgens ga je een nieuwe

26
00:02:07,660 --> 00:02:10,560
‫container maken met een nieuwe versie.

27
00:02:10,630 --> 00:02:16,300
‫Het zal een zeer vergelijkbare opdracht zijn als de eerste, alleen specificeer je een andere versie, je moet

28
00:02:16,310 --> 00:02:22,780
‫er ook voor zorgen dat je hetzelfde volume met dezelfde naam wilt specificeren, omdat het de gegevens moet gebruiken die je

29
00:02:22,780 --> 00:02:24,420
‫in de eerste hebt gebruikt.

30
00:02:24,460 --> 00:02:28,060
‫Zorg er natuurlijk voor dat u de eerste stopt, omdat deze niet beide tegelijkertijd

31
00:02:28,060 --> 00:02:29,450
‫toegang hebben tot dezelfde gegevens.

32
00:02:29,680 --> 00:02:33,730
‫Als je eenmaal bent begonnen, ga je gang en controleer je de logboeken opnieuw voor die nieuwe container.

33
00:02:34,000 --> 00:02:38,980
‫Wat je zou moeten zien, is dat het maar een paar regels opstartlogboeken heeft, omdat het niet al het werk van

34
00:02:38,980 --> 00:02:40,900
‫de eerste keer opstarten hoeft te doen.

35
00:02:40,900 --> 00:02:43,650
‫Dat is een soort van hoe je weet dat het hetzelfde

36
00:02:43,660 --> 00:02:48,050
‫benoemde volume gebruikt, is dat de tweede keer dat het opstart, het misschien maar vier of vijf logboekvermeldingen heeft.

37
00:02:48,310 --> 00:02:50,070
‫Dit is dus een realistisch scenario.

38
00:02:50,070 --> 00:02:54,860
‫U zult dit doen als u ooit productiedatabases uitvoert of iets dat u up-to-date moet houden.

39
00:02:55,000 --> 00:03:00,700
‫Houd er rekening mee dat de meeste databasesystemen grote upgrades niet automatisch uitvoeren.

40
00:03:00,700 --> 00:03:05,470
‫Er is meestal een hulpmiddel voor nodig. Met postgres of MySQL is er een aparte tool voor elk van

41
00:03:05,470 --> 00:03:06,670
‫hen die je moet uitvoeren.

42
00:03:06,670 --> 00:03:12,310
‫Dit gaat eigenlijk alleen maar over het upgraden van de patchversies of dat laatste nummer waarvoor

43
00:03:12,310 --> 00:03:16,800
‫geen schemawijzigingen of grote updates van de gegevenscode zelf nodig zijn.

44
00:03:16,870 --> 00:03:18,080
‫Zoals eerder, als

45
00:03:18,160 --> 00:03:24,400
‫je vastloopt, geen zorgen, want dit is nieuw en het is misschien niet zo duidelijk in Docker Hub.

46
00:03:24,730 --> 00:03:28,120
‫Als je op een gegeven moment vastloopt en Docker Hub je niet

47
00:03:28,120 --> 00:03:33,180
‫helpt, kijk dan gewoon naar de volgende lezing, waarin ik dezelfde oefening doorloop als ik het zou doen.

48
00:03:33,190 --> 00:03:33,550
‫Veel geluk.

