﻿1
00:00:02,530 --> 00:00:10,610
‫Dans cette conférence, nous allons parler de montage de liaison et de données persistantes dans ces montages. Les exigences sont vraiment que vous sachiez simplement sur

2
00:00:10,610 --> 00:00:15,300
‫la gestion des conteneurs et sur la façon de les exécuter.

3
00:00:15,320 --> 00:00:20,230
‫Sautons dans. Parlons de fixations. Ils sont en fait assez cool.

4
00:00:20,240 --> 00:00:25,550
‫Quand j’en ai entendu parler pour la première fois, cela m’a donné une idée de la façon dont je pouvais utiliser Docker facilement pour le

5
00:00:25,550 --> 00:00:26,180
‫développement local.

6
00:00:26,180 --> 00:00:33,380
‫En réalité, un montage lié est simplement un mappage des fichiers hôtes, ou répertoires, dans un fichier conteneur ou

7
00:00:33,380 --> 00:00:35,330
‫un répertoire. Vous pouvez faire juste cela.

8
00:00:35,330 --> 00:00:39,040
‫Vous pouvez spécifier un répertoire ou un seul fichier. En arrière-plan, il suffit

9
00:00:39,050 --> 00:00:43,780
‫simplement que les deux emplacements désignent les mêmes emplacements physiques sur le disque.

10
00:00:43,910 --> 00:00:49,730
‫Encore une fois, cela ignore réellement le système de fichiers UFS, comme le font les autres volumes, de sorte qu'il ne

11
00:00:49,730 --> 00:00:52,620
‫supprime pas votre emplacement hôte lorsque vous supprimez le conteneur.

12
00:00:52,640 --> 00:00:58,550
‫S'il existe des fichiers dans le conteneur auxquels vous mappez les fichiers hôte, ceux-ci sont gagnants. En fait, il ne supprime pas les

13
00:00:58,550 --> 00:01:03,650
‫fichiers dans le conteneur qu'il a écrasé, car il n'écrase rien dans

14
00:01:03,680 --> 00:01:04,770
‫le conteneur.

15
00:01:04,910 --> 00:01:07,100
‫C'est juste là tant que le montage lié existe.

16
00:01:07,100 --> 00:01:11,570
‫Dès que vous n'avez plus besoin de la liaison de montage et que vous réexécutez le conteneur sans

17
00:01:11,570 --> 00:01:17,650
‫celui-ci, vous voyez en fait les données sous-jacentes qui s'y trouvaient auparavant. Étant donné que les montages de liaison sont généralement spécifiques

18
00:01:17,660 --> 00:01:21,870
‫à l'hôte, ils ont besoin de données spécifiques sur le disque dur de l'hôte pour fonctionner.

19
00:01:21,890 --> 00:01:23,500
‫Vous ne pouvez pas les spécifier dans un fichier Docker.

20
00:01:23,510 --> 00:01:28,490
‫Vous devez les utiliser au moment de l'exécution lorsque vous utilisez la commande d'exécution du conteneur docker. Vous pouvez voir le format

21
00:01:28,490 --> 00:01:29,080
‫ici.

22
00:01:29,090 --> 00:01:33,980
‫C'est vraiment le -v que nous utilisions auparavant, uniquement du côté gauche du côlon,

23
00:01:34,100 --> 00:01:38,360
‫nous mettons en place un chemin complet plutôt qu'un simple nom.

24
00:01:38,360 --> 00:01:42,260
‫Et la manière dont Docker peut réellement faire la différence entre le volume nommé, comme nous le faisions il

25
00:01:42,410 --> 00:01:46,490
‫y a quelque temps, et le montage de liaison, est que le montage de liaison commence par une barre oblique.

26
00:01:46,490 --> 00:01:51,470
‫Sous Windows, vous remarquerez qu'il s'agit de deux barres obliques, d'une lettre de lecteur, puis de

27
00:01:51,470 --> 00:01:52,120
‫votre chemin.

28
00:01:52,130 --> 00:01:57,620
‫Tant que vous avez le côlon gauche et le côté droit, vous pouvez réellement mapper tout ce que vous voulez de

29
00:01:57,620 --> 00:02:01,860
‫l'hôte dans le conteneur, et vous pouvez également spécifier des éléments tels que la lecture seule.

30
00:02:01,880 --> 00:02:07,910
‫Le développement et l'exécution de services dans votre conteneur qui accèdent aux fichiers que vous

31
00:02:07,910 --> 00:02:12,940
‫utilisez sur votre hôte ou que vous modifiez sont particulièrement intéressants.

32
00:02:12,950 --> 00:02:14,720
‫Faisons-le avec Nginx.

33
00:02:14,930 --> 00:02:22,370
‫Si vous allez à la racine de notre référentiel pour ce cours, nous irons ensuite dans le répertoire Dockerfile

34
00:02:22,370 --> 00:02:24,750
‫sample 2. Maintenant nous étions ici plus tôt.

35
00:02:24,770 --> 00:02:28,580
‫Si vous vous en souvenez, il y a deux fichiers. Ceci est pour Nginx, non?

36
00:02:28,580 --> 00:02:36,530
‫Si nous examinons très rapidement le fichier Dockerfile, c'est assez simple. Il suffit de spécifier un répertoire de travail, puis de copier

37
00:02:36,560 --> 00:02:39,050
‫un fichier d'index dans ce répertoire.

38
00:02:39,050 --> 00:02:40,490
‫Il n'y a pas de volumes ici.

39
00:02:40,490 --> 00:02:45,290
‫Un montage de liaison ne nécessite pas de volume pour fonctionner, bien que l'on puisse certainement être là.

40
00:02:45,530 --> 00:02:52,590
‫L'hôte gagne toujours, tu te souviens? Donc, quand on fait un conteneur docker, on

41
00:02:52,630 --> 00:02:56,330
‫fait un -d ... nommons-le nginx.

42
00:02:56,390 --> 00:03:00,420
‫Donnons le port 8080 comme avant.

43
00:03:00,770 --> 00:03:06,470
‫Ensuite, nous allons lui donner le volume cette fois-ci. Et je dois lui dire que mon répertoire de travail actuel va

44
00:03:06,650 --> 00:03:12,230
‫être monté dans ce répertoire de travail dans le conteneur. Parce que mon fichier d'index est ici dans ce dossier,

45
00:03:12,230 --> 00:03:13,390
‫je veux qu'il

46
00:03:13,430 --> 00:03:19,040
‫soit dans le conteneur afin que je puisse le modifier ici, et il est vu en direct dans le conteneur.

47
00:03:19,040 --> 00:03:20,320
‫Cela aura donc un sens dans une seconde.

48
00:03:20,540 --> 00:03:24,280
‫Voici un petit conseil rapide. Au lieu de devoir calculer

49
00:03:24,290 --> 00:03:28,370
‫tout mon chemin et taper le tout, vous pouvez utiliser pwd ici comme ça.

50
00:03:28,460 --> 00:03:36,210
‫Ce qui est un raccourci shell qui dit, 'affiche le répertoire de travail et remplace cette commande par ce chemin.

51
00:03:36,380 --> 00:03:43,460
‫'Ensuite, nous allons simplement utiliser le même répertoire de travail du fichier Dockerfile, puis nous

52
00:03:43,460 --> 00:03:45,360
‫allons spécifier l'image Nginx.

53
00:03:47,590 --> 00:03:52,930
‫Ce que je vais faire très rapidement, c’est que je vais en fait ouvrir une autre fenêtre de terminal afin que nous puissions

54
00:03:52,930 --> 00:03:54,480
‫faire deux choses à la fois.

55
00:03:54,590 --> 00:03:56,010
‫Vous n'avez pas vraiment besoin de faire ça.

56
00:03:56,050 --> 00:04:01,840
‫Fondamentalement, nous allons simplement éditer le fichier sur notre hôte, puis je vais être dans le conteneur et voir ce

57
00:04:01,840 --> 00:04:02,780
‫qui se passe.

58
00:04:02,920 --> 00:04:04,730
‫Donc, juste pour être sûr que

59
00:04:04,780 --> 00:04:06,350
‫ça marche, allons chez localhost.

60
00:04:06,700 --> 00:04:10,000
‫OK, ce n'est donc pas le fichier HTML par défaut de Nginx.

61
00:04:10,030 --> 00:04:13,080
‫Et nous avons utilisé l'image normale de Nginx.

62
00:04:13,090 --> 00:04:16,580
‫Nous n'avons pas réellement utilisé le fichier personnalisé de ce répertoire.

63
00:04:16,690 --> 00:04:24,270
‫Nous venons d'utiliser une image de stock. Pour prouver ce point, nous pouvons en fait faire la

64
00:04:24,280 --> 00:04:37,390
‫même chose, commande exacte à nouveau, mais retirez -v et je l’exécuterai sur le port 8080 à la place. Et j'appellerai celui-ci nginx2.

65
00:04:37,420 --> 00:04:47,930
‫Si je vais sur mon navigateur et que je vais sur localhost 8080, c'est l'index nginx par défaut. fichier html.

66
00:04:48,010 --> 00:04:52,130
‫Celui-ci est le personnalisé que nous avons vivant dans ce répertoire.

67
00:04:52,780 --> 00:04:56,380
‫Donc, nous pouvons déjà voir qu'il l'a correctement cartographié.

68
00:04:56,560 --> 00:05:03,010
‫Si j'ouvre un autre onglet ici et obtenir une ligne de commande dans le conteneur.

69
00:05:08,800 --> 00:05:10,130
‫Ensuite, allez dans ce répertoire.

70
00:05:17,710 --> 00:05:21,580
‫Vous remarquerez que nous pouvons réellement voir le fichier Docker parce que nous cartographions tout le répertoire.

71
00:05:21,620 --> 00:05:27,460
‫Si à gauche, si nous avons créé un nouveau fichier et que je peux simplement utiliser cette commande tactile Linux ici pour

72
00:05:30,440 --> 00:05:37,010
‫créer un nouveau fichier. Puis à droite ... Oops... continue juste à oublier que ... ls -al, et vous le verrez

73
00:05:37,010 --> 00:05:37,900
‫dans votre fichier.

74
00:05:37,970 --> 00:05:43,350
‫Espérons que vous comprenez ce qui se passe ici, que ces deux endroits sont les mêmes.

75
00:05:43,370 --> 00:05:47,350
‫Et si j'ai répercuté quelque chose dans ce fichier testme,

76
00:05:57,430 --> 00:05:58,420
‫puis ...

77
00:06:01,620 --> 00:06:02,410
‫Voilà.

78
00:06:02,410 --> 00:06:06,670
‫Notre nginx est capable de voir les modifications car il s’agit d’un chemin de fichier normal dans le conteneur

79
00:06:06,670 --> 00:06:08,720
‫et que ces fichiers se trouvent sur l’hôte.

80
00:06:08,830 --> 00:06:12,670
‫Si je devais les supprimer dans le conteneur, ils seraient supprimés sur l'hôte car il s'agit du

81
00:06:12,670 --> 00:06:13,210
‫même fichier.

82
00:06:13,210 --> 00:06:19,090
‫C'est à ce moment-là que j'ai l'habitude de demander à un développeur de penser à tous ses

83
00:06:19,090 --> 00:06:24,670
‫environnements de développement qui sont cette configuration compliquée. Ils utilisent peut-être Vagrant, ou une autre méthode

84
00:06:24,670 --> 00:06:30,880
‫manuelle pour configurer leur environnement parfait, et ils peuvent commencer à comprendre comment cela pourrait rendre cela beaucoup plus simple.

85
00:06:31,330 --> 00:06:35,920
‫Comme je n'avais pas à effectuer de configuration compliquée sur mon Mac, j'ai simplement exécuté un conteneur.

86
00:06:35,920 --> 00:06:43,670
‫J'ai utilisé la commande -v avec le montage, et maintenant mon code, sur mon hôte, peut être modifié sur mon hôte.

87
00:06:43,840 --> 00:06:47,890
‫Et je n'ai jamais vraiment besoin d'entrer dans la coque du conteneur.

88
00:06:47,890 --> 00:06:52,570
‫En général, vous pouvez simplement exécuter le conteneur et consulter ses journaux pour voir s’il ya des erreurs pendant

89
00:06:52,570 --> 00:06:53,260
‫le codage.

90
00:06:53,500 --> 00:06:58,750
‫Bien entendu, ceci est un exemple simple avec Nginx. Plus tard, nous aurons en fait des

91
00:06:58,750 --> 00:07:03,160
‫exemples spécifiques de différents environnements de développement pour le développement local et les conteneurs.

