0 00:00:00.019 --> 00:00:00.050 n 1 00:00:00.159 --> 00:00:03.740 ans cette vidéo, je vais vous apprendre tous les principaux concepts de docker, 2 00:00:03.750 --> 00:00:07.250 y compris l'acquisition de votre première expérience pratique. 3 00:00:07.460 --> 00:00:09.819 onc, si vous devez utiliser docker au travail, 4 00:00:09.829 --> 00:00:14.300 u si vous avez besoin d'apprendre Docker pour améliorer vos compétences en ingénierie et que vous devez 5 00:00:14.310 --> 00:00:17.250 commencé rapidement et j'ai compris tous les concepts principaux et 6 00:00:17.260 --> 00:00:19.659 écouvrez les bases de l'utilisation de Docker, 7 00:00:19.870 --> 00:00:24.459 e cours intensif vous convient parfaitement. Nous allons d'abord commencer par 8 00:00:24.620 --> 00:00:25.040 t que faire 9 00:00:25.239 --> 00:00:27.479 'est pourquoi il a même été créé en gros, 10 00:00:27.489 --> 00:00:30.770 uels problèmes cela résout en ingénierie et comment 11 00:00:30.780 --> 00:00:33.529 ela aide au développement et au processus de déploiement de logiciels. 12 00:00:33.650 --> 00:00:35.560 ous comprendrez donc exactement pourquoi 13 00:00:35.759 --> 00:00:41.689 st un gros problème et c'est pourquoi il est devenu si populaire et largement utilisé dans les projets informatiques 14 00:00:42.119 --> 00:00:45.479 t dans le cadre d'une solution de virtualisation, doer 15 00:00:45.709 --> 00:00:50.770 tant une amélioration par rapport aux machines virtuelles ou la prochaine étape d'évolution, 16 00:00:50.779 --> 00:00:54.330 e vais également expliquer la différence entre une machine virtuelle et une machine plus foncée, 17 00:00:54.340 --> 00:00:56.430 t quels sont les avantages de 18 00:00:56.639 --> 00:00:58.099 cteur dans cette comparaison. 19 00:00:58.299 --> 00:01:00.810 près avoir compris pourquoi nous voulons utiliser do 20 00:01:01.029 --> 00:01:03.209 n premier lieu, nous allons installer 21 00:01:03.450 --> 00:01:07.209 aiseur et apprenez à réellement travailler avec. Nous allons apprendre les concepts de 22 00:01:07.349 --> 00:01:09.589 mages de l'acteur, conteneurs, plus sombres 23 00:01:09.690 --> 00:01:12.160 egistre, registres publics et privés, 24 00:01:12.169 --> 00:01:18.580 t nous exécuterons des conteneurs localement en fonction de certaines des images disponibles sur Docker 25 00:01:18.790 --> 00:01:21.010 egistre public appelé Docker Hub. 26 00:01:21.260 --> 00:01:24.480 ous allons également apprendre le concept de création de vos propres images 27 00:01:24.489 --> 00:01:28.430 t en savoir plus sur le plan d'image Docker appelé Docker File. 28 00:01:28.589 --> 00:01:29.160 t bien sûr, 29 00:01:29.169 --> 00:01:33.540 ous allons voir tout cela en action et apprendre toutes les commandes docker pour extraire des images, 30 00:01:33.550 --> 00:01:37.199 xécuter des conteneurs, créer votre propre image Docker, etc. 31 00:01:37.440 --> 00:01:42.139 ous allons également en apprendre davantage sur le versionnage d'images avec du texte d'image, et enfin, 32 00:01:42.150 --> 00:01:44.720 près avoir appris à travailler avec Docker, 33 00:01:44.730 --> 00:01:48.580 e vais également expliquer avec des animations graphiques comment 34 00:01:48.790 --> 00:01:53.370 'inscrit dans la vue d'ensemble du processus de développement et de déploiement de logiciels. 35 00:01:53.379 --> 00:01:54.910 onc, à la fin de cette vidéo, 36 00:01:54.919 --> 00:01:59.250 ous aurez beaucoup plus confiance en vos connaissances et votre compréhension en 37 00:01:59.449 --> 00:01:59.730 ures 38 00:01:59.919 --> 00:02:03.209 t peut facilement s'appuyer sur ces connaissances de base 39 00:02:03.325 --> 00:02:06.335 our devenir un utilisateur expérimenté de Docker si vous le souhaitez. 40 00:02:06.575 --> 00:02:08.015 t sous la description de la vidéo, 41 00:02:08.026 --> 00:02:11.595 e vais fournir quelques ressources pour en savoir encore plus sur Docker 42 00:02:11.766 --> 00:02:15.656 t devenez plus avancé dans ce domaine. Mais avant de nous lancer, 43 00:02:15.886 --> 00:02:18.035 l semble que vous êtes nombreux à regarder le 44 00:02:18.046 --> 00:02:21.095 idéos de notre chaîne ne sont toujours pas abonnées, 45 00:02:21.106 --> 00:02:23.695 onc si vous tirez parti de 46 00:02:23.705 --> 00:02:26.716 utoriels gratuits que je publie régulièrement sur cette chaîne, 47 00:02:26.725 --> 00:02:31.322 ssurez-vous de ne pas vous abonner à moi, à de futures vidéos ou tutoriels. 48 00:02:31.332 --> 00:02:35.272 e serais également heureuse de communiquer avec vous sur mes autres comptes de réseaux sociaux, 49 00:02:35.281 --> 00:02:39.841 ù je publie du contenu en coulisses, des mises à jour hebdomadaires, etc. 50 00:02:40.011 --> 00:02:42.602 'espère donc pouvoir communiquer avec vous là-bas également. 51 00:02:42.611 --> 00:02:47.462 h bien, je suis très heureuse de vous apprendre tout cela, alors allons-y. 52 00:02:47.761 --> 00:02:51.022 ommençons par la question la plus importante. Qu'est-ce que faire ? 53 00:02:51.261 --> 00:02:54.981 ourquoi a-t-il même été créé ? Et quel problème cela résout-il ? 54 00:02:58.199 --> 00:03:02.119 n termes simples, Docker est un logiciel de virtualisation 55 00:03:02.229 --> 00:03:05.899 ui facilite le développement et le déploiement d'applications, 56 00:03:06.240 --> 00:03:10.669 eaucoup plus facile que ce qui était fait avant l'introduction de Docker. 57 00:03:10.899 --> 00:03:14.460 t Docker le fait en empaquetant une application 58 00:03:14.630 --> 00:03:17.660 ans ce que l'on appelle un conteneur qui a 59 00:03:17.669 --> 00:03:20.169 out ce dont l'application a besoin pour fonctionner, 60 00:03:20.360 --> 00:03:24.300 omme le code de l'application lui-même, ses bibliothèques et ses dépendances, 61 00:03:24.330 --> 00:03:27.820 ais aussi le temps d'exécution et la configuration de l'environnement. 62 00:03:28.259 --> 00:03:31.210 onc, l'application et son environnement d'exécution sont 63 00:03:31.220 --> 00:03:35.229 ous deux regroupés dans un seul package docker, 64 00:03:35.240 --> 00:03:37.619 ue vous pouvez facilement partager et distribuer. 65 00:03:38.029 --> 00:03:40.369 aintenant, pourquoi est-ce un gros problème, 66 00:03:40.380 --> 00:03:42.570 t comment les applications ont-elles été réellement développées 67 00:03:42.580 --> 00:03:45.750 t déployé avant l'introduction de Docker. 68 00:03:46.100 --> 00:03:50.770 oyons cela pour mieux comprendre les avantages de Docker. 69 00:03:54.429 --> 00:03:57.940 lors, comment avons-nous développé des applications avant les conteneurs ? 70 00:03:58.320 --> 00:04:01.610 abituellement, lorsque vous avez une équipe de développeurs qui travaille sur une application, 71 00:04:01.649 --> 00:04:04.190 ls devraient installer tous les services. 72 00:04:04.199 --> 00:04:05.240 ette application 73 00:04:05.350 --> 00:04:07.929 épend de nos besoins, tels que les services de base de données, 74 00:04:07.940 --> 00:04:10.960 t cetera directement sur leur système d'exploitation. 75 00:04:10.970 --> 00:04:11.419 'est vrai. 76 00:04:11.550 --> 00:04:15.800 ar exemple, si vous développez une application JavaScript et que vous avez besoin d'une publication 77 00:04:16.149 --> 00:04:17.369 ase de données SQL, 78 00:04:17.640 --> 00:04:18.769 eut-être avez-vous besoin 79 00:04:19.070 --> 00:04:24.429 pour encaisser un moustique pour envoyer des messages. Comme si vous avez une application de micro-service. 80 00:04:24.910 --> 00:04:28.920 ous avez maintenant besoin de tous ces services localement sur votre environnement de développement 81 00:04:28.929 --> 00:04:32.269 fin que vous puissiez réellement développer et tester correctement l'application, 82 00:04:32.649 --> 00:04:38.420 t chaque développeur de l'équipe devrait ensuite installer tous ces services, 83 00:04:38.429 --> 00:04:42.890 es configurer et les exécuter dans leur environnement de développement local 84 00:04:42.899 --> 00:04:46.160 t selon le système d'exploitation qu'ils utilisent, 85 00:04:46.279 --> 00:04:48.640 e processus d'installation sera différent 86 00:04:48.970 --> 00:04:50.130 arce que l'installation d'un post 87 00:04:50.470 --> 00:04:51.660 ase de données QL sur 88 00:04:51.779 --> 00:04:52.079 i 89 00:04:52.339 --> 00:04:56.339 e système d'exploitation est différent de son installation sur une machine Windows, par exemple, 90 00:04:56.619 --> 00:04:59.859 ne autre chose avec l'installation de services directement sur 91 00:04:59.869 --> 00:05:03.049 n système d'exploitation suivant un guide d'installation 92 00:05:03.149 --> 00:05:07.380 c'est qu'il y a généralement plusieurs étapes d'installation, 93 00:05:07.579 --> 00:05:09.700 puis configuration du service. 94 00:05:09.730 --> 00:05:13.109 onc, avec plusieurs commandes que vous devez exécuter pour installer, 95 00:05:13.119 --> 00:05:15.010 onfigurer et configurer le service, 96 00:05:15.019 --> 00:05:20.429 es chances que quelque chose ne tourne pas rond et qu'une erreur se produise sont en fait assez élevées. 97 00:05:20.440 --> 00:05:21.309 t cette approche, 98 00:05:21.320 --> 00:05:25.535 u ce processus de configuration d'un environnement de développement pour un développeur, 99 00:05:25.545 --> 00:05:30.765 eut en fait être assez fastidieux, selon la complexité de votre application. 100 00:05:30.774 --> 00:05:34.695 ar exemple, si votre application utilise 10 services, 101 00:05:34.954 --> 00:05:41.214 lors vous devrez effectuer cette installation 10 fois pour chaque service. 102 00:05:41.225 --> 00:05:41.695 t encore une fois, 103 00:05:41.704 --> 00:05:44.795 ela différera au sein de l'équipe en fonction de 104 00:05:44.804 --> 00:05:47.195 uel système d'exploitation utilise chaque développeur. 105 00:05:47.464 --> 00:05:51.635 oyons maintenant comment les conteneurs résolvent certains de ces problèmes 106 00:05:51.970 --> 00:05:52.940 vec des conteneurs. 107 00:05:52.950 --> 00:05:55.040 ous n'avez en fait pas besoin d'en installer 108 00:05:55.049 --> 00:05:57.880 es services directement sur votre système d'exploitation, 109 00:05:58.019 --> 00:06:04.089 ar avec Docker, ce service est regroupé dans un environnement isolé. 110 00:06:04.170 --> 00:06:04.940 ous avez donc 111 00:06:05.260 --> 00:06:10.170 ffiche QL avec une version spécifique empaquetée avec toute sa configuration 112 00:06:10.380 --> 00:06:12.000 l'intérieur d'un conteneur. 113 00:06:12.220 --> 00:06:16.950 onc, en tant que développeur, vous n'avez pas à chercher des binaires 114 00:06:17.100 --> 00:06:19.750 our télécharger et installer sur votre machine. 115 00:06:19.869 --> 00:06:22.630 ais il suffit de lancer ce service 116 00:06:22.640 --> 00:06:27.029 n tant que conteneur docker à l'aide d'une seule commande docker, 117 00:06:27.049 --> 00:06:30.559 ui récupère le package de conteneurs depuis Internet 118 00:06:30.739 --> 00:06:32.750 t le démarre sur votre ordinateur 119 00:06:33.170 --> 00:06:35.299 t la commande docker sera la même 120 00:06:35.309 --> 00:06:38.690 uel que soit le système d'exploitation que vous utilisez, 121 00:06:38.809 --> 00:06:42.709 t ce sera également le même quel que soit le service que vous installez. 122 00:06:42.720 --> 00:06:46.149 onc, si vous avez 10 services dont dépend votre application JavaScript, 123 00:06:46.230 --> 00:06:52.079 ous n'auriez qu'à exécuter 10 commandes docker pour chaque conteneur, et ce sera tout. 124 00:06:52.380 --> 00:06:55.239 onc, comme vous le voyez, les standards de Docker, 125 00:06:55.250 --> 00:06:58.269 e processus d'exécution de n'importe quel service sur votre développement 126 00:06:58.279 --> 00:07:01.769 nvironnement et facilite grandement l'ensemble du processus. 127 00:07:01.790 --> 00:07:05.239 ous pouvez donc vous concentrer et travailler davantage sur le développement 128 00:07:05.250 --> 00:07:08.510 'essayer d'installer et de configurer des services sur votre machine. 129 00:07:09.019 --> 00:07:13.269 t cela facilite évidemment la mise en place de votre environnement de développement local 130 00:07:13.429 --> 00:07:16.070 eaucoup plus rapide et plus facile que 131 00:07:16.299 --> 00:07:19.010 'option sans conteneurs. 132 00:07:19.190 --> 00:07:21.089 e plus, avec le Docker, 133 00:07:21.100 --> 00:07:24.519 ous pouvez même avoir différentes versions de la même application 134 00:07:24.570 --> 00:07:28.535 'exécutant sur votre environnement local sans aucun conflit, 135 00:07:28.545 --> 00:07:30.774 e qui est très difficile à faire 136 00:07:30.934 --> 00:07:33.904 i vous installez la même application avec 137 00:07:33.915 --> 00:07:36.565 ifférentes versions directement sur votre système d'exploitation, 138 00:07:36.855 --> 00:07:41.975 t nous verrons tout cela en action dans la partie démo de cette vidéo. 139 00:07:42.105 --> 00:07:46.605 oyons maintenant comment les conteneurs peuvent améliorer le processus de déploiement des applications 140 00:07:46.924 --> 00:07:50.994 vant les conteneurs. Un processus de déploiement traditionnel ressemblerait à ceci 141 00:07:51.500 --> 00:07:55.910 'équipe de développement produirait un artefact d'application ou un package 142 00:07:56.059 --> 00:07:59.410 vec un ensemble d'instructions sur la façon de 143 00:07:59.420 --> 00:08:03.380 nstallez et configurez ce package d'application sur le serveur. 144 00:08:03.390 --> 00:08:06.920 ous auriez donc quelque chose comme un fichier jar pour le travail 145 00:08:06.929 --> 00:08:11.140 pplication ou quelque chose de similaire selon le langage de programmation utilisé. 146 00:08:11.529 --> 00:08:13.190 t en plus, bien sûr, 147 00:08:13.200 --> 00:08:15.700 ous auriez une sorte de service de base de données 148 00:08:15.709 --> 00:08:18.339 u d'autres services dont votre application avait besoin, 149 00:08:18.489 --> 00:08:21.450 galement avec un ensemble d'instructions sur la façon de configurer 150 00:08:21.600 --> 00:08:26.420 t configurez-le sur le serveur afin que l'application puisse s'y connecter et l'utiliser. 151 00:08:26.690 --> 00:08:28.920 'équipe de développement donnerait donc cette application 152 00:08:28.929 --> 00:08:32.950 rtefact ou colis remis à l'équipe des opérations, 153 00:08:33.130 --> 00:08:34.489 t l'équipe des opérations 154 00:08:34.690 --> 00:08:36.510 érerait l'installation 155 00:08:36.710 --> 00:08:38.510 t configuration de l'application 156 00:08:38.760 --> 00:08:41.659 t tous ses services client comme la base de données, par exemple. 157 00:08:41.669 --> 00:08:44.880 aintenant, le problème avec ce type d'approche est que tout d'abord, 158 00:08:44.890 --> 00:08:47.880 ous devez tout configurer et tout installer 159 00:08:48.049 --> 00:08:52.109 ncore une fois directement sur le système d'exploitation, que j'ai mentionné 160 00:08:52.489 --> 00:08:55.659 ans un contexte de développement qui est en fait très sujet aux erreurs, 161 00:08:55.669 --> 00:08:59.520 t vous pouvez rencontrer différents problèmes au cours du processus d'installation. 162 00:08:59.539 --> 00:09:03.330 ous pouvez également avoir des conflits avec les versions de dépendance où 163 00:09:03.340 --> 00:09:06.000 eux services dépendent de la même bibliothèque, 164 00:09:06.010 --> 00:09:08.070 ar exemple, mais avec des versions différentes. 165 00:09:08.080 --> 00:09:09.239 t quand cela se produit, 166 00:09:09.250 --> 00:09:12.659 ela va rendre le processus de configuration bien plus difficile et complexe. 167 00:09:12.700 --> 00:09:16.530 onc, en gros, beaucoup de choses peuvent mal tourner lors des opérations 168 00:09:16.539 --> 00:09:21.780 'équipe installe et configure des applications et des services sur un serveur. 169 00:09:22.330 --> 00:09:25.830 n autre problème qui pourrait découler de ce type de processus est 170 00:09:25.960 --> 00:09:28.750 n cas de problème de communication entre 171 00:09:28.820 --> 00:09:31.500 'équipe de développement et l'équipe des opérations. 172 00:09:31.880 --> 00:09:35.440 arce que puisque tout est dans un guide textuel, 173 00:09:35.450 --> 00:09:40.559 omme une liste d'instructions expliquant comment configurer et exécuter l'application, 174 00:09:40.729 --> 00:09:42.489 u peut-être une sorte de liste de contrôle, 175 00:09:42.500 --> 00:09:45.400 l peut y avoir des cas où les développeurs oublient 176 00:09:45.409 --> 00:09:47.989 our mentionner une étape importante concernant la configuration. 177 00:09:48.000 --> 00:09:49.880 t quand cette partie échoue, 178 00:09:49.890 --> 00:09:55.565 'équipe des opérations doit retourner voir les développeurs et leur demander plus de détails et de commentaires. 179 00:09:55.684 --> 00:09:58.585 t cela pourrait mener à des communications dans les deux sens 180 00:09:58.594 --> 00:10:02.025 usqu'à ce que l'application soit correctement déployée sur le serveur. 181 00:10:02.034 --> 00:10:05.494 onc, en gros, vous avez cette surcharge de communication supplémentaire où 182 00:10:05.505 --> 00:10:09.094 es développeurs doivent communiquer sous forme de texte 183 00:10:09.275 --> 00:10:11.705 raphique quel que soit le format, 184 00:10:11.815 --> 00:10:13.744 omment l'application doit s'exécuter, 185 00:10:13.994 --> 00:10:17.275 t comme je l'ai mentionné, cela pourrait entraîner des problèmes et des problèmes de communication 186 00:10:17.469 --> 00:10:21.820 vec des conteneurs. Ce processus est en fait simplifié car 187 00:10:22.080 --> 00:10:25.549 es développeurs créent maintenant un package d'application 188 00:10:25.700 --> 00:10:28.309 ui n'inclut pas seulement le code lui-même, 189 00:10:28.320 --> 00:10:33.109 ais aussi toutes les dépendances et la configuration de l'application. 190 00:10:33.119 --> 00:10:36.789 onc, au lieu d'avoir à écrire cela dans un format texte et un document, 191 00:10:37.020 --> 00:10:41.270 ls empaquetent simplement tout cela dans l'artefact de l'application. 192 00:10:41.280 --> 00:10:44.409 t comme il est déjà encapsulé dans un seul environnement, 193 00:10:44.995 --> 00:10:47.645 es opérations que les gens n'ont pas à configurer 194 00:10:47.656 --> 00:10:49.755 e tout cela directement sur le serveur. 195 00:10:49.765 --> 00:10:53.125 ela facilite donc l'ensemble du processus. 196 00:10:53.226 --> 00:10:57.185 t il y a moins de place pour les problèmes que j'ai mentionnés précédemment. 197 00:10:57.375 --> 00:11:00.846 onc, la seule chose que l'équipe des opérations doit faire maintenant dans ce cas 198 00:11:00.856 --> 00:11:06.945 onsiste à exécuter une commande docker qui obtient le package de conteneur créé par les développeurs 199 00:11:07.096 --> 00:11:08.955 t l'exécute sur le serveur. 200 00:11:09.135 --> 00:11:11.426 e la même manière que l'équipe des opérations gérera un service 201 00:11:11.771 --> 00:11:15.471 ont l'application a également besoin en tant que conteneurs Docker, 202 00:11:15.502 --> 00:11:19.901 t cela facilite considérablement le processus de déploiement du côté opérationnel. 203 00:11:19.911 --> 00:11:20.661 aintenant, bien sûr, 204 00:11:20.671 --> 00:11:23.651 'équipe des opérations devra installer et configurer le docker run 205 00:11:23.661 --> 00:11:28.012 ois sur le serveur avant qu'ils ne puissent exécuter des conteneurs. 206 00:11:28.091 --> 00:11:32.781 ais ce n'est qu'un effort ponctuel pour un service ou une technologie. 207 00:11:32.901 --> 00:11:35.541 t une fois que Docker Run Time est installé, 208 00:11:35.552 --> 00:11:38.382 ous pouvez simplement exécuter des conteneurs Docker sur ce serveur 209 00:11:41.780 --> 00:11:46.770 aintenant. Au début, j'ai mentionné que Docker est un outil de virtualisation 210 00:11:46.969 --> 00:11:52.109 omme une machine virtuelle, et les machines virtuelles existent depuis longtemps. 211 00:11:52.289 --> 00:11:55.229 lors pourquoi le dark a-t-il été si largement adopté ? 212 00:11:55.239 --> 00:11:58.950 uels sont ses avantages par rapport aux machines virtuelles, 213 00:11:58.960 --> 00:12:00.799 t quelle est la différence entre les deux ? 214 00:12:01.070 --> 00:12:03.739 our cela, nous devons voir un peu comment procéder 215 00:12:03.960 --> 00:12:05.890 onctionne sur le plan technique. 216 00:12:06.099 --> 00:12:07.809 'ai aussi dit qu'avec Docker, 217 00:12:07.820 --> 00:12:11.500 ous n'avez pas besoin d'installer les services directement sur le système d'exploitation. 218 00:12:11.679 --> 00:12:12.270 ais 219 00:12:12.520 --> 00:12:17.510 ans ce cas, comment Docker gère-t-il ses conteneurs sur un système d'exploitation ? 220 00:12:17.700 --> 00:12:19.679 aintenant, pour comprendre tout cela, 221 00:12:19.849 --> 00:12:23.909 oyons d'abord comment est composé un système d'exploitation. 222 00:12:23.919 --> 00:12:26.130 es systèmes d'exploitation comportent deux couches principales. 223 00:12:26.309 --> 00:12:28.369 ous avez le noyau du système d'exploitation 224 00:12:28.559 --> 00:12:31.669 t les applications du système d'exploitation. Couche 225 00:12:32.039 --> 00:12:37.989 t le noyau est la partie qui communique avec les composants matériels tels que le processeur, 226 00:12:38.000 --> 00:12:39.969 tockage en mémoire, etc. 227 00:12:39.979 --> 00:12:42.289 onc, lorsque vous avez une machine physique 228 00:12:42.409 --> 00:12:45.909 vec toutes ces ressources et vous installez le système d'exploitation 229 00:12:46.159 --> 00:12:47.710 ur cette machine physique, 230 00:12:47.859 --> 00:12:50.494 e noyau du système d'exploitation sera en fait 231 00:12:50.505 --> 00:12:53.244 oyez celui qui parle aux composants matériels 232 00:12:53.354 --> 00:12:57.354 our allouer des ressources telles que le stockage de la mémoire du processeur, etc. 233 00:12:57.515 --> 00:13:01.255 ux applications, puis en cours d'exécution sur ce système d'exploitation. 234 00:13:01.364 --> 00:13:05.005 t ces applications font partie de la couche applications, 235 00:13:05.114 --> 00:13:07.505 t ils s'exécutent au-dessus de la couche noyau. 236 00:13:07.840 --> 00:13:12.049 e noyau est donc une sorte d'intermédiaire entre les applications que vous voyez 237 00:13:12.169 --> 00:13:14.409 orsque vous interagissez avec votre ordinateur 238 00:13:14.520 --> 00:13:17.770 t le matériel sous-jacent de votre ordinateur. 239 00:13:17.950 --> 00:13:23.950 t maintenant, puisque Docker et Virtual Machine sont tous deux des outils de virtualisation, 240 00:13:23.960 --> 00:13:25.340 a question est 241 00:13:25.500 --> 00:13:30.549 uelle partie du système d'exploitation virtualisent-ils réellement ? 242 00:13:30.630 --> 00:13:32.289 t c'est là que la principale différence 243 00:13:32.299 --> 00:13:34.765 ntre Docker et les machines virtuelles, en fait, comme 244 00:13:34.955 --> 00:13:38.005 fin que Docker virtualise la couche applications. 245 00:13:38.244 --> 00:13:40.465 ela signifie que lorsque vous exécutez un conteneur Docker, 246 00:13:40.474 --> 00:13:43.934 l contient en fait la couche applications 247 00:13:44.094 --> 00:13:47.515 u système d'exploitation et de certaines autres applications 248 00:13:47.525 --> 00:13:49.674 nstallé au-dessus de cette couche d'application. 249 00:13:49.924 --> 00:13:52.815 ela peut être un temps d'exécution Java ou Python ou autre, 250 00:13:53.104 --> 00:13:58.625 t il utilise le noyau de l'hôte car il n'a pas son propre noyau. 251 00:13:58.929 --> 00:14:01.090 a machine virtuelle, en revanche, 252 00:14:01.109 --> 00:14:04.500 ossède la couche applications et son propre noyau. 253 00:14:04.510 --> 00:14:07.919 l virtualise donc l'ensemble du système d'exploitation, 254 00:14:07.929 --> 00:14:12.750 ce qui signifie que lorsque vous téléchargez une image de machine virtuelle sur votre hôte. 255 00:14:13.010 --> 00:14:17.325 l n'utilise pas le noyau de l'hôte. En fait, il démarre tout seul. 256 00:14:17.544 --> 00:14:21.715 lors, que signifie réellement cette différence entre une machine plus foncée et une machine virtuelle ? 257 00:14:21.724 --> 00:14:26.875 out d'abord, la taille des packages ou des images les plus sombres est beaucoup plus petite 258 00:14:27.015 --> 00:14:30.674 ar ils n'ont qu'à implémenter une couche 259 00:14:30.895 --> 00:14:32.215 u système d'exploitation 260 00:14:32.455 --> 00:14:35.224 onc les images plus sombres font généralement quelques mégaoctets. 261 00:14:35.234 --> 00:14:39.974 es grandes images de machines virtuelles, en revanche, peuvent atteindre quelques gigaoctets. 262 00:14:40.294 --> 00:14:44.135 ela signifie que lorsque vous travaillez avec Docker, vous économisez beaucoup d'espace disque. 263 00:14:44.580 --> 00:14:49.729 ous pouvez exécuter et démarrer des conteneurs Docker beaucoup plus rapidement que les machines virtuelles, 264 00:14:49.739 --> 00:14:53.580 arce que la machine virtuelle doit créer un noyau à chaque démarrage, 265 00:14:53.770 --> 00:14:56.169 lors que le conteneur Docker ne fait que réutiliser 266 00:14:56.340 --> 00:14:59.669 e noyau hôte et il démarre simplement la couche d'application au-dessus de celui-ci. 267 00:14:59.679 --> 00:15:02.979 insi, alors que la machine virtuelle a besoin de quelques minutes pour démarrer, 268 00:15:02.989 --> 00:15:05.409 es conteneurs Docker démarrent généralement dans un 269 00:15:05.510 --> 00:15:06.510 uelques millisecondes. 270 00:15:06.780 --> 00:15:08.960 a troisième différence est la compatibilité, 271 00:15:09.010 --> 00:15:14.599 fin que vous puissiez exécuter l'image virtuelle de n'importe quel système d'exploitation sur n'importe quel autre 272 00:15:14.739 --> 00:15:16.590 ôte du système d'exploitation. 273 00:15:16.599 --> 00:15:20.729 insi, sur une machine Windows, vous pouvez exécuter une machine virtuelle Linux, par exemple. 274 00:15:21.080 --> 00:15:26.359 ais vous ne pouvez pas le faire avec Docker, du moins pas directement, alors quel est le problème ici ? 275 00:15:26.650 --> 00:15:30.719 upposons que vous ayez un système d'exploitation Windows avec Windows Kernel 276 00:15:30.869 --> 00:15:34.309 t sa couche d'application, et vous souhaitez exécuter un Linux 277 00:15:34.460 --> 00:15:40.169 mage docker basée directement sur cet hôte Windows. Le problème ici est que Linux 278 00:15:40.299 --> 00:15:46.210 asée sur 00:15:40.299 ne peut pas utiliser le noyau Windows. Il faudrait un noyau Linux pour fonctionner 279 00:15:46.429 --> 00:15:49.919 ar vous pouvez exécuter une couche d'application Linux sur un Windows Kern. 280 00:15:50.481 --> 00:15:52.981 'est donc un peu un problème avec Docker. 281 00:15:53.171 --> 00:15:54.012 ependant, 282 00:15:54.252 --> 00:15:56.831 orsque vous développez sous Windows ou Me 283 00:15:57.021 --> 00:15:57.461 S, 284 00:15:57.752 --> 00:16:03.822 ous souhaitez exécuter divers services car la plupart des conteneurs pour les services populaires 285 00:16:03.952 --> 00:16:05.841 ont en fait basés sur Linux. 286 00:16:05.961 --> 00:16:11.651 l est également intéressant de savoir que Docker a été initialement écrit et construit pour Linux 287 00:16:12.231 --> 00:16:13.142 ais plus tard 288 00:16:13.533 --> 00:16:16.494 en fait fait fait fait une mise à jour et développé ce qui est 289 00:16:16.504 --> 00:16:20.903 ppelé Docker Desktop pour Windows et Mac, 290 00:16:20.914 --> 00:16:23.174 e qui a rendu possible 291 00:16:23.443 --> 00:16:29.294 our exécuter également des conteneurs basés sur Linux sur des ordinateurs Windows et Mac. 292 00:16:29.304 --> 00:16:34.304 onc, la façon dont cela fonctionne est que Dark Desktop utilise une couche d'hyperviseur 293 00:16:34.453 --> 00:16:36.504 vec un Linux léger 294 00:16:36.736 --> 00:16:37.945 istribution en plus 295 00:16:38.185 --> 00:16:40.875 our fournir le noyau Linux nécessaire 296 00:16:41.185 --> 00:16:43.546 t de cette façon, faites fonctionner Linux 297 00:16:43.695 --> 00:16:48.726 és sur 00:16:43.695 possibles sur les systèmes d'exploitation Windows et Mac. 298 00:16:48.736 --> 00:16:49.486 t au fait, 299 00:16:49.495 --> 00:16:53.625 i vous souhaitez en savoir plus sur la virtualisation et le fonctionnement des machines virtuelles. 300 00:16:53.635 --> 00:16:55.835 t qu'est-ce qu'un hyperviseur, par exemple. 301 00:16:55.846 --> 00:16:59.616 ous pouvez regarder mon autre vidéo, où j'explique tout cela en détail. 302 00:17:00.309 --> 00:17:02.840 ela signifie donc pour le développement local. 303 00:17:02.849 --> 00:17:07.430 n tant qu'ingénieur, vous installeriez Darker Desktop sur votre Windows ou Mac 304 00:17:07.680 --> 00:17:08.640 rdinateur OS 305 00:17:08.819 --> 00:17:09.800 our exécuter Linux 306 00:17:09.920 --> 00:17:15.160 asées sur des images, qui, comme je l'ai mentionné, la plupart des bases de données de services populaires, 307 00:17:15.170 --> 00:17:18.219 etc. sont principalement basés sur Linux. 308 00:17:18.229 --> 00:17:19.560 ous en auriez donc besoin, 309 00:17:19.939 --> 00:17:22.050 t cela nous amène au 310 00:17:22.199 --> 00:17:23.800 nstallation de 311 00:17:24.040 --> 00:17:24.329 312 00:17:24.780 --> 00:17:27.680 fin de faire quelques démonstrations et d'apprendre Docker en pratique, 313 00:17:27.689 --> 00:17:29.119 ous devez d'abord l'installer. 314 00:17:29.560 --> 00:17:30.910 onc, pour installer Docker, 315 00:17:30.920 --> 00:17:34.390 l suffit d'aller sur leur page officielle pour le guide d'installation 316 00:17:34.510 --> 00:17:35.810 t suivez les étapes. 317 00:17:35.819 --> 00:17:40.650 omme Docker est constamment mis à jour, l'installation change. 318 00:17:40.660 --> 00:17:43.050 onc, au lieu de vous faire quelques commentaires 319 00:17:43.060 --> 00:17:46.290 eut fonctionner maintenant mais sera mis à jour ultérieurement, 320 00:17:46.300 --> 00:17:48.579 ous devez toujours vous référer à la dernière 321 00:17:48.589 --> 00:17:52.150 ocumentation pour le guide d'installation pour n'importe quel outil. 322 00:17:52.619 --> 00:17:55.869 onc, si nous recherchons Docker Desktop 323 00:17:56.229 --> 00:17:57.310 nstallation 324 00:17:58.510 --> 00:18:02.859 t cliquez sur l'un de ces liens, comme installer sur Windows, donc 325 00:18:03.050 --> 00:18:04.489 e bureau Docker, 326 00:18:04.760 --> 00:18:06.099 'outil dont j'ai parlé 327 00:18:06.260 --> 00:18:10.219 résolu ce problème d'exécution d'images basées sur Linux sur un système d'exploitation différent, 328 00:18:10.229 --> 00:18:13.130 ais il inclut en fait beaucoup d'autres choses lorsque vous l'installez. 329 00:18:13.140 --> 00:18:16.680 lors, qu'installez-vous exactement avec Docker Desktop ? 330 00:18:17.380 --> 00:18:19.689 t vous voyez exactement ce qui y est inclus. 331 00:18:19.880 --> 00:18:23.239 onc, en gros, obtenez le service Docker lui-même. Cela s'appelle Docker 332 00:18:23.349 --> 00:18:23.790 oteur Moteur. 333 00:18:24.069 --> 00:18:29.680 'est la partie principale du docker qui rend cette virtualisation possible. 334 00:18:29.689 --> 00:18:32.630 ais quand nous avons un service, nous devons communiquer avec lui, n'est-ce pas, 335 00:18:32.640 --> 00:18:33.800 ous avons donc besoin d'un client 336 00:18:33.939 --> 00:18:35.890 ui peut communiquer avec ce service. 337 00:18:35.900 --> 00:18:40.969 ocker Desktop est donc livré avec un client d'interface de ligne de commande, 338 00:18:41.250 --> 00:18:44.959 e qui signifie que nous pouvons exécuter des commandes plus sombres sur une ligne de commande 339 00:18:45.140 --> 00:18:51.239 our démarrer des conteneurs, créer des conteneurs, démarrer, les arrêter, les supprimer, etc. 340 00:18:51.349 --> 00:18:57.760 t faites toutes sortes de choses. Et il est également livré avec un client d'interface utilisateur graphique. 341 00:18:57.900 --> 00:19:00.640 onc, si vous n'êtes pas à l'aise avec la ligne de commande, 342 00:19:00.650 --> 00:19:06.160 ous pouvez réellement utiliser l'interface utilisateur graphique où vous pouvez faire toutes ces choses. 343 00:19:06.189 --> 00:19:08.770 ais dans un U agréable et convivial, 344 00:19:09.130 --> 00:19:11.619 ous obtenez donc toutes ces choses lorsque vous installez Docker Desktop, 345 00:19:11.630 --> 00:19:14.260 n gros tout ce dont vous avez besoin pour démarrer avec Docker 346 00:19:14.630 --> 00:19:17.920 t bien sûr, selon le système d'exploitation que vous utilisez, 347 00:19:17.930 --> 00:19:20.489 ous allez choisir celui-ci : Mac Windows ou Linux. 348 00:19:20.500 --> 00:19:26.439 liquons donc sur l'une d'entre elles, et il vous suffit de suivre les instructions. 349 00:19:26.449 --> 00:19:28.800 ous avez certaines exigences système. Tu dois vérifier 350 00:19:28.969 --> 00:19:32.119 es éléments comme la version de votre Mac OS, 351 00:19:32.880 --> 00:19:34.869 e combien de ressources vous allez avoir besoin. 352 00:19:35.050 --> 00:19:39.949 t vous avez également les options pour Mac avec Intel ou Mac 353 00:19:39.959 --> 00:19:44.339 vec Apple Silicon pour que vous puissiez basculer entre celles-ci et, en gros, 354 00:19:44.349 --> 00:19:49.449 hoisissez simplement le guide qui correspond aux spécifications de votre ordinateur. 355 00:19:49.500 --> 00:19:52.239 t une fois que vous avez cela, vérifiez la configuration système requise, 356 00:19:52.439 --> 00:19:55.334 llez-y et cliquez sur l'un d'entre eux. 357 00:19:55.474 --> 00:19:57.324 ans mon cas, j'ai un Mac avec Intel 358 00:19:57.525 --> 00:19:59.555 hip, donc je cliquerais sur celui-ci, 359 00:19:59.564 --> 00:20:02.655 t c'est en fait le programme d'installation de Docker Desktop. 360 00:20:02.714 --> 00:20:05.994 onc si je clique, ça va télécharger ce DMG 361 00:20:06.094 --> 00:20:09.635 mage. Et une fois qu'il est téléchargé, il vous suffit de suivre 362 00:20:09.785 --> 00:20:11.305 es étapes décrites ici, 363 00:20:11.564 --> 00:20:14.204 'est-ce pas ? Vous double-cliquez dessus, ouvrez l'application 364 00:20:14.564 --> 00:20:15.224 t ainsi de suite. 365 00:20:16.260 --> 00:20:20.099 t pareil pour Windows. Dans votre fenêtre, vous cliquez essentiellement sur celui-ci 366 00:20:20.250 --> 00:20:22.869 t téléchargez Docker Desktop pour Windows 367 00:20:22.979 --> 00:20:25.880 t assurez-vous de vérifier la configuration système requise 368 00:20:26.040 --> 00:20:28.000 t préparez en quelque sorte tout 369 00:20:28.300 --> 00:20:30.170 ont vous avez besoin pour démarrer Docker. 370 00:20:30.459 --> 00:20:35.750 énéralement pour les dernières versions de Windows, Mac ou de tout autre système d'exploitation. 371 00:20:35.859 --> 00:20:39.800 'installation de Docker devrait être assez simple et directe. 372 00:20:40.079 --> 00:20:41.810 lors allez-y et faites-le. 373 00:20:42.030 --> 00:20:43.900 ne fois l'installation terminée, 374 00:20:44.260 --> 00:20:48.180 ous pouvez simplement démarrer le service en recherchant Docker. 375 00:20:48.439 --> 00:20:49.579 t si je clique dessus, 376 00:20:49.849 --> 00:20:51.420 ous verrez ici 377 00:20:51.660 --> 00:20:53.030 ue c'est en fait 378 00:20:53.500 --> 00:20:56.640 émarrage. Service Docker pour le moteur Docker. 379 00:20:58.359 --> 00:20:59.540 t voilà, 380 00:21:00.020 --> 00:21:00.810 'est en cours d'exécution, 381 00:21:01.130 --> 00:21:05.000 t cette vue que vous voyez dans cette fenêtre est 382 00:21:05.010 --> 00:21:08.439 n fait l'interface utilisateur graphique de Docker que j'ai mentionnée. 383 00:21:08.599 --> 00:21:13.079 'est donc le client que vous pouvez utiliser pour interagir avec le moteur Docker. 384 00:21:13.199 --> 00:21:17.500 ous avez donc une liste de conteneurs en cours d'exécution, donc il n'y a pas de liste, 385 00:21:17.770 --> 00:21:21.689 dem avec les images. Si je passe aux images, j'ai nettoyé mon environnement. 386 00:21:21.699 --> 00:21:25.270 e pars donc de zéro avec un état vide, comme vous. 387 00:21:25.660 --> 00:21:28.790 ous sommes donc prêts à commencer à utiliser Darker. 388 00:21:28.890 --> 00:21:32.229 ais d'abord vous vous demandez peut-être ce que sont les images, 389 00:21:32.239 --> 00:21:34.189 t c'est ce que je vais expliquer ensuite, 390 00:21:34.199 --> 00:21:36.589 arce que c'est un concept très important dans le noir 391 00:21:40.400 --> 00:21:45.640 ignifie maintenant que Docker permet d'empaqueter l'application avec son environnement 392 00:21:45.650 --> 00:21:50.569 onfiguration dans ce package que vous pouvez partager et distribuer facilement. 393 00:21:50.910 --> 00:21:53.050 onc, tout comme un fichier artefact d'application, 394 00:21:53.060 --> 00:21:56.790 omme lorsque nous créons un fichier zip ou tar ou un fichier jar, 395 00:21:56.800 --> 00:22:00.800 ue vous pouvez télécharger sur un stockage d'artefacts, puis 396 00:22:00.810 --> 00:22:03.670 éléchargez sur le serveur ou localement chaque fois que vous en avez besoin. 397 00:22:03.859 --> 00:22:09.880 t ce package ou artefact que nous produisons avec Docker s'appelle une image docker. 398 00:22:09.890 --> 00:22:12.500 'est donc essentiellement un artefact d'application 399 00:22:12.790 --> 00:22:15.439 ais différent du fichier Jar 400 00:22:15.569 --> 00:22:17.619 u à partir d'autres artefacts de l'application. 401 00:22:17.839 --> 00:22:21.390 l contient non seulement le code d'application compilé, 402 00:22:21.469 --> 00:22:24.119 ais contient également des informations sur 403 00:22:24.219 --> 00:22:26.079 a configuration de l'environnement. 404 00:22:26.270 --> 00:22:29.719 l contient la couche d'application du système d'exploitation, comme je l'ai mentionné, 405 00:22:29.729 --> 00:22:34.900 insi que des outils tels que node N, PM ou Java Run Time 406 00:22:35.045 --> 00:22:35.625 nstallé dessus, 407 00:22:35.635 --> 00:22:39.135 elon le langage de programmation dans lequel votre application a été écrite. 408 00:22:39.344 --> 00:22:42.364 ar exemple, si vous avez une application JavaScript, 409 00:22:42.545 --> 00:22:46.935 ous auriez besoin de node Js et de N PM pour exécuter correctement votre application, 410 00:22:47.285 --> 00:22:52.625 onc, dans l'image plus sombre, vous auriez déjà installé node et N PM. 411 00:22:52.824 --> 00:22:57.234 ous pouvez également ajouter des variables d'environnement dont votre application a besoin. Par exemple, 412 00:22:57.439 --> 00:22:58.939 ous pouvez créer des répertoires. 413 00:22:58.949 --> 00:23:02.300 ous pouvez créer des fichiers ou tout autre environnement 414 00:23:02.310 --> 00:23:05.699 onfigurez tout ce dont vous avez besoin autour de votre application. 415 00:23:05.849 --> 00:23:10.250 outes ces informations sont donc regroupées dans l'image docker, 416 00:23:10.260 --> 00:23:12.229 vec le code de l'application, 417 00:23:12.550 --> 00:23:15.810 t c'est le grand avantage de Docker dont nous avons parlé. 418 00:23:15.829 --> 00:23:18.719 t comme je l'ai dit, le package s'appelle une image. 419 00:23:19.219 --> 00:23:22.410 onc, s'il s'agit d'une image, qu'est-ce qu'un conteneur, alors ? 420 00:23:22.670 --> 00:23:26.300 h bien, nous devons démarrer ce package d'application quelque part, n'est-ce pas ? 421 00:23:26.420 --> 00:23:30.329 onc, lorsque nous prenons ce package ou cette image et que nous téléchargeons 422 00:23:30.339 --> 00:23:34.140 ur un serveur ou votre ordinateur portable local, 423 00:23:34.150 --> 00:23:36.089 ous voulons l'exécuter sur l'ordinateur. 424 00:23:36.150 --> 00:23:38.050 'application doit réellement s'exécuter. 425 00:23:38.619 --> 00:23:41.920 t lorsque nous exécutons cette image sur un système d'exploitation 426 00:23:42.099 --> 00:23:45.209 t l'application qu'elle contient démarre dans le pré 427 00:23:45.219 --> 00:23:48.729 nvironnement configuré qui nous donne un conteneur. 428 00:23:48.959 --> 00:23:53.250 insi, une instance en cours d'exécution d'une image est un conteneur. 429 00:23:53.260 --> 00:23:58.349 onc, un conteneur est essentiellement une instance en cours d'exécution d'une image et 430 00:23:58.359 --> 00:24:02.969 partir de la même image à partir d'une seule image, vous pouvez exécuter plusieurs conteneurs, 431 00:24:02.979 --> 00:24:06.030 ui est un cas d'utilisation légitime si vous devez exécuter 432 00:24:06.180 --> 00:24:10.489 lusieurs instances de la même application pour des performances accrues, 433 00:24:10.500 --> 00:24:13.415 ar exemple, et c'est exactement ce que nous étions en train de voir ici. 434 00:24:13.425 --> 00:24:18.135 ous avons donc les images. Ce sont les packages d'application, en gros, 435 00:24:18.275 --> 00:24:20.234 uis à partir de ces images, nous pouvons commencer 436 00:24:20.244 --> 00:24:23.694 onteneurs que nous verrons listés ici, 437 00:24:23.704 --> 00:24:26.974 ui exécutent des instances de ces images. 438 00:24:27.244 --> 00:24:28.645 t j'ai aussi dit que 439 00:24:28.834 --> 00:24:31.535 n plus de l'interface utilisateur graphique, 440 00:24:31.545 --> 00:24:35.864 ous obtenons une interface de ligne de commande client do client qui peut parler à do 441 00:24:36.204 --> 00:24:36.444 6.204. 442 00:24:36.939 --> 00:24:37.650 t 443 00:24:37.819 --> 00:24:40.130 epuis que nous avons installé Docker Desktop, 444 00:24:40.140 --> 00:24:43.670 ous devrions avoir cette CLI docker également disponible localement, 445 00:24:43.680 --> 00:24:47.910 e qui signifie que si vous ouvrez votre terminal, vous devriez pouvoir exécuter des commandes docker 446 00:24:48.189 --> 00:24:50.619 t documents. Nous pouvons tout faire. 447 00:24:50.630 --> 00:24:54.594 ar exemple, nous pouvons vérifier les images dont nous disposons localement. 448 00:24:54.604 --> 00:25:00.035 onc, si je crée des images docker, cela me donnera une liste des images que j'ai localement, 449 00:25:00.064 --> 00:25:04.484 Dans ce cas, je n'en ai aucune, comme nous l'avons vu dans l'interface utilisateur graphique. 450 00:25:04.494 --> 00:25:08.405 t je peux également vérifier les conteneurs à l'aide d'un docker de commande, 451 00:25:09.280 --> 00:25:10.390 PS 452 00:25:11.640 --> 00:25:12.250 t encore, 453 00:25:12.479 --> 00:25:14.969 e n'ai pas encore de conteneurs en cours d'exécution. 454 00:25:15.260 --> 00:25:18.020 aintenant, avant de passer à autre chose, je voudrais adresser un appel à Net 455 00:25:18.150 --> 00:25:19.000 Hopper. Plus récents 456 00:25:19.349 --> 00:25:21.109 lateforme cloud, appelée 457 00:25:21.489 --> 00:25:21.589 ans les gouverneurs 458 00:25:21.689 --> 00:25:27.890 pérations d'application, offre aux équipes DevOps un moyen simple de fournir, de gérer, 459 00:25:27.900 --> 00:25:32.699 ettez à niveau, connectez, sécurisez et surveillez les applications dans un ou plusieurs kits 460 00:25:33.030 --> 00:25:33.750 rappes. 461 00:25:34.160 --> 00:25:38.349 vec cette plate-forme, ils créent essentiellement cette couche réseau virtuelle 462 00:25:38.459 --> 00:25:40.739 ui connecte plusieurs environnements. 463 00:25:40.839 --> 00:25:44.510 ar exemple, si vous avez plusieurs plates-formes cloud et plusieurs 464 00:25:44.880 --> 00:25:48.170 lusters, même votre propre centre de données sur site, 465 00:25:48.180 --> 00:25:50.050 ù votre application est déployée, 466 00:25:50.239 --> 00:25:55.795 ous pouvez connecter tous ces éléments sur un seul réseau virtuel afin de pouvoir les déployer et les exploiter 467 00:25:55.805 --> 00:25:58.775 es charges de travail de votre communauté comme si elle était 468 00:25:58.785 --> 00:26:02.584 n cluster ou un environnement d'infrastructure et le résultat 469 00:26:02.704 --> 00:26:06.594 'approche centrée sur le haut qu'ils utilisent offre la visibilité nécessaire pour savoir qui 470 00:26:06.604 --> 00:26:10.375 fait quoi et quand pour votre infrastructure et votre application. 471 00:26:10.599 --> 00:26:14.209 insi, avec Net Hopper, les entreprises peuvent automatiser leurs opérations. 472 00:26:14.219 --> 00:26:17.010 t au lieu de créer sa propre plateforme, 473 00:26:17.020 --> 00:26:20.550 es équipes DevOps peuvent se concentrer sur ce qui compte le plus, 474 00:26:20.560 --> 00:26:24.109 ui publie plus de fonctionnalités d'application plus rapidement. 475 00:26:24.349 --> 00:26:29.300 lors jetez-y un coup d'œil. Vous pouvez en fait créer un compte gratuit et l'essayer 476 00:26:29.500 --> 00:26:32.569 our voir si Net Hopper est la bonne solution pour vous. 477 00:26:36.239 --> 00:26:39.729 aintenant, il est clair que nous obtenons des conteneurs en exécutant des images, 478 00:26:40.069 --> 00:26:43.709 ais comment obtenir des images à partir desquelles exécuter des conteneurs ? 479 00:26:44.189 --> 00:26:45.489 isons que nous voulons courir 480 00:26:46.160 --> 00:26:47.739 n conteneur de base de données ou 481 00:26:47.989 --> 00:26:52.449 u un conteneur de service Lock Collector. Comment obtenir leurs images plus sombres ? 482 00:26:52.689 --> 00:26:55.829 h bien, c'est là que les registres Docker entrent en jeu. 483 00:26:56.150 --> 00:27:02.949 l existe donc des images Docker prêtes à l'emploi disponibles en ligne dans un stockage d'images ou un registre. 484 00:27:03.000 --> 00:27:09.050 onc, en gros, il s'agit d'un stockage spécifique pour les artefacts de type image plus foncée, 485 00:27:09.430 --> 00:27:12.209 t généralement les entreprises qui développent ces services 486 00:27:12.459 --> 00:27:13.209 omme prête 487 00:27:13.829 --> 00:27:16.349 t cetera, ainsi que Docker. 488 00:27:16.359 --> 00:27:21.939 a communauté elle-même créera ce que l'on appelle des images officielles. Donc tu connais ce mongo ? 489 00:27:22.319 --> 00:27:24.420 'image a en fait été créée par 490 00:27:24.959 --> 00:27:27.060 ui-même ou la communauté Docker. 491 00:27:27.130 --> 00:27:31.689 onc, vous savez, c'est une image officielle vérifiée de Docker lui-même. 492 00:27:31.699 --> 00:27:36.160 t Docker lui-même propose le plus grand registre Docker 493 00:27:36.270 --> 00:27:37.930 ppelé Docker Hub, 494 00:27:37.939 --> 00:27:42.119 ù vous pouvez trouver l'une de ces images officielles et bien d'autres 495 00:27:42.130 --> 00:27:44.849 mages de différentes entreprises ou individus 496 00:27:44.859 --> 00:27:48.410 es développeurs y ont créé et téléchargé. 497 00:27:48.959 --> 00:27:51.089 onc, si nous recherchons Dark Hub 498 00:27:51.489 --> 00:27:55.930 ci, vous voyez la bibliothèque d'images Doctor Hub Container. 499 00:27:57.449 --> 00:27:58.089 t 500 00:27:58.319 --> 00:27:59.530 oilà à quoi ça ressemble. 501 00:27:59.540 --> 00:28:02.189 t vous n'avez pas vraiment besoin de vous inscrire ou de signer 502 00:28:02.199 --> 00:28:05.239 endez-vous sur Dock Hub pour trouver ces images officielles. 503 00:28:05.250 --> 00:28:10.250 insi, tout le monde peut accéder à ce site Web et parcourir les images des conteneurs. 504 00:28:10.290 --> 00:28:12.380 t ici, dans la barre de recherche, 505 00:28:12.500 --> 00:28:16.339 ous pouvez taper le service que vous recherchez. Par exemple, prêt 506 00:28:16.569 --> 00:28:17.560 ue j'ai mentionné. 507 00:28:17.689 --> 00:28:19.479 t si j'appuie sur Entrée, 508 00:28:19.640 --> 00:28:21.180 ous verrez essentiellement un 509 00:28:21.530 --> 00:28:27.430 iste de diverses images connexes prêtes à l'emploi ainsi que le service prêt lui-même 510 00:28:27.829 --> 00:28:29.520 ous forme d'image plus sombre. 511 00:28:29.530 --> 00:28:34.359 t voici ce lot ou cette étiquette qui indique une image officielle plus foncée, par exemple, 512 00:28:34.369 --> 00:28:36.959 our l'image la plus rouge que nous allons choisir ici, 513 00:28:36.969 --> 00:28:40.319 ous voyez qu'il est en fait maintenu par la communauté Docker. 514 00:28:40.329 --> 00:28:44.780 a façon dont cela fonctionne est que Docker dispose d'une équipe dédiée responsable 515 00:28:44.885 --> 00:28:50.344 our avoir revu et publié tout le contenu dans les images officielles plus sombres. 516 00:28:50.354 --> 00:28:54.704 t cette équipe travaille en collaboration avec les créateurs de technologies, 517 00:28:54.714 --> 00:28:57.954 u des mainteneurs, ainsi que des experts en sécurité 518 00:28:58.064 --> 00:29:01.864 our créer et gérer ces images sombres officielles. 519 00:29:02.329 --> 00:29:05.890 insi, on s'assure que non seulement 520 00:29:05.900 --> 00:29:09.959 es créateurs de technologie participent à la création officielle de l'image, 521 00:29:10.000 --> 00:29:14.099 ais aussi tous les aspects les plus sombres de la sécurité, des meilleures pratiques et de la production. 522 00:29:14.109 --> 00:29:17.959 es meilleures pratiques sont également prises en compte dans la création d'images, 523 00:29:18.189 --> 00:29:22.890 t c'est essentiellement la page de description avec tous les 524 00:29:22.900 --> 00:29:25.849 nformations sur la façon d'utiliser cette image plus sombre, 525 00:29:25.859 --> 00:29:27.500 e que cela inclut, et cetera 526 00:29:28.199 --> 00:29:32.989 t encore une fois, comme je l'ai dit, Docker Hub est le plus grand registre d'images Docker, 527 00:29:33.000 --> 00:29:36.319 fin que vous puissiez trouver des images pour n'importe quel service que vous 528 00:29:36.459 --> 00:29:38.689 ue vous souhaitez utiliser sur Docker Hub. 529 00:29:38.910 --> 00:29:39.859 aintenant, bien sûr, 530 00:29:39.869 --> 00:29:45.560 a technologie évolue et les applications de ces technologies sont mises à jour. 531 00:29:45.589 --> 00:29:47.910 ous avez donc une nouvelle version du rouge 532 00:29:48.040 --> 00:29:49.270 u mangue en B, 533 00:29:49.660 --> 00:29:51.380 t dans ce cas un nouveau 534 00:29:51.650 --> 00:29:53.390 ne image du doer sera créée, 535 00:29:53.760 --> 00:29:56.869 onc les images sont également des versions, 536 00:29:57.199 --> 00:29:59.640 t celles-ci sont appelées balises d'image. 537 00:29:59.660 --> 00:30:03.709 t sur la page de chaque image, vous 538 00:30:03.719 --> 00:30:08.069 voir la liste des versions ou des balises de cette image 539 00:30:08.250 --> 00:30:09.829 épertorié ici. 540 00:30:09.939 --> 00:30:11.000 'est donc pour 541 00:30:11.849 --> 00:30:14.079 t si je cherche um Post, 542 00:30:14.430 --> 00:30:15.339 ar exemple, 543 00:30:19.199 --> 00:30:21.890 ous verrez différentes balises d'image pour 544 00:30:22.319 --> 00:30:24.089 'image res est également répertoriée ici. 545 00:30:24.630 --> 00:30:29.430 insi, lorsque vous utilisez une technologie et que vous avez besoin d'une version spécifique, vous pouvez choisir 546 00:30:29.650 --> 00:30:33.189 ne image plus sombre contenant cette version de la technologie. 547 00:30:33.290 --> 00:30:37.660 t il existe une balise spéciale que toutes les images ont 548 00:30:37.790 --> 00:30:41.890 été appelé au dernier. Donc, ici, vous voyez ce dernier tag 549 00:30:42.280 --> 00:30:44.469 u ici également dans le texte récent. 550 00:30:44.819 --> 00:30:50.750 a dernière balise est donc essentiellement la dernière, la dernière image créée. 551 00:30:50.760 --> 00:30:54.589 onc, si vous ne spécifiez ou ne choisissez pas de version explicitement, 552 00:30:54.729 --> 00:30:58.089 ous obtenez essentiellement la dernière image depuis le hub Docker. 553 00:30:58.099 --> 00:31:00.719 aintenant, nous avons vu ce que sont les images 554 00:31:00.930 --> 00:31:03.030 t où vous pouvez les obtenir. 555 00:31:03.050 --> 00:31:04.229 lors maintenant, la question est, 556 00:31:04.239 --> 00:31:09.113 omment obtenir l'image depuis Docker Hub et la télécharger 557 00:31:09.123 --> 00:31:13.083 ocalement sur notre ordinateur afin que nous puissions démarrer un conteneur à partir de cette image. 558 00:31:13.192 --> 00:31:19.912 ous localisons donc d'abord l'image que nous voulons exécuter en tant que conteneur localement pour notre démo. 559 00:31:19.922 --> 00:31:21.213 e vais utiliser un moteur 560 00:31:21.453 --> 00:31:24.253 mage. Alors allez-y et recherchez Engine, 561 00:31:24.883 --> 00:31:28.625 ui est essentiellement un simple serveur Web doté d'une interface utilisateur. 562 00:31:28.916 --> 00:31:32.635 ous pourrons donc accéder à notre conteneur depuis 563 00:31:32.645 --> 00:31:36.005 e navigateur à valider Le conteneur a démarré avec succès. 564 00:31:36.176 --> 00:31:37.286 'est pourquoi je choisis le moteur, 565 00:31:38.145 --> 00:31:41.145 t vous avez ici un tas de balises d'images 566 00:31:41.735 --> 00:31:42.845 armi lesquels vous pouvez choisir. 567 00:31:43.095 --> 00:31:48.676 a deuxième étape après avoir localisé l'image consiste donc à choisir une technologie d'image spécifique 568 00:31:49.270 --> 00:31:51.150 t notez que la sélection 569 00:31:51.420 --> 00:31:56.300 ne version spécifique de l'image est la meilleure pratique dans la plupart des cas. 570 00:31:56.359 --> 00:32:00.699 t disons que nous choisissons la version 1.23. 571 00:32:00.709 --> 00:32:05.040 ous allons donc choisir cette balise ici et télécharger une image. 572 00:32:05.050 --> 00:32:09.140 ous retournons à notre terminal et nous exécutons docker 573 00:32:09.510 --> 00:32:13.819 xtraire la commande, et nous spécifions le nom de l'image, 574 00:32:13.939 --> 00:32:14.920 ui est 575 00:32:15.040 --> 00:32:15.900 oteur X. 576 00:32:16.619 --> 00:32:18.900 ous avez donc toute cette commande ici aussi, 577 00:32:18.930 --> 00:32:22.229 'est donc essentiellement le nom de l'image que vous avez écrite ici. 578 00:32:22.449 --> 00:32:23.910 'est donc NGX. 579 00:32:24.310 --> 00:32:25.030 t puis 580 00:32:25.170 --> 00:32:30.000 ous spécifions la balise d'image en la séparant par deux points 581 00:32:30.219 --> 00:32:31.439 uis la version 582 00:32:31.630 --> 00:32:34.089 ,23. C'est ce que nous avons choisi. 583 00:32:34.530 --> 00:32:38.520 'est la commande complète. Le client Docker contactera donc 584 00:32:38.699 --> 00:32:41.829 ub et je dirai, je veux récupérer 585 00:32:41.979 --> 00:32:42.670 e moteur 586 00:32:42.810 --> 00:32:47.760 mage avec cette balise spécifique et téléchargez-la localement. Alors exécutons. 587 00:32:49.869 --> 00:32:53.609 t ici, nous voyons qu'il extrait l'image de 588 00:32:53.869 --> 00:32:56.500 e hub Docker du registre d'images. 589 00:32:56.750 --> 00:32:59.890 t la raison pour laquelle nous n'avons pas à demander à Docker de 590 00:33:00.010 --> 00:33:04.819 écouvrez que l'image sur Docker Hub est due au fait que Docker Hub est en fait la valeur par défaut 591 00:33:04.989 --> 00:33:10.300 mplacement où Docker recherchera toutes les images que nous spécifierons ici. 592 00:33:10.579 --> 00:33:13.839 l est donc automatiquement configuré comme emplacement pour 593 00:33:13.849 --> 00:33:17.579 e téléchargement des images depuis et le téléchargement a eu lieu. 594 00:33:17.949 --> 00:33:22.770 t maintenant, si nous exécutons à nouveau la commande docker images, comme nous l'avons fait ici, 595 00:33:23.050 --> 00:33:26.890 ous devrions maintenant voir une image localement, qui est le moteur 596 00:33:27.430 --> 00:33:29.060 vec une balise d'image 597 00:33:29.180 --> 00:33:30.760 .23 598 00:33:31.030 --> 00:33:34.089 t d'autres informations comme la taille de l'image, 599 00:33:34.260 --> 00:33:37.010 ui est généralement en mégaoctets, 600 00:33:37.119 --> 00:33:38.079 omme je l'ai mentionné. 601 00:33:38.199 --> 00:33:40.140 ous avons donc une image maintenant localement, 602 00:33:40.489 --> 00:33:45.540 t si nous extrayons une image sans balise spécifique, 603 00:33:45.900 --> 00:33:49.959 ous faisons donc cela en gros, docker extrait un nom de l'image. 604 00:33:49.969 --> 00:33:54.880 t si je l'exécute, vous voyez qu'il extrait automatiquement la dernière image. 605 00:33:55.060 --> 00:33:56.459 t maintenant, si je le fais 606 00:33:56.660 --> 00:33:57.760 mages encore une fois, 607 00:33:58.160 --> 00:34:01.329 ous allons voir deux images du moteur 608 00:34:02.140 --> 00:34:04.140 vec deux textes différents, 609 00:34:04.329 --> 00:34:08.438 'est-ce pas ? Il s'agit donc en fait de deux images distinctes avec des versions différentes. 610 00:34:08.668 --> 00:34:09.120 ool. 611 00:34:09.129 --> 00:34:10.899 aintenant, nous avons des images localement, 612 00:34:10.909 --> 00:34:15.958 ais évidemment, ils ne sont utiles que lorsque nous les exécutons dans un environnement de conteneurs. 613 00:34:15.969 --> 00:34:18.719 omment pouvons-nous faire cela ? Super facile également. 614 00:34:18.899 --> 00:34:22.449 ous sélectionnons l'image que nous avons déjà disponible localement 615 00:34:22.560 --> 00:34:25.280 vec le tag. Alors disons que nous voulons courir 616 00:34:25.429 --> 00:34:27.120 ette image en tant que conteneur 617 00:34:27.489 --> 00:34:30.830 t nous exécutons la commande Darker Run 618 00:34:30.978 --> 00:34:31.280 t 619 00:34:31.429 --> 00:34:33.399 vec le nom de l'image 620 00:34:33.639 --> 00:34:35.030 t le tag 621 00:34:35.830 --> 00:34:37.050 uper facile 622 00:34:37.530 --> 00:34:38.790 t exécutons. 623 00:34:39.050 --> 00:34:42.978 t cette commande démarre en fait le conteneur en fonction de l'image. 624 00:34:43.040 --> 00:34:46.239 t nous savons que le conteneur a démarré car nous voyons 625 00:34:46.250 --> 00:34:50.958 ournaux du démarrage de l'entretien du moteur à l'intérieur du conteneur. 626 00:34:50.989 --> 00:34:54.159 l s'agit donc en fait de journaux de conteneurs que nous voyons dans la console. 627 00:34:54.320 --> 00:34:56.260 l lance donc quelques scripts, 628 00:34:57.610 --> 00:35:03.669 t ici, nous avons les processus de démarrage et le conteneur est en cours d'exécution. 629 00:35:04.060 --> 00:35:05.159 lors maintenant 630 00:35:05.379 --> 00:35:07.820 i j'ouvre une nouvelle session de terminal 631 00:35:08.199 --> 00:35:09.030 ime ça 632 00:35:09.330 --> 00:35:09.939 633 00:35:10.580 --> 00:35:11.330 faire 634 00:35:11.679 --> 00:35:12.629 S, 635 00:35:13.860 --> 00:35:16.699 e devrais en fait voir un conteneur, 636 00:35:16.850 --> 00:35:17.840 elui-ci ici 637 00:35:18.290 --> 00:35:20.469 ans la liste des conteneurs en cours, 638 00:35:20.820 --> 00:35:23.679 t nous avons quelques informations sur le conteneur. Nous avons l'identifiant. 639 00:35:23.800 --> 00:35:26.709 ous avons l'image sur laquelle le conteneur est basé, 640 00:35:26.719 --> 00:35:29.409 compris la technologie lors de sa création 641 00:35:29.610 --> 00:35:34.689 t également le nom du conteneur. Nous avons donc l'identifiant et le nom du conteneur. 642 00:35:34.860 --> 00:35:38.729 'est le nom dont docker est en fait automatiquement 643 00:35:38.969 --> 00:35:42.409 énère et attribue à un conteneur lors de sa création. 644 00:35:42.800 --> 00:35:45.060 'est donc un nom généré aléatoirement. 645 00:35:45.669 --> 00:35:50.469 aintenant, si je reviens ici, vous verrez que ces journaux, les journaux des conteneurs, 646 00:35:50.479 --> 00:35:52.780 loquent en fait le terminal. 647 00:35:52.969 --> 00:35:57.879 onc, si je veux récupérer le terminal et faire de la sortie Control C, 648 00:35:57.889 --> 00:36:01.179 e conteneur se ferme et le processus meurt. 649 00:36:01.189 --> 00:36:02.020 lors maintenant, si je le fais 650 00:36:02.239 --> 00:36:05.739 S, vous verrez qu'aucun conteneur n'est en cours d'exécution. 651 00:36:06.219 --> 00:36:08.129 ais nous pouvons démarrer un conteneur 652 00:36:08.260 --> 00:36:12.209 n arrière-plan sans que cela ne bloque le terminal en ajoutant 653 00:36:13.050 --> 00:36:14.760 n drapeau appelé moins D, 654 00:36:15.010 --> 00:36:16.610 ui signifie détaché. 655 00:36:16.729 --> 00:36:19.810 ela détache donc le processus docker du terminal. 656 00:36:20.389 --> 00:36:21.600 t si j'exécute ceci, 657 00:36:21.840 --> 00:36:25.550 ous voyez que cela ne bloque plus le terminal. 658 00:36:25.699 --> 00:36:29.959 t au lieu d'afficher les journaux du démarrage du moteur X à l'intérieur du conteneur, 659 00:36:29.969 --> 00:36:31.020 l se verrouille simplement 660 00:36:31.179 --> 00:36:34.780 'identifiant complet du conteneur. Alors maintenant, si je le fais 661 00:36:34.959 --> 00:36:35.689 S 662 00:36:35.949 --> 00:36:39.219 ci dans le même terminal, je devrais voir ce conteneur 663 00:36:39.439 --> 00:36:40.620 n cours d'exécution. 664 00:36:41.060 --> 00:36:46.729 t c'est essentiellement l'identifiant ou la partie de cette chaîne d'identification complète 665 00:36:46.919 --> 00:36:48.010 ontré ici. 666 00:36:48.219 --> 00:36:52.209 ais lorsque nous démarrons un conteneur en arrière-plan en mode détaché, 667 00:36:52.239 --> 00:36:56.550 ous voudrez peut-être toujours voir les journaux de l'application dans le conteneur, 668 00:36:56.580 --> 00:36:59.030 ous voudrez peut-être voir comment le moteur a démarré ensuite ? 669 00:36:59.040 --> 00:37:01.129 quoi ça ressemblait, en fait, alors 670 00:37:01.340 --> 00:37:05.629 our cela, vous pouvez utiliser une autre commande docker appelée Docker logs 671 00:37:06.199 --> 00:37:08.489 vec l'ID du conteneur 672 00:37:08.590 --> 00:37:09.370 omme ça, 673 00:37:10.159 --> 00:37:14.159 t il imprimera les journaux de l'application à partir du conteneur. 674 00:37:14.530 --> 00:37:17.229 aintenant, pour créer le conteneur 675 00:37:17.540 --> 00:37:22.340 onteneur, nous extrayons d'abord l'image, puis nous avons créé un conteneur à partir de cette image. 676 00:37:22.560 --> 00:37:23.199 ais 677 00:37:23.429 --> 00:37:26.469 ous pouvons en fait nous enregistrer la commande pull 678 00:37:26.739 --> 00:37:28.169 t exécutez 679 00:37:28.360 --> 00:37:33.600 xécutez la commande directement, même si l'image n'est pas disponible localement. 680 00:37:34.010 --> 00:37:37.169 onc, pour l'instant, nous avons ces deux images disponibles localement, 681 00:37:37.479 --> 00:37:39.159 ais dans la commande Docker run, 682 00:37:39.169 --> 00:37:43.290 ous pouvez réellement fournir n'importe quelle image existant sur Docker Hub. 683 00:37:43.370 --> 00:37:47.159 l ne doit pas nécessairement exister localement sur votre ordinateur, 684 00:37:47.169 --> 00:37:49.080 ous n'avez donc pas à le tirer d'abord. 685 00:37:49.090 --> 00:37:52.419 onc, si je reviens en arrière, nous pouvons en fait choisir une version d'image différente. 686 00:37:52.429 --> 00:37:56.780 hoisissons 1,22 tiret Alpine, 687 00:37:56.969 --> 00:37:57.489 onc 688 00:37:58.780 --> 00:38:00.139 ette étiquette d'image, 689 00:38:00.639 --> 00:38:02.610 ue nous n'avons pas localement 690 00:38:03.120 --> 00:38:07.370 u Bien sûr, ce service peut être complètement différent. Ça n'a pas d'importance. 691 00:38:07.489 --> 00:38:10.189 onc, en gros, toute image que nous n'avons pas localement 692 00:38:10.300 --> 00:38:13.729 ous pouvez exécuter directement à l'aide de la commande docker run. 693 00:38:14.199 --> 00:38:17.159 onc, il fait d'abord. Il va essayer de 694 00:38:17.330 --> 00:38:18.879 ocalisez cette image 695 00:38:19.050 --> 00:38:19.830 ocalement, 696 00:38:19.969 --> 00:38:21.439 t s'il ne le trouve pas, 697 00:38:21.610 --> 00:38:24.949 l ira au hub Docker par défaut 698 00:38:25.129 --> 00:38:29.129 t extrayez automatiquement l'image à partir de là, ce qui est très pratique. 699 00:38:29.270 --> 00:38:35.590 onc, il fait les deux en une seule commande, en gros. Il a donc téléchargé l'image avec cette balise 700 00:38:36.149 --> 00:38:38.169 t a démarré le conteneur. 701 00:38:38.520 --> 00:38:40.989 t maintenant, si nous faisons Docker PS, 702 00:38:41.129 --> 00:38:44.770 ous devrions avoir deux conteneurs fonctionnant avec des 703 00:38:45.239 --> 00:38:46.169 ersions. 704 00:38:46.639 --> 00:38:47.889 t souvenez-vous, j'ai dit, 705 00:38:47.899 --> 00:38:52.239 ocker résout le problème de l'exécution de différentes versions de la même application 706 00:38:52.580 --> 00:38:56.159 la fois. Voilà à quel point il est simple de le faire avec Docker 707 00:38:56.479 --> 00:38:59.659 fin que nous puissions réellement cliquer sur ce conteneur. 708 00:39:00.030 --> 00:39:00.689 t 709 00:39:00.939 --> 00:39:02.520 ncore une fois, nous avons 710 00:39:02.639 --> 00:39:06.419 e conteneur moteur avec cette version. 711 00:39:09.929 --> 00:39:14.500 aintenant, la question importante est de savoir comment accéder à ce conteneur ? 712 00:39:14.510 --> 00:39:16.449 h bien, nous ne pouvons pas pour le moment 713 00:39:16.770 --> 00:39:19.459 ar le conteneur s'exécute dans 714 00:39:19.590 --> 00:39:25.659 e réseau Docker fermé, nous ne pouvons donc pas y accéder depuis le navigateur de notre ordinateur local, 715 00:39:25.669 --> 00:39:26.449 ar exemple, 716 00:39:26.479 --> 00:39:29.780 ous devons d'abord exposer le conteneur à notre 717 00:39:29.790 --> 00:39:33.100 éseau local qui peut sembler un peu difficile, 718 00:39:33.110 --> 00:39:34.639 ais c'est super facile. 719 00:39:34.860 --> 00:39:38.360 onc, en gros, nous allons faire ce qu'on appelle une liaison de port. 720 00:39:38.870 --> 00:39:42.060 e conteneur fonctionne sur un port, c'est vrai, 721 00:39:42.270 --> 00:39:46.979 t chaque application possède un port standard sur lequel elle s'exécute, 722 00:39:47.179 --> 00:39:47.770 omme moteur 723 00:39:47.969 --> 00:39:48.830 pplication 724 00:39:48.989 --> 00:39:51.169 'exécute toujours sur le port 80 Red 725 00:39:51.370 --> 00:39:52.500 onctionne sur le port 726 00:39:52.669 --> 00:39:55.290 379. 727 00:39:55.439 --> 00:39:58.169 e sont donc des ports standard pour ces applications. 728 00:39:58.179 --> 00:40:02.169 'est donc le port sur lequel le conteneur s'exécute. 729 00:40:02.489 --> 00:40:03.020 t pour 730 00:40:03.489 --> 00:40:08.179 ous voyons les ports sous la liste des ports ici, l'application s'exécute sur le port A 731 00:40:08.280 --> 00:40:12.159 l'intérieur du conteneur. Alors maintenant, si j'essaie d'accéder 732 00:40:12.379 --> 00:40:12.489 oteur 733 00:40:12.850 --> 00:40:13.719 onteneur 734 00:40:14.090 --> 00:40:17.409 ur ce port sur le port 80 depuis le navigateur 735 00:40:19.100 --> 00:40:20.989 t essayons de le faire 736 00:40:21.219 --> 00:40:22.110 Port 80 737 00:40:22.719 --> 00:40:23.620 ppuyez sur Entrée. 738 00:40:23.760 --> 00:40:26.689 ous voyez que rien n'est disponible sur ce port 739 00:40:26.830 --> 00:40:29.969 ur un hôte local. Alors maintenant, nous pouvons le dire à Docker 740 00:40:30.360 --> 00:40:33.989 é, tu sais quoi ? Liez ce port de conteneur 80 741 00:40:34.520 --> 00:40:36.879 notre hôte local le 742 00:40:37.020 --> 00:40:42.689 out port que je vous indique sur un port spécifique comme 80, 80 ou 9000, 743 00:40:42.699 --> 00:40:47.699 eu importe que je puisse accéder au conteneur ou à tout ce qui est en cours d'exécution 744 00:40:47.709 --> 00:40:52.860 ans le conteneur comme s'il s'exécutait sur mon port hôte local 9000. 745 00:40:53.030 --> 00:40:57.750 t nous le faisons avec un indicateur supplémentaire lors de la création 746 00:40:57.870 --> 00:40:59.290 n conteneur plus sombre. 747 00:40:59.800 --> 00:41:00.379 onc 748 00:41:00.729 --> 00:41:04.689 e que nous allons faire, c'est d'abord arrêter ce conteneur 749 00:41:05.750 --> 00:41:08.379 t créez-en un nouveau. Donc, nous allons le faire, Docteur, 750 00:41:08.929 --> 00:41:09.800 ont 751 00:41:10.489 --> 00:41:13.169 rrête essentiellement ce conteneur en cours d'exécution, 752 00:41:13.550 --> 00:41:15.820 t nous allons créer un nouveau conteneur. 753 00:41:16.570 --> 00:41:17.989 ous allons donc faire 754 00:41:18.169 --> 00:41:18.669 ourir 755 00:41:19.050 --> 00:41:19.979 oteur X 756 00:41:20.949 --> 00:41:21.870 a même version 757 00:41:22.179 --> 00:41:25.520 t nous allons le trouver en arrière-plan en mode détachement. 758 00:41:25.530 --> 00:41:31.040 aintenant, nous allons effectuer la liaison de port avec un effleurement supplémentaire moins P, 759 00:41:31.080 --> 00:41:32.110 t c'est super facile. 760 00:41:32.120 --> 00:41:33.290 ous le disons à Docker 761 00:41:33.689 --> 00:41:34.439 uis 762 00:41:34.679 --> 00:41:35.120 oteur 763 00:41:35.389 --> 00:41:36.800 ort de l'application 764 00:41:37.219 --> 00:41:38.760 l'intérieur d'un conteneur, qui est un 765 00:41:39.429 --> 00:41:41.699 'il vous plaît, prenez ça et liez ça 766 00:41:41.969 --> 00:41:44.399 ur un hôte ou un hôte local 767 00:41:44.629 --> 00:41:47.929 ur n'importe quel port. 9000, par exemple. C'est vrai. 768 00:41:48.149 --> 00:41:49.500 'est le port que je choisis. 769 00:41:49.830 --> 00:41:52.110 onc ce drapeau ici 770 00:41:52.330 --> 00:41:58.679 xposera en fait le conteneur à notre réseau local ou à notre hôte local. 771 00:41:58.790 --> 00:41:59.560 onc ce moteur 772 00:41:59.780 --> 00:42:04.669 e processus en cours d'exécution dans le conteneur nous sera accessible sur le port 9000. 773 00:42:04.679 --> 00:42:06.840 onc maintenant, si j'exécute ceci, 774 00:42:06.979 --> 00:42:09.219 oyons que le conteneur fonctionne, 775 00:42:09.719 --> 00:42:10.370 t 776 00:42:10.550 --> 00:42:15.590 ans la section port, nous voyons une valeur différente. Donc, au lieu d'en avoir seulement 80 777 00:42:15.919 --> 00:42:18.330 ous avons ces informations de liaison de port. 778 00:42:18.510 --> 00:42:23.510 onc, si vous avez oublié le port que vous avez choisi. Ou si vous avez 10 conteneurs différents avec 779 00:42:23.659 --> 00:42:24.090 PS, 780 00:42:24.100 --> 00:42:29.270 ous pouvez réellement voir sur quel port chaque conteneur est accessible sur votre hôte local. 781 00:42:29.350 --> 00:42:31.429 e sera donc le port. 782 00:42:31.959 --> 00:42:34.629 lors maintenant, si je reviens au navigateur 783 00:42:35.000 --> 00:42:40.489 t au lieu de l'hôte local 80, nous allons taper l'hôte local 9000 784 00:42:41.320 --> 00:42:42.310 t cliquez. Entrez. 785 00:42:42.830 --> 00:42:45.870 oilà. Nous avons le moteur de bienvenue 786 00:42:46.000 --> 00:42:50.129 age, cela signifie donc que nous accédons réellement à notre application. 787 00:42:50.389 --> 00:42:53.820 t nous pouvons également le voir dans les journaux. Parlez beaucoup 788 00:42:54.070 --> 00:42:55.330 D du conteneur. 789 00:42:55.919 --> 00:42:59.139 t voilà. Voici le journal. Euh, ce moteur 790 00:42:59.459 --> 00:43:04.590 'application a reçu une demande de Mac ou de moi 791 00:43:04.770 --> 00:43:05.659 achine OS 792 00:43:05.929 --> 00:43:07.300 avigateur Chrome. 793 00:43:07.739 --> 00:43:11.060 ous voyons donc que notre demande a effectivement atteint le 794 00:43:11.330 --> 00:43:11.540 oteur 795 00:43:11.750 --> 00:43:14.229 pplication s'exécutant dans le conteneur. 796 00:43:14.350 --> 00:43:21.149 l est donc facile d'exécuter un service dans un conteneur, puis d'y accéder localement. 797 00:43:21.510 --> 00:43:24.159 aintenant, comme je l'ai dit, vous pouvez choisir le port que vous voulez, 798 00:43:24.310 --> 00:43:28.449 ais c'est aussi à peu près une norme d'utiliser la même 799 00:43:28.459 --> 00:43:33.439 ort sur votre machine hôte tel qu'utilisé par le conteneur. 800 00:43:33.489 --> 00:43:37.320 onc, si j'exécutais un conteneur MySQL qui commençait à 801 00:43:37.399 --> 00:43:44.310 ort 3306 Je le lierais à l'hôte local 3306. 802 00:43:44.659 --> 00:43:46.479 'est donc une sorte de norme. 803 00:43:50.399 --> 00:43:55.300 aintenant, il y a une chose que je tiens à souligner ici, à savoir que Docker exécute 804 00:43:55.770 --> 00:43:59.610 rée en fait un nouveau conteneur à chaque fois. 805 00:43:59.620 --> 00:44:03.070 l ne réutilise pas le conteneur que nous avons créé précédemment. 806 00:44:03.399 --> 00:44:08.080 e qui signifie que puisque nous avons déjà exécuté la commande Docker run plusieurs fois, 807 00:44:08.110 --> 00:44:11.239 ous devrions en fait avoir plusieurs conteneurs sur notre 808 00:44:11.409 --> 00:44:17.530 rdinateur portable. Cependant, si je fais Docker P, SI ne voit que le conteneur en cours d'exécution 809 00:44:17.540 --> 00:44:20.600 e ne vois pas ceux que j'ai créés mais que j'ai arrêtés. 810 00:44:20.610 --> 00:44:22.870 ais ces conteneurs existent toujours. 811 00:44:23.040 --> 00:44:25.030 onc, si je fais Docker PS 812 00:44:26.260 --> 00:44:27.959 vec une tache 813 00:44:28.189 --> 00:44:28.750 814 00:44:29.620 --> 00:44:30.669 t exécutez 815 00:44:30.810 --> 00:44:33.159 ela vous donne en fait une liste de tous 816 00:44:33.169 --> 00:44:37.159 onteneurs, qu'ils soient en cours d'exécution ou arrêtés. 817 00:44:37.469 --> 00:44:39.189 'est donc le conteneur actif 818 00:44:39.659 --> 00:44:40.770 ui fonctionne toujours 819 00:44:40.889 --> 00:44:42.979 t ce sont ceux qui ont été arrêtés. 820 00:44:42.989 --> 00:44:47.000 l est même indiqué que j'ai quitté il y a 10 minutes, il y a six minutes. Peu importe. 821 00:44:47.149 --> 00:44:50.780 ous avons donc quatre conteneurs avec une configuration différente 822 00:44:51.340 --> 00:44:53.639 t précédemment je vous ai montré Docker stop 823 00:44:53.649 --> 00:44:57.679 ommande qui arrête essentiellement un conteneur en cours d'exécution 824 00:44:57.989 --> 00:44:59.399 fin que nous puissions arrêter celui-ci. 825 00:45:00.110 --> 00:45:02.399 t maintenant, cela va l'afficher comme 826 00:45:02.540 --> 00:45:05.620 n conteneur arrêté est également sorti il y a une seconde, 827 00:45:05.860 --> 00:45:06.639 ais de la même manière. 828 00:45:06.649 --> 00:45:10.560 ous pouvez également redémarrer un conteneur que vous avez créé auparavant 829 00:45:10.570 --> 00:45:12.989 ans avoir à en créer un nouveau avec docker Run, 830 00:45:13.000 --> 00:45:13.370 ommit. 831 00:45:13.639 --> 00:45:16.040 onc, pour cela, nous avons un point de départ plus sombre 832 00:45:16.659 --> 00:45:17.340 t 833 00:45:17.510 --> 00:45:20.510 ui prend l'ID du conteneur 834 00:45:21.360 --> 00:45:25.010 t redémarrez le conteneur encore et encore. Vous pouvez démarrer plusieurs 835 00:45:25.439 --> 00:45:27.530 onteneurs à la fois si vous le souhaitez, 836 00:45:28.959 --> 00:45:29.770 omme ça. 837 00:45:31.159 --> 00:45:31.679 t 838 00:45:31.919 --> 00:45:33.610 ous avez maintenant deux conteneurs en cours d'exécution. 839 00:45:33.620 --> 00:45:37.820 aintenant, vous avez vu que nous utilisons l'ID du conteneur dans diverses commandes de stockage. 840 00:45:37.830 --> 00:45:42.459 onc, pour arrêter le conteneur, le redémarrer, vérifier les journaux, etc. 841 00:45:42.889 --> 00:45:46.449 ais l'identification est difficile à mémoriser et vous devrez la rechercher tout le temps. 842 00:45:46.639 --> 00:45:46.889 onc 843 00:45:47.000 --> 00:45:47.969 omme alternative, 844 00:45:47.979 --> 00:45:51.179 ous pouvez également utiliser le nom du conteneur pour toutes ces commandes 845 00:45:51.189 --> 00:45:54.689 u lieu de l'identifiant qui est généré automatiquement par Docker. 846 00:45:54.830 --> 00:45:59.340 ais nous pouvons en fait réécrire cela et nous pouvons donner nos conteneurs 847 00:45:59.510 --> 00:46:02.729 es noms plus significatifs lorsque nous les créons 848 00:46:04.409 --> 00:46:06.399 fin que nous puissions arrêter ces deux conteneurs 849 00:46:06.850 --> 00:46:08.020 n utilisant l'ID 850 00:46:08.689 --> 00:46:09.659 u le nom 851 00:46:10.540 --> 00:46:11.280 omme ça. 852 00:46:11.459 --> 00:46:13.899 e sont donc deux conteneurs différents, l'un avec un identifiant, 853 00:46:13.909 --> 00:46:15.949 n avec un nom et nous allons les arrêter tous les deux. 854 00:46:17.629 --> 00:46:18.370 oilà. 855 00:46:18.570 --> 00:46:23.270 aintenant, lorsque nous créons un nouveau conteneur, nous pouvons lui donner un nom spécifique 856 00:46:23.510 --> 00:46:25.459 t il existe un autre drapeau pour cela 857 00:46:25.889 --> 00:46:28.659 ui est le nom de Dash Dash. Et puis nous fournissons 858 00:46:28.919 --> 00:46:32.919 e nom que nous voulons donner à notre conteneur. Et disons que c'est, euh, un 859 00:46:33.270 --> 00:46:36.479 pplication Web. C'est ainsi que nous allons appeler notre conteneur 860 00:46:37.570 --> 00:46:38.780 t exécutons. 861 00:46:39.379 --> 00:46:39.889 i je le fais 862 00:46:40.030 --> 00:46:40.719 PS 863 00:46:41.100 --> 00:46:45.540 ous voyez que le nom n'est pas une chose aléatoire générée automatiquement, 864 00:46:45.570 --> 00:46:47.350 ais à la place, notre conteneur s'appelle Web. 865 00:46:47.959 --> 00:46:48.969 aintenant, nous pouvons faire 866 00:46:49.209 --> 00:46:50.790 errous et 867 00:46:51.040 --> 00:46:52.840 om de notre conteneur 868 00:46:53.419 --> 00:46:54.159 omme ça. 869 00:46:57.540 --> 00:46:58.909 ous avons maintenant découvert Do 870 00:46:59.149 --> 00:47:00.840 ub, qui est en fait 871 00:47:01.020 --> 00:47:03.760 e qu'on appelle un registre public d'images, 872 00:47:04.050 --> 00:47:04.949 e qui signifie 873 00:47:05.070 --> 00:47:09.770 es images que nous avons utilisées sont visibles et accessibles au public. 874 00:47:10.149 --> 00:47:15.250 ais lorsqu'une entreprise crée ses propres images de ses propres applications, 875 00:47:15.360 --> 00:47:17.969 ien sûr, ils ne veulent pas qu'il soit accessible au public. 876 00:47:18.229 --> 00:47:22.649 onc, pour cela, il existe ce que l'on appelle des registres docker privés, 877 00:47:22.659 --> 00:47:23.770 t ils sont nombreux. 878 00:47:23.780 --> 00:47:28.689 resque tous les fournisseurs de cloud proposent un service de registre docker privé, 879 00:47:28.699 --> 00:47:35.080 ar exemple, AWS EECR ou Elastic Container Registry Service, Google Azure. 880 00:47:35.090 --> 00:47:38.050 ls ont tous leurs propres registres Docker. 881 00:47:38.080 --> 00:47:43.239 exus, qui est un service de stockage d'artefacts populaire, possède un registre DO. 882 00:47:43.250 --> 00:47:46.179 ême Docker Hub possède un registre de dock privé 883 00:47:46.310 --> 00:47:51.679 onc, sur la page d'accueil de Dock Hub, vous avez vu ce formulaire de démarrage. 884 00:47:52.000 --> 00:47:55.100 onc, en gros, si vous souhaitez stocker vos images docker privées sur Doer 885 00:47:55.270 --> 00:47:55.729 Hub, 886 00:47:55.739 --> 00:47:59.770 ous pouvez réellement créer un registre privé sur Docker Hub ou 887 00:47:59.780 --> 00:48:02.929 réez même un registre public et téléchargez-y vos images. 888 00:48:02.939 --> 00:48:04.669 'est pourquoi j'ai un compte, 889 00:48:04.679 --> 00:48:07.250 arce que j'ai téléchargé quelques images sur Do 890 00:48:07.419 --> 00:48:11.860 ub que mes étudiants peuvent télécharger pour différents cours. 891 00:48:11.879 --> 00:48:15.209 t il y a un autre concept que je voudrais mentionner concernant le registre, 892 00:48:15.219 --> 00:48:17.739 ui est ce qu'on appelle un référentiel, 893 00:48:17.949 --> 00:48:19.530 ue vous entendez aussi souvent. 894 00:48:19.639 --> 00:48:20.370 n dépôt do 895 00:48:20.479 --> 00:48:25.199 egistre ? Alors, quelle est la différence entre eux ? Très simplement, a expliqué AWS. 896 00:48:25.209 --> 00:48:30.350 CR est un registre, donc en gros, c'est un service qui fournit du stockage pour les images. 897 00:48:30.379 --> 00:48:31.830 t dans ce registre, 898 00:48:31.840 --> 00:48:36.620 ous pouvez avoir plusieurs référentiels pour toutes vos différentes images d'application. 899 00:48:36.629 --> 00:48:39.429 insi, chaque application dispose de son propre référentiel, 900 00:48:39.439 --> 00:48:43.179 t dans ce référentiel, vous pouvez stocker différentes versions d'images 901 00:48:43.189 --> 00:48:46.300 u les balises de cette même application de la même manière. 902 00:48:46.310 --> 00:48:46.429 u 903 00:48:46.689 --> 00:48:51.070 ub est un registre. Il s'agit d'un service permettant de stocker des images et d'effectuer des tâches 904 00:48:51.250 --> 00:48:51.500 50, 905 00:48:51.510 --> 00:48:55.699 ous pouvez avoir vos référentiels publics pour stocker des images qui seront 906 00:48:55.709 --> 00:48:57.629 ccessible au public ou vous pouvez avoir 907 00:48:57.639 --> 00:49:00.110 éférentiels privés pour différentes applications. 908 00:49:00.129 --> 00:49:04.040 t encore une fois, vous pouvez avoir un référentiel dédié à chaque application. 909 00:49:04.110 --> 00:49:05.459 'est donc une note secondaire. 910 00:49:05.469 --> 00:49:09.770 i vous entendez ces termes et concepts et que vous savez quelle est la différence entre eux 911 00:49:13.060 --> 00:49:13.389 aintenant ? 912 00:49:13.399 --> 00:49:15.909 'ai mentionné que les entreprises voudraient créer 913 00:49:15.989 --> 00:49:18.760 eurs propres images personnalisées pour leurs applications. 914 00:49:19.050 --> 00:49:20.760 lors, comment cela fonctionne-t-il réellement ? 915 00:49:20.770 --> 00:49:25.070 omment puis-je créer ma propre image docker pour mon application ? 916 00:49:25.149 --> 00:49:27.580 t le cas d'utilisation est que lorsque je suis 917 00:49:27.780 --> 00:49:31.250 erminé avec le développement, l'application est prête. 918 00:49:31.260 --> 00:49:34.850 l possède certaines fonctionnalités et nous voulons le mettre à la disposition des utilisateurs finaux. 919 00:49:34.860 --> 00:49:36.790 ous voulons donc l'exécuter sur un déploiement 920 00:49:36.969 --> 00:49:39.719 erveur et pour faciliter le processus de déploiement. 921 00:49:39.729 --> 00:49:44.479 ous souhaitez déployer notre application en tant que conteneur Docker avec la base de données 922 00:49:44.489 --> 00:49:48.399 t d'autres services qui s'exécuteront également en tant que conteneurs Docker ? 923 00:49:48.489 --> 00:49:51.699 lors, comment pouvons-nous utiliser notre application déployée créée 924 00:49:51.709 --> 00:49:55.669 oder et l'empaqueter dans une image docker ? 925 00:49:55.679 --> 00:50:00.659 our cela, nous devons créer une définition de la façon de créer une image 926 00:50:00.760 --> 00:50:02.459 epuis notre application, 927 00:50:02.780 --> 00:50:07.340 t cette définition est écrite dans un fichier appelé fichier docker. 928 00:50:07.350 --> 00:50:11.379 'est ainsi que cela devrait être appelé. La création d'un simple fichier docker est très simple. 929 00:50:11.600 --> 00:50:17.080 t dans cette partie, nous allons prendre une application super simple sans JAS que j'ai préparée. 930 00:50:17.090 --> 00:50:19.610 t nous allons écrire un fichier docker pour cela 931 00:50:19.620 --> 00:50:22.370 pplication pour en créer une image plus sombre. 932 00:50:22.530 --> 00:50:24.550 t comme je l'ai dit, c'est très facile à faire. 933 00:50:24.929 --> 00:50:26.469 oici donc l'application. 934 00:50:26.679 --> 00:50:29.739 'est extrêmement simple. J'en ai juste un 935 00:50:29.939 --> 00:50:34.479 ichier point Js du serveur, qui démarre simplement l'application 936 00:50:34.699 --> 00:50:36.659 ur Port 3000. Et puis 937 00:50:36.959 --> 00:50:38.800 a dit juste, Bienvenue 938 00:50:39.100 --> 00:50:40.979 orsque vous y accédez depuis le navigateur 939 00:50:41.300 --> 00:50:45.979 t nous avons un fichier adjacent au package qui contient cette dépendance 940 00:50:46.010 --> 00:50:49.629 our la bibliothèque express que nous utilisons ici pour démarrer l'application 941 00:50:49.820 --> 00:50:52.270 uper léger et simple. 942 00:50:52.419 --> 00:50:54.610 t c'est l'application à partir de laquelle nous allons créer un 943 00:50:54.620 --> 00:50:57.939 mage docker et démarrez-la en tant que conteneur Docker. 944 00:50:58.419 --> 00:50:59.770 lors allons-y. 945 00:51:00.459 --> 00:51:06.090 onc, à la racine de l'application, nous allons créer un nouveau fichier appelé Docker File. 946 00:51:06.929 --> 00:51:08.870 'est donc le nom. Et tu vois ça, 947 00:51:09.090 --> 00:51:12.110 uh, la plupart des éditeurs de code détectent réellement 948 00:51:12.290 --> 00:51:15.340 ichier docker et nous obtenons cette icône docker ici. 949 00:51:15.350 --> 00:51:17.389 onc, dans ce fichier docker, 950 00:51:17.399 --> 00:51:20.229 ous allons écrire une définition de la façon dont 951 00:51:20.239 --> 00:51:22.250 'image doit être créée à partir de cette application. 952 00:51:22.370 --> 00:51:24.040 lors, de quoi a besoin notre application ? 953 00:51:24.050 --> 00:51:27.709 l nécessite l'installation d'un nœud car le nœud doit exécuter notre application. 954 00:51:27.929 --> 00:51:28.389 'est-ce pas ? 955 00:51:29.020 --> 00:51:31.840 onc, si je voulais démarrer cette application localement 956 00:51:32.020 --> 00:51:36.689 epuis mon terminal, j'exécuterais le nœud SRC. Donc, le dossier source 957 00:51:36.860 --> 00:51:38.379 t serveur point Js 958 00:51:38.649 --> 00:51:40.939 ommande pour démarrer l'application. 959 00:51:41.080 --> 00:51:44.929 ous avons donc besoin de cette commande de nœud disponible dans l'image. 960 00:51:45.250 --> 00:51:48.550 t c'est là qu'intervient le concept d'image de base. 961 00:51:48.560 --> 00:51:52.030 insi, chaque image docker est en fait basée sur cette image de base, 962 00:51:52.320 --> 00:51:58.149 ui est principalement une image légère du système d'exploitation Linux qui a 963 00:51:58.270 --> 00:52:03.419 e nœud, N, PM ou tout autre outil dont vous avez besoin pour votre application installée dessus. 964 00:52:03.489 --> 00:52:05.719 onc, pour l'application JavaScript, vous auriez 965 00:52:05.949 --> 00:52:07.050 mage de base du nœud. 966 00:52:07.060 --> 00:52:11.409 i vous avez une application Java, nous utiliserons une image sur laquelle Java Runtime est installé 967 00:52:11.899 --> 00:52:15.909 ncore une fois le système d'exploitation Linux avec Java installé dessus. 968 00:52:16.550 --> 00:52:19.629 t c'est l'image de base. Et nous définissons l'image de base. 969 00:52:19.639 --> 00:52:22.479 tilisation d'une directive dans un fichier docker appelé depuis. 970 00:52:22.649 --> 00:52:25.889 ous disons de créer cette image à partir de l'image de base et si 971 00:52:25.899 --> 00:52:29.000 e retourne au Docker Hub et je recherche un nœud, 972 00:52:30.110 --> 00:52:35.979 ous verrez que nous avons une image dans laquelle node et N PM sont installés à l'intérieur 973 00:52:36.489 --> 00:52:39.159 t les images de base sont comme les autres images. 974 00:52:39.189 --> 00:52:43.879 onc, en gros, vous pouvez empiler et créer sur les images dans Docker. 975 00:52:44.020 --> 00:52:46.020 lles sont donc comme toutes les autres images que nous avons vues. 976 00:52:46.120 --> 00:52:49.310 t ils ont également des versions texte ou image. 977 00:52:49.340 --> 00:52:54.149 ous allons donc choisir l'image du nœud et une version spécifique 978 00:52:54.340 --> 00:52:57.459 t optons pour un pin à 19 tirets en L. 979 00:53:00.429 --> 00:53:04.479 'est donc notre image de base et notre première directive dans le fichier docker. 980 00:53:04.489 --> 00:53:06.560 ncore une fois, cela permettra de s'assurer que 981 00:53:06.860 --> 00:53:09.850 orsque notre application node Js démarre dans un conteneur, 982 00:53:09.860 --> 00:53:14.689 l y aura un nœud et N commandes PM disponibles à l'intérieur pour exécuter notre application. 983 00:53:14.870 --> 00:53:17.229 aintenant, si nous démarrons notre application avec cette commande, 984 00:53:17.689 --> 00:53:19.780 ous verrons que nous obtenons une erreur car 985 00:53:19.790 --> 00:53:22.580 ous devons d'abord installer les dépendances d'une application. 986 00:53:22.760 --> 00:53:25.459 ous avons juste une dépendance, qui est la bibliothèque de presse, 987 00:53:25.510 --> 00:53:29.189 e qui signifie que nous devrions exécuter N PM install, 988 00:53:29.729 --> 00:53:34.239 ui vérifiera le fichier json du package, lira toutes les dépendances, 989 00:53:34.250 --> 00:53:36.379 éfinissez-les et installez-les 990 00:53:36.489 --> 00:53:39.215 ocalement dans le dossier des modules du nœud. 991 00:53:39.225 --> 00:53:43.425 onc, en gros, nous mappons les mêmes choses que nous ferions pour exécuter l'application. 992 00:53:43.435 --> 00:53:46.264 ocalement, nous cartographions cela dans le conteneur, 993 00:53:46.274 --> 00:53:51.594 ous devrions donc exécuter la commande N PM install également dans le conteneur. 994 00:53:51.625 --> 00:53:52.195 onc, 995 00:53:52.465 --> 00:53:53.594 omme je l'ai déjà mentionné, 996 00:53:53.745 --> 00:53:56.205 a plupart des images sombres sont basées sur Linux. 997 00:53:56.215 --> 00:53:59.824 lpine est une distribution Linux, une distribution de système d'exploitation Linux à ondes lumineuses. 998 00:54:00.050 --> 00:54:00.669 onc 999 00:54:00.810 --> 00:54:01.520 ans le fichier docker, 1000 00:54:01.530 --> 00:54:05.030 ous pouvez écrire toutes les commandes Linux que vous souhaitez exécuter dans le conteneur. 1001 00:54:05.159 --> 00:54:08.820 t chaque fois que nous voulons exécuter une commande dans le conteneur, 1002 00:54:08.830 --> 00:54:12.469 u'il s'agisse d'une commande Linux ou d'une commande de nœud, ou d'une commande PM quelconque, 1003 00:54:12.479 --> 00:54:15.600 ous l'exécutons à l'aide d'une directive run. 1004 00:54:15.610 --> 00:54:19.840 'est donc une autre directive, et vous voyez que les directives sont écrites en majuscules 1005 00:54:20.209 --> 00:54:21.770 t puis vient la commande. 1006 00:54:21.889 --> 00:54:23.659 onc, aucune installation de PM, 1007 00:54:23.699 --> 00:54:27.840 ui téléchargera les dépendances à l'intérieur du conteneur et 1008 00:54:27.850 --> 00:54:31.239 réer un dossier de modules de nœuds dans le conteneur 1009 00:54:31.570 --> 00:54:33.439 vant le démarrage de l'application. 1010 00:54:33.800 --> 00:54:38.699 ncore une fois, considérez un conteneur comme son propre environnement isolé. Il a un Linux simple 1011 00:54:39.040 --> 00:54:40.250 ystème d'exploitation 1012 00:54:40.489 --> 00:54:42.520 vec nœud et N PM installés, 1013 00:54:42.629 --> 00:54:44.540 t nous exécutons l'installation de N PM. 1014 00:54:44.550 --> 00:54:48.600 ependant, nous avons également besoin d'un code d'application dans le conteneur, n'est-ce pas ? 1015 00:54:48.919 --> 00:54:50.570 ous avons donc besoin du serveur Js 1016 00:54:50.689 --> 00:54:51.449 l'intérieur, 1017 00:54:51.479 --> 00:54:53.889 t nous avons besoin du package pour Jason parce que c'est ce que 1018 00:54:53.899 --> 00:54:58.149 ucune commande PM devra réellement lire les dépendances. 1019 00:54:58.330 --> 00:55:03.020 t c'est une autre directive d'où nous prenons les fichiers de 1020 00:55:03.189 --> 00:55:09.149 otre ordinateur local et nous les collons. Copiez-les dans le conteneur. 1021 00:55:09.760 --> 00:55:11.699 t c'est une directive appelée Copy 1022 00:55:11.800 --> 00:55:14.649 t vous pouvez copier des fichiers individuels comme le package point 1023 00:55:14.760 --> 00:55:16.399 son à partir d'ici 1024 00:55:16.679 --> 00:55:22.530 ans le conteneur, et nous pouvons dire où dans le conteneur à quel endroit 1025 00:55:22.899 --> 00:55:25.760 ans le système de fichiers dans lequel il doit être copié. 1026 00:55:26.100 --> 00:55:27.330 t disons 1027 00:55:27.780 --> 00:55:31.189 l doit être copié dans un dossier appelé slash 1028 00:55:31.560 --> 00:55:31.889 pplication 1029 00:55:32.679 --> 00:55:36.280 l'intérieur du conteneur. C'est donc sur notre machine, 1030 00:55:36.699 --> 00:55:40.639 'est-ce pas ? Nous avons empaqueté ci-contre. C'est à l'intérieur du conteneur. 1031 00:55:40.649 --> 00:55:41.580 'est complètement 1032 00:55:41.689 --> 00:55:45.600 ystème isolé de notre environnement local, 1033 00:55:46.139 --> 00:55:51.770 fin que nous puissions copier des fichiers individuels et également copier les répertoires complets. 1034 00:55:51.780 --> 00:55:54.510 ous avons donc également besoin de notre code d'application à l'intérieur, évidemment, 1035 00:55:54.520 --> 00:55:57.040 our exécuter l'application afin que nous puissions copier ceci 1036 00:55:57.050 --> 00:56:01.419 épertoire source complet, nous avons donc plusieurs fichiers à l'intérieur. 1037 00:56:01.449 --> 00:56:05.020 ous pouvons à nouveau copier le répertoire complet dans le conteneur 1038 00:56:05.649 --> 00:56:06.669 ans slash 1039 00:56:06.820 --> 00:56:07.129 pplication 1040 00:56:07.709 --> 00:56:08.479 ocalisation 1041 00:56:08.639 --> 00:56:11.719 t la barre oblique à la fin est également très importante. 1042 00:56:11.729 --> 00:56:17.780 e docker sait donc qu'il doit créer ce dossier s'il n'existe pas encore dans le conteneur, 1043 00:56:17.899 --> 00:56:18.449 onc 1044 00:56:18.649 --> 00:56:23.770 la racine du système de fichiers Linux, ajoutez un dossier à l'intérieur, puis une barre oblique. 1045 00:56:23.879 --> 00:56:27.800 aintenant, tous les fichiers d'application pertinents tels que package adjacent et 1046 00:56:27.810 --> 00:56:32.854 'ensemble du répertoire source est copié dans le conteneur à cet emplacement. 1047 00:56:33.175 --> 00:56:36.014 a prochaine chose que nous voulons faire avant de pouvoir exécuter 1048 00:56:36.024 --> 00:56:40.125 ne commande d'installation PM consiste à entrer dans ce répertoire. 1049 00:56:40.135 --> 00:56:40.554 'est-ce pas ? 1050 00:56:40.564 --> 00:56:41.175 onc, sous Linux, 1051 00:56:41.185 --> 00:56:44.834 ous avons le droit de transformer ce CD en répertoire 1052 00:56:44.844 --> 00:56:48.415 fin d'exécuter les commandes suivantes dans le répertoire 1053 00:56:48.675 --> 00:56:52.965 ans le fichier docker. Nous avons une directive pour ce qu'on appelle le travail 1054 00:56:53.195 --> 00:56:54.125 her. 1055 00:56:54.540 --> 00:56:55.850 onc, Répertoire de travail, 1056 00:56:56.040 --> 00:56:59.870 ce qui équivaut à passer à un répertoire 1057 00:56:59.879 --> 00:57:03.590 our exécuter toutes les commandes suivantes dans ce répertoire 1058 00:57:03.770 --> 00:57:04.510 fin que nous puissions 1059 00:57:04.810 --> 00:57:06.260 aites de l'application Slash ici. 1060 00:57:06.500 --> 00:57:09.919 l définit donc ce chemin comme emplacement par défaut 1061 00:57:10.110 --> 00:57:13.219 our tout ce qui va suivre. OK, 1062 00:57:13.489 --> 00:57:16.750 ous copions donc tout dans le conteneur. 1063 00:57:16.760 --> 00:57:19.639 nsuite, nous définissons le répertoire de travail 1064 00:57:19.709 --> 00:57:22.149 u le répertoire par défaut dans le conteneur. 1065 00:57:22.449 --> 00:57:26.500 t puis nous exécutons à nouveau N PM install dans le conteneur pour 1066 00:57:26.510 --> 00:57:30.459 éléchargez toutes les dépendances dont l'application a besoin et qui sont définies ici. 1067 00:57:30.469 --> 00:57:33.929 t enfin, nous devons exécuter l'application, non ? 1068 00:57:34.179 --> 00:57:37.510 insi, après l'installation de NP, la commande node devrait 1069 00:57:37.520 --> 00:57:41.199 tre exécutés et nous apprenons à exécuter des commandes. 1070 00:57:41.209 --> 00:57:43.899 ous utilisons la directive run. 1071 00:57:44.070 --> 00:57:48.360 ependant, s'il s'agit de la dernière commande du fichier docker, 1072 00:57:48.379 --> 00:57:52.445 onc quelque chose qui lance réellement le processus. C'est ainsi que l'application à l'intérieur, 1073 00:57:52.455 --> 00:57:56.235 ous avons une directive différente pour celle appelée C MD. 1074 00:57:56.435 --> 00:57:58.804 'est donc essentiellement la dernière commande du 1075 00:57:58.814 --> 00:58:01.405 ichier docker et cela démarre l'application. 1076 00:58:01.614 --> 00:58:03.875 t la syntaxe pour cela est 1077 00:58:04.024 --> 00:58:04.685 ommande 1078 00:58:04.925 --> 00:58:05.764 ui est le nœud 1079 00:58:06.114 --> 00:58:07.564 t le paramètre 1080 00:58:08.300 --> 00:58:10.050 erveur G point Js. 1081 00:58:10.260 --> 00:58:12.979 ous avons donc tout copié dans l'application Slash. 1082 00:58:13.010 --> 00:58:15.860 ous avons donc le serveur Js dans le répertoire APP 1083 00:58:15.870 --> 00:58:19.229 t nous le démarrons ou l'exécutons en utilisant node commit. 1084 00:58:19.719 --> 00:58:20.389 'est ça. 1085 00:58:20.399 --> 00:58:24.139 'est le fichier docker complet qui créera 1086 00:58:24.149 --> 00:58:27.659 ne image docker pour notre application node Js, 1087 00:58:27.810 --> 00:58:30.989 ue nous pouvons ensuite démarrer en tant que conteneur. 1088 00:58:34.239 --> 00:58:39.629 ous avons donc maintenant la définition dans le fichier docker. Il est temps de créer réellement l'image. 1089 00:58:39.639 --> 00:58:40.739 partir de cette définition. 1090 00:58:41.280 --> 00:58:43.840 e vais clarifier cela et sans passer au terminal, 1091 00:58:43.850 --> 00:58:45.260 ous pouvons réellement réutiliser celui-ci. 1092 00:58:45.429 --> 00:58:50.429 ous pouvons exécuter une commande docker pour créer une image plus sombre, ce qui est très simple. 1093 00:58:50.439 --> 00:58:52.389 ous faisons simplement Docker Build. 1094 00:58:52.889 --> 00:58:55.560 nsuite, nous avons quelques options que nous pouvons fournir. 1095 00:58:55.780 --> 00:58:58.100 e premier est le nom de l'image. 1096 00:58:58.110 --> 00:59:03.699 onc, tout comme toutes ces images ont des noms, comme node ready, etc. 1097 00:59:03.979 --> 00:59:05.129 t les tags 1098 00:59:05.689 --> 00:59:06.780 ous pouvons également 1099 00:59:07.020 --> 00:59:09.580 ommez notre image et attribuez-lui une balise spécifique. 1100 00:59:09.850 --> 00:59:13.459 t nous le faisons en utilisant cette option Dash T 1101 00:59:13.840 --> 00:59:15.429 t nous pouvons appeler notre nœud d'application 1102 00:59:15.530 --> 00:59:15.840 application 1103 00:59:16.449 --> 00:59:18.159 eut-être qu'avec Dash, peu importe 1104 00:59:18.469 --> 00:59:19.310 t 1105 00:59:19.689 --> 00:59:22.010 ous pouvons lui donner un tag spécifique 1106 00:59:22.199 --> 00:59:24.590 omme 1.0 par exemple. 1107 00:59:24.840 --> 00:59:25.469 t 1108 00:59:25.719 --> 00:59:28.810 e dernier paramètre est l'emplacement du fichier docker. 1109 00:59:29.010 --> 00:59:31.899 ous demandons donc à Docker de créer une image 1110 00:59:32.044 --> 00:59:33.764 vec ce nom et cette balise 1111 00:59:33.985 --> 00:59:34.945 e 1112 00:59:35.135 --> 00:59:38.375 a définition dans ce fichier docker spécifique, n'est-ce pas ? 1113 00:59:38.574 --> 00:59:41.754 l s'agit donc d'un emplacement du fichier docker dans ce cas, 1114 00:59:41.764 --> 00:59:45.395 ous sommes dans le répertoire où se trouve le fichier Docker, 1115 00:59:45.405 --> 00:59:47.594 onc ce sera le répertoire actuel. 1116 00:59:47.774 --> 00:59:51.834 onc, ce point fait essentiellement référence au dossier actuel 1117 00:59:51.945 --> 00:59:53.794 ù se trouve le fichier Docker. 1118 00:59:54.040 --> 00:59:56.070 onc maintenant, si nous exécutons ceci 1119 00:59:56.320 --> 00:59:57.229 omme vous le voyez, faiseur 1120 00:59:57.479 --> 00:59:59.129 st en train de construire 1121 00:59:59.439 --> 01:00:02.290 'image de notre fichier talker 1122 01:00:04.320 --> 01:00:08.370 t il semble qu'il ait réussi là où il a commencé à créer l'image. 1123 01:00:08.379 --> 01:00:11.939 ous voyez ces étapes, ces directives que nous avons définies ici. 1124 01:00:11.949 --> 01:00:17.149 ous avons donc exécuté la première directive from. Ensuite, nous avons la copie 1125 01:00:17.350 --> 01:00:22.629 omme deuxième étape. Ensuite, nous avons copié le dossier source, les paramètres, le répertoire de travail. 1126 01:00:22.899 --> 01:00:26.939 t en exécutant N PM install, puis le dernier vient de démarrer l'application. 1127 01:00:27.149 --> 01:00:27.929 lors maintenant 1128 01:00:28.459 --> 01:00:30.610 i je fais des images Docker 1129 01:00:30.939 --> 01:00:32.070 n plus de ceux-ci 1130 01:00:32.500 --> 01:00:34.379 mages que nous avons téléchargées 1131 01:00:34.629 --> 01:00:36.060 récédemment depuis Docker Hub, 1132 01:00:36.429 --> 01:00:39.250 ous devrions réellement voir l'image que nous venons de créer. 1133 01:00:39.260 --> 01:00:42.110 l s'agit de l'image de l'application node avec une balise 1134 01:00:42.449 --> 01:00:43.510 ,0 1135 01:00:43.860 --> 01:00:44.810 t quelques autres informations. 1136 01:00:45.379 --> 01:00:46.760 'est donc notre image. 1137 01:00:46.770 --> 01:00:49.870 t maintenant nous pouvons démarrer cette image et travailler avec elle, 1138 01:00:49.879 --> 01:00:53.989 omme nous travaillons avec n'importe quelle autre image téléchargée depuis Docker Hub. 1139 01:00:54.000 --> 01:00:57.540 ous allons donc lancer un conteneur à partir de ce nœud 1140 01:00:57.610 --> 01:01:01.389 mage de l'application et assurez-vous que l'application qu'elle contient fonctionne réellement. 1141 01:01:01.629 --> 01:01:02.189 onc 1142 01:01:02.429 --> 01:01:03.679 ous allons faire Docker Run 1143 01:01:04.310 --> 01:01:04.949 310 1144 01:01:05.699 --> 01:01:06.159 pplication 1145 01:01:06.449 --> 01:01:09.550 mage avec 1.0 10 1146 01:01:10.219 --> 01:01:13.840 t nous allons passer un paramètre pour démarrer en mode détaché 1147 01:01:13.850 --> 01:01:17.600 850 et nous voulons également exposer le droit de port. 1148 01:01:17.860 --> 01:01:18.659 ous voulons 1149 01:01:18.830 --> 01:01:22.860 ouvoir accéder à l'application, à l'application nœud depuis l'hôte local 1150 01:01:23.139 --> 01:01:23.770 t 1151 01:01:24.000 --> 01:01:27.070 ous savons que l'application à l'intérieur du conteneur va démarrer 1152 01:01:27.080 --> 01:01:30.419 ur Port 3000 car c'est ce que nous avons défini ici. 1153 01:01:30.540 --> 01:01:33.899 'application elle-même s'exécutera donc sur le port 3000. 1154 01:01:34.179 --> 01:01:41.209 'est donc dans le conteneur, et nous pouvons le lier au port que nous voulons sur l'hôte local 1155 01:01:41.330 --> 01:01:45.010 t nous pouvons en faire 3000, comme dans le conteneur. 1156 01:01:45.209 --> 01:01:48.679 'est donc le port hôte et c'est le port du conteneur. 1157 01:01:49.000 --> 01:01:50.520 t maintenant, si j'exécute 1158 01:01:51.159 --> 01:01:52.050 st une commande 1159 01:01:52.550 --> 01:01:54.409 t faites Docker PS, 1160 01:01:54.909 --> 01:01:59.610 ous devrions voir notre application node s'exécuter sur le port 3000 1161 01:01:59.800 --> 01:02:01.449 t maintenant le moment de vérité 1162 01:02:01.590 --> 01:02:03.270 evenir au navigateur 1163 01:02:03.850 --> 01:02:06.709 t ouverture de l'hôte local 3000 1164 01:02:07.459 --> 01:02:11.429 oici notre bienvenue sur ma super application 1165 01:02:12.320 --> 01:02:14.610 essage de notre application. 1166 01:02:14.840 --> 01:02:17.060 t nous pouvons même vérifier les journaux 1167 01:02:17.370 --> 01:02:19.979 n saisissant l'identifiant de notre numéro 1168 01:02:20.169 --> 01:02:20.530 pplication 1169 01:02:21.189 --> 01:02:23.770 t en faisant des blocs Docker avec l'ID. 1170 01:02:24.239 --> 01:02:24.800 t 1171 01:02:25.080 --> 01:02:28.270 'est le résultat de notre application 1172 01:02:28.459 --> 01:02:29.649 l'intérieur du conteneur. 1173 01:02:30.040 --> 01:02:30.600 onc 1174 01:02:30.719 --> 01:02:33.040 'est aussi simple que vous pouvez accepter votre candidature, 1175 01:02:33.050 --> 01:02:38.540 e packagez-le dans une image docker à l'aide d'un fichier docker, puis exécutez-le en tant que conteneur 1176 01:02:42.189 --> 01:02:46.100 t revenons enfin à cette interface utilisateur graphique 1177 01:02:46.110 --> 01:02:49.120 lient que Docker Desktop nous fournit réellement. 1178 01:02:49.330 --> 01:02:54.560 aintenant, nous pouvons également voir tous nos conteneurs et images ici. 1179 01:02:54.590 --> 01:02:57.479 t c'est à ça que ressemble ce U I, il vous donne une assez bonne 1180 01:02:57.620 --> 01:02:58.219 ue d'ensemble 1181 01:02:58.350 --> 01:03:00.510 es conteneurs que vous avez. 1182 01:03:00.520 --> 01:03:05.899 esquels fonctionnent actuellement, lesquels sont arrêtés avec leur nom, etc. 1183 01:03:06.060 --> 01:03:09.300 t vous avez même quelques commandes ici pour démarrer un 1184 01:03:09.320 --> 01:03:12.969 arrêté le conteneur comme celui-ci ou même l'a arrêté à nouveau ? 1185 01:03:14.110 --> 01:03:16.669 edémarrez le conteneur, supprimez quoi que ce soit. 1186 01:03:16.870 --> 01:03:19.820 t de la même manière que vous avez une liste d'images, 1187 01:03:20.250 --> 01:03:21.840 compris notre propre image, 1188 01:03:21.850 --> 01:03:26.570 t vous pouvez également créer des conteneurs directement à partir d'ici à l'aide de certaines commandes. 1189 01:03:26.600 --> 01:03:27.159 onc 1190 01:03:27.290 --> 01:03:31.040 ersonnellement, je préfère l'interface de ligne de commande pour interagir avec Docker. 1191 01:03:31.050 --> 01:03:33.560 ais certains se sentent plus à l'aise avec 1192 01:03:33.719 --> 01:03:35.149 e visuel U. I 1193 01:03:35.320 --> 01:03:39.379 onc, selon votre préférence, vous pouvez choisir de travailler avec l'un ou l'autre. 1194 01:03:42.909 --> 01:03:46.879 ous avons maintenant appris de nombreux éléments de base de Docker. 1195 01:03:47.010 --> 01:03:47.620 ependant, 1196 01:03:47.629 --> 01:03:52.169 l est également intéressant de voir comment docker s'intègre réellement dans l'ensemble 1197 01:03:52.179 --> 01:03:55.320 rocessus de développement et de déploiement de logiciels avec 1198 01:03:55.330 --> 01:03:58.000 eaucoup d'autres technologies également. 1199 01:03:58.050 --> 01:04:02.745 es étapes de tout ce processus sont donc plus pertinentes. 1200 01:04:02.754 --> 01:04:05.125 onc, dans cette dernière partie du cours intensif, 1201 01:04:05.135 --> 01:04:10.764 ous allons voir une vue d'ensemble plus sombre du cycle de vie du développement logiciel. 1202 01:04:10.774 --> 01:04:15.554 onsidérons donc un scénario simplifié dans lequel vous développez un JAVASCRIPT 1203 01:04:15.564 --> 01:04:19.504 pplication sur votre ordinateur portable directement sur votre environnement de développement local. 1204 01:04:20.379 --> 01:04:23.610 otre application JavaScript utilise un Mongo 1205 01:04:23.929 --> 01:04:28.189 ase de données de base de données, et au lieu de l'installer sur votre ordinateur portable, 1206 01:04:28.199 --> 01:04:31.570 ous téléchargez un conteneur Docker depuis le hub Docker. 1207 01:04:32.030 --> 01:04:35.159 ous connectez donc votre application JavaScript au mongo 1208 01:04:35.449 --> 01:04:37.050 B et vous commencez à développer. 1209 01:04:37.649 --> 01:04:39.649 lors maintenant, disons que vous développez le 1210 01:04:39.659 --> 01:04:42.739 pplication première version de l'application localement, 1211 01:04:42.750 --> 01:04:47.000 t maintenant vous voulez le tester ou le déployer sur, euh, 1212 01:04:47.010 --> 01:04:49.479 nvironnement de développement où 1213 01:04:49.639 --> 01:04:52.159 n testeur de votre équipe va le tester. 1214 01:04:52.560 --> 01:04:56.300 ous validez donc votre application JavaScript dans git 1215 01:04:56.310 --> 01:04:58.780 u dans un autre système de contrôle de version. 1216 01:04:59.169 --> 01:05:03.120 uh, cela déclenchera une intégration continue. 1217 01:05:03.129 --> 01:05:06.139 ne version de Jenkins, ou tout ce que vous avez configuré 1218 01:05:06.389 --> 01:05:10.949 t Jenkins build produira des artefacts à partir de votre application. 1219 01:05:11.139 --> 01:05:15.080 onc d'abord, vous allez créer votre application JavaScript 1220 01:05:15.280 --> 01:05:16.000 t puis 1221 01:05:16.229 --> 01:05:21.550 réez une image docker à partir de cet artefact JavaScript. Hein ? 1222 01:05:21.879 --> 01:05:26.919 lors, qu'arrive-t-il à cette image docker ? Une fois qu'il est créé par Jenkins build 1223 01:05:27.229 --> 01:05:28.489 l est poussé 1224 01:05:28.669 --> 01:05:31.199 ers un dépôt Docker privé. 1225 01:05:31.209 --> 01:05:35.000 onc, généralement, dans une entreprise, vous avez un référentiel privé car 1226 01:05:35.010 --> 01:05:38.620 ous ne voulez pas que d'autres personnes aient accès à vos images. 1227 01:05:38.629 --> 01:05:40.060 onc, vous le poussez là. 1228 01:05:40.280 --> 01:05:41.169 t maintenant, 1229 01:05:41.479 --> 01:05:48.250 ar l'étape suivante pourrait être configurée sur Jenkins ou d'autres scripts ou outils, qui 1230 01:05:48.520 --> 01:05:49.879 mage Docker 1231 01:05:50.070 --> 01:05:52.620 oit être déployé sur un serveur de développement. 1232 01:05:53.033 --> 01:05:58.614 ous avez donc un serveur de développement qui extrait l'image du référentiel privé, 1233 01:05:58.864 --> 01:06:02.743 otre image d'application JavaScript, puis extrait le 1234 01:06:03.114 --> 01:06:07.104 a base de données dont dépend votre application javascript provient d'un Docker Hub. 1235 01:06:07.114 --> 01:06:09.233 t maintenant vous avez deux conteneurs, 1236 01:06:09.243 --> 01:06:13.604 n conteneur personnalisé et un Mogo accessible au public 1237 01:06:13.864 --> 01:06:17.874 e conteneur de base de données s'exécute sur le serveur de développement et ils communiquent entre eux. 1238 01:06:17.884 --> 01:06:18.897 ous devez le configurer. 1239 01:06:18.907 --> 01:06:23.758 ien sûr, ils parlent et communiquent entre eux et fonctionnent comme une application. 1240 01:06:23.768 --> 01:06:29.167 aintenant, si un testeur, par exemple, ou un autre développeur se connecte 1241 01:06:29.327 --> 01:06:32.558 ur un serveur de développement, ils pourront tester l'application. 1242 01:06:32.637 --> 01:06:35.847 l s'agit donc d'un flux de travail simplifié 1243 01:06:35.857 --> 01:06:38.887 onctionnera dans un processus de développement réel. 1244 01:06:38.897 --> 01:06:42.708 onc, en peu de temps, nous apprenons tous les éléments de base, 1245 01:06:42.718 --> 01:06:44.781 es parties les plus importantes de docker. 1246 01:06:44.971 --> 01:06:47.931 ous comprenez donc ce que sont les images, comment démarrer des conteneurs, 1247 01:06:48.052 --> 01:06:50.181 omment ils fonctionnent et comment y accéder, 1248 01:06:50.191 --> 01:06:54.781 t comment créer votre propre image docker et l'exécuter en tant que conteneur. 1249 01:06:55.152 --> 01:06:59.812 ais si vous voulez en savoir plus sur Docker et mettre encore plus en pratique vos compétences 1250 01:06:59.941 --> 01:07:03.152 omme comment connecter votre application à un conteneur Docker, 1251 01:07:03.382 --> 01:07:07.132 écouvrez des choses plus sombres, composez des volumes plus sombres, etc. 1252 01:07:07.142 --> 01:07:09.325 ous pouvez vraiment regarder mon acteur complet 1253 01:07:09.545 --> 01:07:12.075 utoriel. Et si tu veux apprendre, fais 1254 01:07:12.716 --> 01:07:13.966 ans le contexte des développeurs 1255 01:07:14.656 --> 01:07:19.756 t maîtrisez-le vraiment avec des choses comme les registres privés à l'aide de Doer 1256 01:07:19.986 --> 01:07:21.575 our exécuter Jenkins, 1257 01:07:21.656 --> 01:07:24.895 ntégrer docker dans les pipelines CS CD et 1258 01:07:24.906 --> 01:07:28.236 tilisez-le avec diverses autres technologies comme terraform 1259 01:07:28.466 --> 01:07:29.335 ctiver, etc. 1260 01:07:29.345 --> 01:07:31.825 ous pouvez consulter notre camp d'entraînement complet sur le devops 1261 01:07:31.835 --> 01:07:34.496 ù vous apprendrez tout cela et bien plus encore.