1 00:00:00,000 --> 00:00:05,042 >> [Jouer de la musique] 2 00:00:05,042 --> 00:00:06,000 DAVID MALAN: Très bien. 3 00:00:06,000 --> 00:00:07,630 Merci beaucoup d'être venus. 4 00:00:07,630 --> 00:00:11,850 Ce séminaire est de CS50 sur Docker, un la technologie que nous-mêmes et nous tendons CS50 5 00:00:11,850 --> 00:00:13,392 ont commencé à utiliser pendant un certain temps maintenant. 6 00:00:13,392 --> 00:00:15,766 Donc, mon nom est David Malan, je enseigner Introduction Harvard 7 00:00:15,766 --> 00:00:16,671 à l'informatique. 8 00:00:16,671 --> 00:00:18,670 Pour pas mal d'années, nous avons donné étudiants 9 00:00:18,670 --> 00:00:20,435 côté client téléchargeable machines virtuelles 10 00:00:20,435 --> 00:00:22,134 sur lequel ils font leurs problèmes ensembles. 11 00:00:22,134 --> 00:00:24,300 Que nous avons maintenant la transition à un environnement de cloud 12 00:00:24,300 --> 00:00:27,396 qui utilise effectivement cette technologie Docker appelé, de telle sorte que tout le CS50 13 00:00:27,396 --> 00:00:29,270 les étudiants ont maintenant leur Docker conteneurs propres 14 00:00:29,270 --> 00:00:31,180 que vous allez bientôt entendre tout au sujet. 15 00:00:31,180 --> 00:00:33,740 >> En outre, sur le serveur de CS50 pôle côté, depuis de nombreuses années 16 00:00:33,740 --> 00:00:35,290 nous utilisions Couverture serveur d'Amazon. 17 00:00:35,290 --> 00:00:37,164 Nous courions individuelle machines virtuelles. 18 00:00:37,164 --> 00:00:40,330 Cela aussi, nous avons commencé à faire la transition vers ces choses appelées conteneurs Docker 19 00:00:40,330 --> 00:00:43,762 de sorte que toutes nos applications sont maintenant parfaitement isolé les uns des autres. 20 00:00:43,762 --> 00:00:46,720 Donc, pour cela et plus encore, permettez-moi de présenter nos amis, Nico et Mano, 21 00:00:46,720 --> 00:00:48,574 Docker de lui-même. 22 00:00:48,574 --> 00:00:49,740 NICOLA KABAR: Merci, David. 23 00:00:49,740 --> 00:00:51,410 Bonjour à tous. 24 00:00:51,410 --> 00:00:54,230 Mon nom est Nico et cela est Mano. 25 00:00:54,230 --> 00:00:58,260 Nous sommes de Docker. 26 00:00:58,260 --> 00:01:02,240 Nous allons parler about-- vous donnant gars une intro à Docker, 27 00:01:02,240 --> 00:01:08,100 et nous espérons que, vers la fin de cet exposé vous pouvez réaliser 28 00:01:08,100 --> 00:01:12,890 combien vous pouvez utiliser médecin oxalate développement de votre application 29 00:01:12,890 --> 00:01:14,200 et le déploiement. 30 00:01:14,200 --> 00:01:21,250 >> Donc, nous allons commencer réel rapide avec quelques informations de base. 31 00:01:21,250 --> 00:01:22,750 Décrivez ce que Docker est tout au sujet. 32 00:01:22,750 --> 00:01:25,490 Comment ça marche? 33 00:01:25,490 --> 00:01:27,400 Comment est-il architecturé? 34 00:01:27,400 --> 00:01:29,360 Je vais faire quelques démos. 35 00:01:29,360 --> 00:01:35,070 Et Mano va être décrivant comment pouvez-vous utiliser Docker 36 00:01:35,070 --> 00:01:37,720 et de vous donner des mesures précises comment vous pouvez commencer. 37 00:01:37,720 --> 00:01:41,490 >> Je vous serais reconnaissant si vous les gars peuvent tenir off pour vos questions vers la fin. 38 00:01:41,490 --> 00:01:46,800 De cette façon, je pourrais être répondre à ces questions tout au long de la présentation. 39 00:01:46,800 --> 00:01:52,150 Donc, nous allons laisser du temps vers la fin des questions. 40 00:01:52,150 --> 00:01:55,170 >> Il suffit donc de réel rapide, qui a effectivement déjà travaillé sur Docker, 41 00:01:55,170 --> 00:01:56,850 comme joué avec elle? 42 00:01:56,850 --> 00:01:58,000 Impressionnant. 43 00:01:58,000 --> 00:01:58,520 Cool. 44 00:01:58,520 --> 00:01:59,817 Formidable. 45 00:01:59,817 --> 00:02:01,525 Donc, je vais commencer avec un peu d'histoire. 46 00:02:01,525 --> 00:02:04,350 47 00:02:04,350 --> 00:02:09,820 Donc, retour dans les années 90 et début des années 2000, essentiellement 48 00:02:09,820 --> 00:02:16,940 que les développeurs web, les développeurs d'applications, quand ils sont allés à déployer une application 49 00:02:16,940 --> 00:02:19,350 il a été lié à un métal nu. 50 00:02:19,350 --> 00:02:20,860 Il était un serveur. 51 00:02:20,860 --> 00:02:22,870 Il était une application. 52 00:02:22,870 --> 00:02:25,260 >> Traditionnellement, un exemple serait comme une pile LAMP, 53 00:02:25,260 --> 00:02:30,630 où vous aviez fait à mettre en place le bassin de ressources. 54 00:02:30,630 --> 00:02:37,110 CPU, mémoire, disque, réseau, installation système d'exploitation sur le dessus de cela. 55 00:02:37,110 --> 00:02:40,060 Si vous êtes au service de quelque chose, si vous êtes réellement avec serveur web, 56 00:02:40,060 --> 00:02:42,470 vous avez besoin de quelque chose comme Apache pour servir. 57 00:02:42,470 --> 00:02:47,540 >> Si votre demande base de données doit, revers, 58 00:02:47,540 --> 00:02:50,840 vous installer quelque chose comme MySQL, et ainsi de suite. 59 00:02:50,840 --> 00:02:55,910 Et si vous avez besoin du moment de l'exécution, de PHP et le travail PHP Python étaient là. 60 00:02:55,910 --> 00:02:59,480 Et si nous avions réellement prendre ces étapes dans l'ordre 61 00:02:59,480 --> 00:03:02,060 pour obtenir votre application et l'exécution. 62 00:03:02,060 --> 00:03:08,440 >> Si vous avez besoin plus de puissance de calcul que vous, essentiellement dû appeler votre Ops gars 63 00:03:08,440 --> 00:03:16,260 ou gal aller et accumuler une nouvelle pièce de matériel, le brancher, 64 00:03:16,260 --> 00:03:19,850 et vous avez à répéter ceux processus encore et encore. 65 00:03:19,850 --> 00:03:23,680 Donc, ce processus était relativement coûteux. 66 00:03:23,680 --> 00:03:26,080 Était vraiment très lent. 67 00:03:26,080 --> 00:03:27,550 >> Il était inefficace. 68 00:03:27,550 --> 00:03:33,890 Et dans beaucoup de cas, votre le matériel a été sous-utilisé. 69 00:03:33,890 --> 00:03:38,830 Donc, en fin des années 90 et au début des années 2000, virtualisation matérielle est venu à travers. 70 00:03:38,830 --> 00:03:42,475 Et comme vous pouvez le voir ici dans la image, essentiellement ce qu'ils ont fait 71 00:03:42,475 --> 00:03:46,390 est soustrait de la piscine ressources matérielles gratuits 72 00:03:46,390 --> 00:03:49,680 et le type de ceux servis pour les couches supérieures, 73 00:03:49,680 --> 00:03:52,360 dans ce cas, un système d'exploitation invité. 74 00:03:52,360 --> 00:03:54,940 >> Et l'idée de machines virtuelles ont rencontré 75 00:03:54,940 --> 00:03:59,110 et que vraiment aidé Couverture informatique que nous connaissons aujourd'hui. 76 00:03:59,110 --> 00:04:02,730 Donc, ce que cela signifiait est que vous peut fonctionner plusieurs machines virtuelles, ce qui 77 00:04:02,730 --> 00:04:06,720 signifié plusieurs piles, multiple application sur une même machine physique. 78 00:04:06,720 --> 00:04:10,570 79 00:04:10,570 --> 00:04:16,440 >> Cette certainement aidé à la vitesse de déploiement des applications. 80 00:04:16,440 --> 00:04:17,629 Certainement avec frais. 81 00:04:17,629 --> 00:04:22,810 Vous ne devez pas aller passer énergie, de temps et de ressources pour en rack 82 00:04:22,810 --> 00:04:26,210 plusieurs serveurs pour se rendre à plus de calcul. 83 00:04:26,210 --> 00:04:30,950 Et la vitesse de la porte en réalité Ces ressources en place est beaucoup plus rapide. 84 00:04:30,950 --> 00:04:31,450 Formidable. 85 00:04:31,450 --> 00:04:34,320 >> Donc nous avons résolu faim dans le monde, non? 86 00:04:34,320 --> 00:04:36,390 Non pas vraiment. 87 00:04:36,390 --> 00:04:42,410 Donc, la virtualisation autant qu'il est effectivement aidé, résoudre le problème, 88 00:04:42,410 --> 00:04:45,460 elle a effectivement introduit un grand nombre de défis. 89 00:04:45,460 --> 00:04:49,210 L'hyperviseur définitivement introduit beaucoup de complexité, 90 00:04:49,210 --> 00:04:53,820 ceux qui sous-tend la manipulation pool de ressources. 91 00:04:53,820 --> 00:04:57,910 >> Il est plus lourd dans le sens avant vous aviez un système d'exploitation unique qui 92 00:04:57,910 --> 00:05:01,830 est comme trois, quatre concerts sur le disque. 93 00:05:01,830 --> 00:05:04,230 Maintenant, si vous avez 10 machines sur un seul matériel 94 00:05:04,230 --> 00:05:09,060 vous devez multiplier ce par le nombre de machines. 95 00:05:09,060 --> 00:05:11,440 Il est certainement plus cher dans un sens vous avez encore 96 00:05:11,440 --> 00:05:14,430 avoir à obtenir de licence pour la technologie de virtualisation 97 00:05:14,430 --> 00:05:18,210 si elle est pas open source. 98 00:05:18,210 --> 00:05:21,120 >> Mais, il ne faut pas prendre tout le crédit de la virtualisation. 99 00:05:21,120 --> 00:05:27,530 Parce que ce qui est arrivé est qu'il ya une beaucoup de piles et beaucoup de logiciels 100 00:05:27,530 --> 00:05:33,900 technologies qui ont été activées par quelle vitesse vous étiez en mesure d'obtenir 101 00:05:33,900 --> 00:05:38,040 aux ressources avec le boom Cloud. 102 00:05:38,040 --> 00:05:46,675 >> Donc, aujourd'hui, une seule application ou service peut être en utilisant une des runtimes suivants 103 00:05:46,675 --> 00:05:47,216 ou bases de données. 104 00:05:47,216 --> 00:05:50,250 105 00:05:50,250 --> 00:05:56,070 PHP, Python, MySQL, Redis, autres joyeusetés. 106 00:05:56,070 --> 00:05:59,740 Donc, il ya beaucoup de complexité sur ce nombre de piles à réellement mettre en place 107 00:05:59,740 --> 00:06:02,210 un service unique. 108 00:06:02,210 --> 00:06:07,300 Et avec cela, vous avez eu beaucoup de les ressources sous-jacents ou des infrastructures 109 00:06:07,300 --> 00:06:15,210 types de tester et de déployer essentiellement prendre à la production de ces applications 110 00:06:15,210 --> 00:06:16,900 que vous êtes en développement. 111 00:06:16,900 --> 00:06:21,950 >> Surtout que vos équipes ont Cultivé à travailler sur ces applications, 112 00:06:21,950 --> 00:06:25,310 il ya beaucoup de complexité et les défis 113 00:06:25,310 --> 00:06:31,660 qui ont été amenés à faire en sorte que l'cycle-- essentiellement demande 114 00:06:31,660 --> 00:06:34,040 cycle de développement, est en fait efficace. 115 00:06:34,040 --> 00:06:40,440 Donc, le fait que votre application travaille localement sur votre VM locale 116 00:06:40,440 --> 00:06:47,480 ne garantit pas que votre collègue va attendre les mêmes résultats. 117 00:06:47,480 --> 00:06:51,330 >> Et quand l'équipe des opérations est impliqué dans ce que vous avez prise de 118 00:06:51,330 --> 00:06:54,480 et le déployer en production échelle, aussi il n'y a pas de garantie 119 00:06:54,480 --> 00:06:56,730 que ce qui se passe réellement à se produire. 120 00:06:56,730 --> 00:07:00,900 Donc, cela nous laisse avec une très big-- beaucoup de points d'interrogation, 121 00:07:00,900 --> 00:07:07,700 beaucoup de défis effectivement face similaire à l'époque. 122 00:07:07,700 --> 00:07:12,280 Et cela nous rappelle des l'industrie du transport maritime. 123 00:07:12,280 --> 00:07:14,280 >> Donc, l'industrie du transport a eu beaucoup de produits, 124 00:07:14,280 --> 00:07:16,190 comme vous pouvez le voir sur le côté gauche. 125 00:07:16,190 --> 00:07:19,840 Et sur le côté droit, il ya beaucoup de, au fond, 126 00:07:19,840 --> 00:07:22,160 façons d'expédier ces marchandises. 127 00:07:22,160 --> 00:07:26,040 Et ce qui se passe en couple les gens se sont réunis et ont dit, 128 00:07:26,040 --> 00:07:29,600 nous avons besoin de normaliser la façon dont nous expédions réellement ces produits. 129 00:07:29,600 --> 00:07:33,280 Et boum, vous avez la conteneur intermodal de transport. 130 00:07:33,280 --> 00:07:38,970 >> Donc, ils ont convenu de la plus tailles communes pour le récipient. 131 00:07:38,970 --> 00:07:40,160 Comment les gérer. 132 00:07:40,160 --> 00:07:44,560 Qu'est-ce exact méthode, vous devez pour les charger et les décharger. 133 00:07:44,560 --> 00:07:49,590 Et donc, ce que vraiment aidé l'industrie du transport maritime. 134 00:07:49,590 --> 00:07:55,250 Maintenant, plus de 90% accent transporté à l'échelle mondiale sont l'utilisation de ces conteneurs. 135 00:07:55,250 --> 00:08:01,010 Et qui diminue certainement les dépenses ainsi que 136 00:08:01,010 --> 00:08:03,400 les dommages dus à l'expédition. 137 00:08:03,400 --> 00:08:09,660 >> Donc, nous prenons le même modèle et nous appliquer le logiciel de développement de deux app 138 00:08:09,660 --> 00:08:13,080 l'architecture, dans le sens que la conteneurisation 139 00:08:13,080 --> 00:08:15,842 a pris la virtualisation d'un niveau. 140 00:08:15,842 --> 00:08:17,800 Ainsi, au lieu de le faire au niveau du matériel, 141 00:08:17,800 --> 00:08:22,060 il est devenu plus d'une exploitation la virtualisation au niveau du système. 142 00:08:22,060 --> 00:08:26,450 >> Et nous le faisons en fournissant à chaque application dans sa propre léger, 143 00:08:26,450 --> 00:08:31,180 isolé, exécutable, et portable, surtout, 144 00:08:31,180 --> 00:08:35,049 un moyen de réellement emballer tout ce qu'il a besoin pour fonctionner. 145 00:08:35,049 --> 00:08:36,100 Partout où il peut être exécuté. 146 00:08:36,100 --> 00:08:42,039 Donc, peu importe si vous êtes à court sur environnement de dev locale, votre production 147 00:08:42,039 --> 00:08:44,490 environnement, votre mise en scène ou de tests. 148 00:08:44,490 --> 00:08:47,700 Peu importe ce que sous-jacente infrastructure est là, 149 00:08:47,700 --> 00:08:51,410 vous aviez une application de travail fonctionnel. 150 00:08:51,410 --> 00:08:54,100 151 00:08:54,100 --> 00:09:01,800 >> Voilà donc exactement ce essentiellement conteneurs font à ce problème. 152 00:09:01,800 --> 00:09:04,070 Ils abordent par emballer de telle manière 153 00:09:04,070 --> 00:09:09,490 qu'il peut garantir qu'il est déployé avec succès, peu importe où elle vit. 154 00:09:09,490 --> 00:09:12,120 Donc, si vous allez comme, Bob il est encore OK. 155 00:09:12,120 --> 00:09:17,860 Si vous êtes confus avec ce que je dis, Je vais être élaborer sur ce point. 156 00:09:17,860 --> 00:09:20,900 >> Alors, comment fait elle-même Docker tenir dans cette image? 157 00:09:20,900 --> 00:09:26,335 Donc Docker est une plateforme ouverte de facilement, souligner facilement, 158 00:09:26,335 --> 00:09:30,500 pour construire navire, courir, auto portable léger 159 00:09:30,500 --> 00:09:33,440 récipients app suffisantes partout. 160 00:09:33,440 --> 00:09:37,660 Donc, si vous prenez quelque chose à partir de ce parler, s'il vous plaît prendre le suivant. 161 00:09:37,660 --> 00:09:40,980 >> Si vous avez votre application en cours d'exécution localement et vous l'avez développé 162 00:09:40,980 --> 00:09:45,930 dans l'utilisation de la plate-forme Docker, attendez- d'être déployée avec succès. 163 00:09:45,930 --> 00:09:49,380 Peu importe quelle est la infrastructure sous-jacente. 164 00:09:49,380 --> 00:09:53,830 Donc, si vous avez un Docker récipient et ça marche, puis 165 00:09:53,830 --> 00:09:58,130 aussi longtemps que il ya un Docker moteur de l'autre side-- 166 00:09:58,130 --> 00:10:02,190 si votre infrastructure de fonctionnement utilise toute Nuage, si elle 167 00:10:02,190 --> 00:10:06,680 AWS est, ou Google ou Microsoft, ou l'un des Clouds publics, 168 00:10:06,680 --> 00:10:10,010 ou votre propre Cloud, ou votre pile ouverte Nuage, ou de votre environnement local. 169 00:10:10,010 --> 00:10:11,970 >> Si vous avez un moteur course, ce que des moyens 170 00:10:11,970 --> 00:10:14,537 Ce sera déployé avec succès il. 171 00:10:14,537 --> 00:10:16,620 Il va être exécuté exactement le même comportement 172 00:10:16,620 --> 00:10:21,480 comme vous architecturé qu'il soit. 173 00:10:21,480 --> 00:10:26,080 Donc, si nous regardons at-- je vais à passer par ce fait 174 00:10:26,080 --> 00:10:29,160 sont les principales composantes de Docker. 175 00:10:29,160 --> 00:10:31,060 >> Donc moteur est au cœur de Docker. 176 00:10:31,060 --> 00:10:32,770 Il est le cerveau de. 177 00:10:32,770 --> 00:10:39,360 Il orchestre bâtiment, le transport maritime, et déploiement et de gestion 178 00:10:39,360 --> 00:10:41,570 les récipients eux-mêmes. 179 00:10:41,570 --> 00:10:45,160 Je vais creuser dans ce moteur ne en plus de détails dans une seconde. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 Fondamentalement, parce que le docteur a été construit autour des architectures client-serveur, 182 00:10:51,720 --> 00:10:56,630 Ainsi, afin d'interagir avec le Moteur vous avez besoin d'une sorte de client. 183 00:10:56,630 --> 00:11:01,200 >> Les images sont les modèles dans qui sont construites à partir de conteneurs. 184 00:11:01,200 --> 00:11:06,800 Donc, les images sont essentiellement juste fichiers statiques. 185 00:11:06,800 --> 00:11:08,740 Modèles et conteneurs est en fait ce qui est 186 00:11:08,740 --> 00:11:12,280 est en cours d'exécution lors de l'exécution que est au service de votre demande 187 00:11:12,280 --> 00:11:15,150 ou faire quelque chose avec les données. 188 00:11:15,150 --> 00:11:19,020 >> Registre est abordée comme un problème de comment vous distribuez effectivement images. 189 00:11:19,020 --> 00:11:23,230 Donc, si vous avez besoin de partager une image que vous avez travaillé sur votre collègue 190 00:11:23,230 --> 00:11:27,220 ou à l'équipe de l'OPS, vous utiliser à l'aide du Registre. 191 00:11:27,220 --> 00:11:31,720 Vous pouvez télécharger une open source version de celui qui a travaillé sur Docker 192 00:11:31,720 --> 00:11:33,150 et en open source. 193 00:11:33,150 --> 00:11:38,040 >> Ou vous pouvez utiliser Docker aide, qui est la version Couverture 194 00:11:38,040 --> 00:11:40,130 pour pousser et tirer des images là-bas. 195 00:11:40,130 --> 00:11:41,160 Voilà une chose énorme. 196 00:11:41,160 --> 00:11:44,520 Parce qu'il ya un énorme écosystème autour Docker et il est 197 00:11:44,520 --> 00:11:48,960 vraiment très utilisant le moyeu. 198 00:11:48,960 --> 00:11:59,780 >> Donc, pour résumer ici, voilà comment le minimaliste client de workflow Docker. 199 00:11:59,780 --> 00:12:04,040 Vous interagissez avec l'hôte, en ce cas ce sont les démons Docker. 200 00:12:04,040 --> 00:12:06,490 Il est la même chose que moteur. 201 00:12:06,490 --> 00:12:09,690 Vous faites des commandes comme Docker construire, tirer, courir. 202 00:12:09,690 --> 00:12:14,280 Et le moteur lui-même va et fait ces choses. 203 00:12:14,280 --> 00:12:18,010 >> Donc, soit il interagit avec Greffe de retirer ces images 204 00:12:18,010 --> 00:12:19,670 et les couches des images. 205 00:12:19,670 --> 00:12:25,030 Que si vous souhaitez déployer, exécuter conteneurs, les tuer, de les jeter en bas, 206 00:12:25,030 --> 00:12:25,730 étagère. 207 00:12:25,730 --> 00:12:32,190 Donc, ce résume le flux de travail de l'ensemble de ces composants. 208 00:12:32,190 --> 00:12:34,710 >> Donc, si vous prenez tous les composant lui-même. 209 00:12:34,710 --> 00:12:37,690 Donc moteur, il est juste un démon. 210 00:12:37,690 --> 00:12:40,800 Il va sorte de jouer pour soutenir sur Linux parce qu'il fait 211 00:12:40,800 --> 00:12:44,380 exiger certaines fonctionnalités du noyau Linux. 212 00:12:44,380 --> 00:12:48,820 Mais Windows travaille de faire la même chose. 213 00:12:48,820 --> 00:12:53,720 Il est censé être soutenu par Windows Server 2,016. 214 00:12:53,720 --> 00:13:01,500 >> Encore une fois, les responsabilités avec le moteur est à, ou sont pour, construire des images. 215 00:13:01,500 --> 00:13:05,340 Tirez images du Docker Hub ou votre propre registre. 216 00:13:05,340 --> 00:13:07,840 Si vous en avez terminé avec ces images ou vous créez une nouvelle images, 217 00:13:07,840 --> 00:13:14,770 vous pouvez pousser ceux qui reviennent de registre de les distribuer à d'autres équipes. 218 00:13:14,770 --> 00:13:18,300 >> Et en essayant de contenir localement et de gérer le cycle de vie des conteneurs 219 00:13:18,300 --> 00:13:19,260 localement. 220 00:13:19,260 --> 00:13:22,010 Il est construit autour API REST HTTP. 221 00:13:22,010 --> 00:13:24,480 Donc, techniquement, vous pouvez écrire votre propre client 222 00:13:24,480 --> 00:13:31,650 dans la mesure où il utilise le protocole HTTP, ce qui est un très mécanisme standard de parler à moteur 223 00:13:31,650 --> 00:13:33,110 et beaucoup d'autres services. 224 00:13:33,110 --> 00:13:35,780 Et vous pouvez le voir ici que quel que soit 225 00:13:35,780 --> 00:13:39,010 de ce que l'infrastructure est, aussi longtemps que vous can-- tous 226 00:13:39,010 --> 00:13:42,170 vous avez besoin est une exploitation système, de Linux spécifiquement. 227 00:13:42,170 --> 00:13:45,460 >> Et vous pouvez installer Docker moteur en plus de cela et le faire courir 228 00:13:45,460 --> 00:13:48,970 et elle orchestre, essentiellement, tous ces app un, deux, 229 00:13:48,970 --> 00:13:51,530 et trois sont des conteneurs réels. 230 00:13:51,530 --> 00:13:53,990 Voilà donc Engine. 231 00:13:53,990 --> 00:13:58,040 Comme je l'ai mentionné plus tôt, car vous devez interagir avec moteur, 232 00:13:58,040 --> 00:13:59,200 il ya le client. 233 00:13:59,200 --> 00:14:03,180 >> Mais en réalité, lorsque vous installez Docker, il est livré avec elle. 234 00:14:03,180 --> 00:14:06,110 Donc, il est installé, il est donc un seul binaire. 235 00:14:06,110 --> 00:14:11,830 Et vous pouvez faire des appels locaux Docker à votre moteur. 236 00:14:11,830 --> 00:14:14,040 Ou des appels à distance Moteurs éloignées. 237 00:14:14,040 --> 00:14:16,600 238 00:14:16,600 --> 00:14:19,590 Il ne Utiliser HTTP, comme Je l'ai mentionné plus tôt. 239 00:14:19,590 --> 00:14:24,200 Il ya un client GUI appelé Kitematic de Docker. 240 00:14:24,200 --> 00:14:26,390 Et il ya certainement beaucoup d'autres gens 241 00:14:26,390 --> 00:14:29,740 qui construisent beaucoup de Interfaces graphiques qui mettent en œuvre essentiellement 242 00:14:29,740 --> 00:14:32,980 HTTP appelle certains à parler à moteur. 243 00:14:32,980 --> 00:14:35,920 244 00:14:35,920 --> 00:14:39,280 >> Juste quelques exemples de commandes. 245 00:14:39,280 --> 00:14:44,620 Si vous faites la version Docker, il serait vous montrer la version du client ainsi que 246 00:14:44,620 --> 00:14:47,030 la version du serveur. 247 00:14:47,030 --> 00:14:49,500 Si vous le faites d'info Docker il sera vous dire toutes les informations 248 00:14:49,500 --> 00:14:54,300 sur le nombre de conteneurs sont en cours d'exécution ou créés, le nombre d'images que vous avez, 249 00:14:54,300 --> 00:14:56,530 Ainsi de suite. 250 00:14:56,530 --> 00:15:01,850 >> Ici, je dois, dans l'avant- dernière case, je dois Docteur terme. 251 00:15:01,850 --> 00:15:04,970 Voilà donc comment je suis effectivement créer récipient. 252 00:15:04,970 --> 00:15:08,960 Et je te le donne écho Bonjour tout le monde et dormir pendant une seconde et ainsi de suite. 253 00:15:08,960 --> 00:15:12,830 Et vous pouvez voir le résultat. Il est donc en cours. 254 00:15:12,830 --> 00:15:16,930 Et semblable à ps Linux, vous pouvez voir tous les processus et, dans ce cas, 255 00:15:16,930 --> 00:15:18,540 tous les conteneurs de fonctionnement. 256 00:15:18,540 --> 00:15:23,430 Le dos de celui-ci se référant à le récipient Je viens de créer. 257 00:15:23,430 --> 00:15:27,560 >> Donc, ce qui est vraiment important parce que, comme, il peut être un peu déroutant. 258 00:15:27,560 --> 00:15:33,050 Donc, les images sont en lecture seule collection de fichiers, non? 259 00:15:33,050 --> 00:15:37,000 Ils sont ce que notre conteneur est basé sur. 260 00:15:37,000 --> 00:15:40,340 Mais ils sont seulement en lecture seule. 261 00:15:40,340 --> 00:15:44,330 Donc, vous commencez avec une image de base. 262 00:15:44,330 --> 00:15:50,180 Elle tend à imiter OS-like, donc Ubuntu, image de base de joyeusetés CentOS,. 263 00:15:50,180 --> 00:15:53,990 Et puis vous commencez à construire au-dessus de que, certaines couches, qui fera place 264 00:15:53,990 --> 00:16:00,010 votre image de fin, le résultat final ici. 265 00:16:00,010 --> 00:16:03,220 >> Et chacune de ces couches devrait avoir une image de parent 266 00:16:03,220 --> 00:16:06,690 qu'il référence quand il veut réellement créer. 267 00:16:06,690 --> 00:16:09,922 Ils sont immuables, dans le sens que parce qu'ils sont en lecture seule, 268 00:16:09,922 --> 00:16:11,630 vous ne pouvez pas réellement apporter des changements à eux. 269 00:16:11,630 --> 00:16:17,540 Vous pouvez les utiliser pour créer un récipient à partir d'une image dans laquelle 270 00:16:17,540 --> 00:16:23,530 vais appeler tous subséquente images requises dessous. 271 00:16:23,530 --> 00:16:26,400 >> Vous pouvez apporter des modifications à une couche différente, 272 00:16:26,400 --> 00:16:28,810 il est une couche de réécriture je vais parler dans une seconde. 273 00:16:28,810 --> 00:16:31,350 Mais chacune de ces couches ne sont jamais changé. 274 00:16:31,350 --> 00:16:34,300 275 00:16:34,300 --> 00:16:38,670 Fondamentalement images utilisent quelque chose appelé Union File System, UFS. 276 00:16:38,670 --> 00:16:42,280 Et il ya de stockage différente backends qui utilisent cette technologie. 277 00:16:42,280 --> 00:16:49,430 Et qu'est-ce que cela signifie est que ce rassemble les systèmes de fichiers distincts 278 00:16:49,430 --> 00:16:51,190 pour les faire ressembler à un. 279 00:16:51,190 --> 00:16:54,460 >> Ainsi, vous pouvez effectivement, à partir de un point de vue de l'application, 280 00:16:54,460 --> 00:16:59,570 vous disposez d'un sommet d'une vue qui affiche Tout le système de fichier différent nécessaire 281 00:16:59,570 --> 00:17:01,120 pour que l'application à exécuter. 282 00:17:01,120 --> 00:17:04,400 Mais ils sont en fait, à ce sujet, ils sont en fait dans des endroits séparés 283 00:17:04,400 --> 00:17:06,410 et étant utilisé par d'autres conteneurs ainsi. 284 00:17:06,410 --> 00:17:09,569 285 00:17:09,569 --> 00:17:14,410 >> Donc, comme vous pouvez le voir ici que si nous commençons à l'image du démon avec 286 00:17:14,410 --> 00:17:18,619 comme une image de base, et ensuite nous allons dans et ajoutons [? emacs?] 287 00:17:18,619 --> 00:17:20,720 puis qui est une autre couche. 288 00:17:20,720 --> 00:17:21,916 Et puis ajoutez Apache. 289 00:17:21,916 --> 00:17:22,790 Voilà une autre couche. 290 00:17:22,790 --> 00:17:25,470 Et puis nous passons la conteneur de cela. 291 00:17:25,470 --> 00:17:29,760 Chacune de ces images, chacune de ces couches, 292 00:17:29,760 --> 00:17:35,530 est distincte et peut être réutilisés par d'autres conteneurs. 293 00:17:35,530 --> 00:17:40,070 >> Si vous regardez les conteneurs eux-mêmes, ils sont un peu comme VM-like, 294 00:17:40,070 --> 00:17:41,930 mais ne sont pas traitées en même temps. 295 00:17:41,930 --> 00:17:49,180 Donc, ils ne sont pas, techniquement, le système d'exploitation complet en dessous. 296 00:17:49,180 --> 00:17:52,630 Ils utilisent le même noyau du système d'exploitation hôte. 297 00:17:52,630 --> 00:17:54,440 Et ils construisent sur le dessus de cela. 298 00:17:54,440 --> 00:17:56,250 Ils imitent la façon dont ils regardent. 299 00:17:56,250 --> 00:18:00,710 Ils imitent leur dossier racine le système de système d'exploitation. 300 00:18:00,710 --> 00:18:04,930 Mais en fait ils ne répliquent pas. 301 00:18:04,930 --> 00:18:12,080 >> Donc, au lieu d'avoir des couches immuables, la dernière couche, qui est le récipient 302 00:18:12,080 --> 00:18:14,690 lui-même, il ya une couche de lecture-écriture. 303 00:18:14,690 --> 00:18:17,350 Cela va également les processus de votre application. 304 00:18:17,350 --> 00:18:23,530 Et cela dépend des couches sous-jacentes. 305 00:18:23,530 --> 00:18:26,730 Chaque conteneur est créé à partir d'une image. 306 00:18:26,730 --> 00:18:32,450 Et que l'image peut être une simple couche ou une image multicouche. 307 00:18:32,450 --> 00:18:37,200 >> Et je tiens à souligner ici Docker qui utilise largement, 308 00:18:37,200 --> 00:18:40,370 ou est basé sur copy-on-write mécanisme. 309 00:18:40,370 --> 00:18:44,350 Alors que, en fait, si vous n'êtes pas apporter des modifications au récipient, 310 00:18:44,350 --> 00:18:45,930 ça ne va pas prendre de l'espace supplémentaire. 311 00:18:45,930 --> 00:18:49,600 Voilà donc essentiellement comment vous résumer un copy-on-write. 312 00:18:49,600 --> 00:18:53,820 Il va accélérer certainement jusqu'à le temps de démarrage pour le conteneur. 313 00:18:53,820 --> 00:18:56,300 Parce que si vous ne faites pas des modifications au récipient, 314 00:18:56,300 --> 00:18:57,800 elle est utiliser ce qui existe déjà. 315 00:18:57,800 --> 00:19:01,130 316 00:19:01,130 --> 00:19:02,955 >> Alors, comment cela fonctionne réellement. 317 00:19:02,955 --> 00:19:06,920 318 00:19:06,920 --> 00:19:14,240 Une partie de ce est comme, en ce moment, il utilise au moins deux noyau clé 319 00:19:14,240 --> 00:19:14,820 fonctionnalités. 320 00:19:14,820 --> 00:19:17,660 Et qui est essentiellement ce que créé ce niveau d'isolement 321 00:19:17,660 --> 00:19:19,550 pour les récipients eux-mêmes. 322 00:19:19,550 --> 00:19:22,290 Ces caractéristiques sont espaces de noms et les groupes de contrôle. 323 00:19:22,290 --> 00:19:29,870 Donc, les espaces de noms sont un moyen de créer des ressources isolées, 324 00:19:29,870 --> 00:19:36,290 de sorte que l'intérieur du récipient lui-même, seulement vous pouvez voir certaines ressources. 325 00:19:36,290 --> 00:19:40,030 Tels que l'interface réseau ou les certains utilisateurs ou autres joyeusetés. 326 00:19:40,030 --> 00:19:44,160 >> Et ceux qui sont visibles et seulement accessible l'intérieur du récipient. 327 00:19:44,160 --> 00:19:48,290 Cgroup sur les autres limites secondaires comment vous utilisez ces ressources. 328 00:19:48,290 --> 00:19:50,950 CPU, la mémoire et le disque. 329 00:19:50,950 --> 00:19:53,900 Lorsque vous pouvez aller, je dire ceux qui sont effectivement 330 00:19:53,900 --> 00:19:57,410 caractéristiques qui ont été développés by-- ils font partie du noyau Linux. 331 00:19:57,410 --> 00:20:01,800 Donc, ils ne sont pas réinventées par ou recréé par Docker. 332 00:20:01,800 --> 00:20:03,770 Docker les utilise. 333 00:20:03,770 --> 00:20:05,560 >> Qu'est-ce que le docteur avait vraiment ici est en réalité il 334 00:20:05,560 --> 00:20:08,680 création orchestrée espaces de noms pour chaque conteneur 335 00:20:08,680 --> 00:20:13,320 et de créer les groupes de contrôle de sorte qu'il est ridiculement facile pour créer des conteneurs 336 00:20:13,320 --> 00:20:14,870 l'utilisation de ces fonctionnalités. 337 00:20:14,870 --> 00:20:22,910 Bien sûr, comme je l'ai décrit plus tôt, l'Union Les systèmes de fichiers et de copy-on-write vraiment 338 00:20:22,910 --> 00:20:26,810 aider à la vitesse et le disque utilisation de conteneurs. 339 00:20:26,810 --> 00:20:28,917 >> Et une fois que vous obtenez votre mains autour Docker, 340 00:20:28,917 --> 00:20:32,000 vous allez voir comment il est rapide à fait tourner les conteneurs et la déchirure 341 00:20:32,000 --> 00:20:32,500 les vers le bas. 342 00:20:32,500 --> 00:20:36,060 343 00:20:36,060 --> 00:20:40,230 Donc, si vous pourriez demander, comment peut- vous construisez effectivement images? 344 00:20:40,230 --> 00:20:45,940 Nous construisons des images par un processus de création conteneurs et de faire des changements, la modification 345 00:20:45,940 --> 00:20:50,220 eux, et les commettre à devenir une image. 346 00:20:50,220 --> 00:20:54,330 >> Donc, il est un poulet et référence oeuf ici, 347 00:20:54,330 --> 00:20:57,350 parce que tous les conteneurs arrivent des images et des images viennent 348 00:20:57,350 --> 00:21:00,270 à partir de contenants commis, pour la plupart. 349 00:21:00,270 --> 00:21:03,830 Il ya trois options pour créer des images. 350 00:21:03,830 --> 00:21:06,580 Je vais décrire le premier et le dernier. 351 00:21:06,580 --> 00:21:10,060 Vous pouvez soit manuellement aller courir le récipient 352 00:21:10,060 --> 00:21:14,280 et de faire ces changements, comme vous le feriez sur une VM 353 00:21:14,280 --> 00:21:17,060 ou n'importe quel système d'exploitation, tel que l'installation de nouveaux binaires, 354 00:21:17,060 --> 00:21:19,370 ajout de systèmes de fichiers, et autres joyeusetés. 355 00:21:19,370 --> 00:21:22,620 >> Et puis vous quittez, comme vous pouvez voir là-haut. 356 00:21:22,620 --> 00:21:24,330 Je sortais mon conteneur. 357 00:21:24,330 --> 00:21:26,050 Et puis je fais Docker commis. 358 00:21:26,050 --> 00:21:28,390 Et que je commets. 359 00:21:28,390 --> 00:21:31,560 Vous pouvez voir que le nombre ici est juste un UUID, ou le premier 12 360 00:21:31,560 --> 00:21:32,810 bits de l'UUID. 361 00:21:32,810 --> 00:21:34,320 Ou octets de l'UUID. 362 00:21:34,320 --> 00:21:35,770 Et puis je vais appeler mon image. 363 00:21:35,770 --> 00:21:39,510 Alors maintenant, Docker prend soin de enregistrant tout je l'ai fait 364 00:21:39,510 --> 00:21:42,830 et la création de la nouvelle l'image sur cette base. 365 00:21:42,830 --> 00:21:47,080 366 00:21:47,080 --> 00:21:52,560 >> Je ne vais pas parler archive, mais il ya une façon que vous pouvez obtenir un seul, 367 00:21:52,560 --> 00:21:58,200 créer une seule, ou faire un seul image de couche à l'aide des archives tar. 368 00:21:58,200 --> 00:22:02,650 Ce que je vais parler de ce et ce qui est surtout utilisé aujourd'hui, 369 00:22:02,650 --> 00:22:03,270 est Dockerfile. 370 00:22:03,270 --> 00:22:07,260 Qui est techniquement le premier étape automatisée par Docker lui-même. 371 00:22:07,260 --> 00:22:11,920 Donc Dockerfiles ya des choses que vous êtes aller voir dans beaucoup de repos GitHub 372 00:22:11,920 --> 00:22:13,150 aujourd'hui. 373 00:22:13,150 --> 00:22:16,420 Il est fondamentalement juste un fichier texte décrivant 374 00:22:16,420 --> 00:22:19,780 exactement comment construire une image. 375 00:22:19,780 --> 00:22:25,540 >> Et pour chaque ligne, il crée en fait le conteneur, exécute cette ligne, 376 00:22:25,540 --> 00:22:30,480 engage dans un récipient que nouvelle image, et vous, au fond, 377 00:22:30,480 --> 00:22:36,160 l'utiliser pour toutes les opérations ultérieures jusqu'à ce que vous arrivez à la dernière image. 378 00:22:36,160 --> 00:22:39,260 Qui est fondamentalement la fin but ici, la fin. 379 00:22:39,260 --> 00:22:42,420 Et après avoir exec-- après écrire votre Dockerfile, qui 380 00:22:42,420 --> 00:22:46,750 est purement dans le texte, vous faites un Docker construire et le nom de l'image. 381 00:22:46,750 --> 00:22:50,000 >> Et vous pointez à ce qui est où le Dockerfile est à. 382 00:22:50,000 --> 00:22:56,570 Et vous pouvez vous attendre à voir mon image comme une image que vous avez localement. 383 00:22:56,570 --> 00:22:59,100 Voilà donc juste un visuel exemple de ce qui se passe. 384 00:22:59,100 --> 00:23:00,820 Vous commencez avec une image de base. 385 00:23:00,820 --> 00:23:05,150 Vous exécutez que dans un récipient que ne modifie pas l'image de la base elle-même. 386 00:23:05,150 --> 00:23:08,310 Mais crée plutôt une réécrire couche sur le dessus de celui-ci 387 00:23:08,310 --> 00:23:10,340 où vous faites des changements, dans lequel vous vous engagez 388 00:23:10,340 --> 00:23:15,050 et vous répétez le processus jusqu'à ce que vous arrivez à votre image finale. 389 00:23:15,050 --> 00:23:20,980 >> Et ce faisant, tous les autres build processus peut utiliser les mêmes couches 390 00:23:20,980 --> 00:23:23,870 et la same-- fondamentalement Docker met en cache ces couches. 391 00:23:23,870 --> 00:23:30,040 Alors que si je fais exactement la même processus, mais au lieu de l'installation de PHP, 392 00:23:30,040 --> 00:23:31,540 Je installer Python. 393 00:23:31,540 --> 00:23:34,210 Il va utiliser Apache et Ubuntu. 394 00:23:34,210 --> 00:23:39,570 Donc, de cette façon vous êtes en utilisant votre disque. 395 00:23:39,570 --> 00:23:42,330 Il est utilisant le cache et les images qui y sont disponibles. 396 00:23:42,330 --> 00:23:45,320 397 00:23:45,320 --> 00:23:48,840 >> La dernière pièce est Greffe, qui comment vous distribuez vos images. 398 00:23:48,840 --> 00:23:52,710 Et, comme je l'ai mentionné plus tôt, il ya une version Nuage d'elle, 399 00:23:52,710 --> 00:23:54,290 qui est Docker Hub. 400 00:23:54,290 --> 00:23:57,550 Vous pouvez aller explorer beaucoup de, essentiellement 401 00:23:57,550 --> 00:24:04,900 il est un produit SAS public vous pouvez toujours avoir des photos privées, 402 00:24:04,900 --> 00:24:06,590 mais il ya beaucoup d'images publiques. 403 00:24:06,590 --> 00:24:10,580 Il est effectivement illimitée, vous pouvez pousser images publiques illimitées il. 404 00:24:10,580 --> 00:24:13,730 Et c'est comment vous pouvez collaborer avec votre équipe. 405 00:24:13,730 --> 00:24:17,159 >> Vous pouvez suffit de leur indiquer de vous Repo et ils peuvent télécharger ou votre image 406 00:24:17,159 --> 00:24:18,200 et ils peuvent le télécharger. 407 00:24:18,200 --> 00:24:21,140 408 00:24:21,140 --> 00:24:24,990 Alors assez avec le discours. 409 00:24:24,990 --> 00:24:29,110 Qui veut voir quelques démos réel rapide? 410 00:24:29,110 --> 00:24:31,330 D'accord. 411 00:24:31,330 --> 00:24:34,050 Donc ici, je l'ai fait. 412 00:24:34,050 --> 00:24:37,480 Ca vous vu mon écran? 413 00:24:37,480 --> 00:24:38,390 D'accord. 414 00:24:38,390 --> 00:24:45,810 >> Donc je dois Docker courir ici, donc je peut vérifier it's-- Ceci est la version 415 00:24:45,810 --> 00:24:47,510 de Docker qui exécute. 416 00:24:47,510 --> 00:24:49,320 Peut faire infos Docker. 417 00:24:49,320 --> 00:24:55,730 Vérifiez toutes les informations sur le nombre de images qu'ils ont, et ainsi de suite et ainsi de suite. 418 00:24:55,730 --> 00:24:58,890 Docker PS, il n'y a rien en cours d'exécution. 419 00:24:58,890 --> 00:25:00,570 Concaténé ceux. 420 00:25:00,570 --> 00:25:06,370 >> Donc la première chose que je veux faire est de spectacle vous comment vous pouvez facilement lancer un conteneur. 421 00:25:06,370 --> 00:25:09,350 Donc, à propos de la beauté Docteur terme, si elle a effectivement 422 00:25:09,350 --> 00:25:14,700 ne trouve pas une image localement, par défaut, il parle au docteur Hub 423 00:25:14,700 --> 00:25:17,240 et essaie de le trouver là et des téléchargements pour vous. 424 00:25:17,240 --> 00:25:22,820 Donc, il comprend un Docker tirez commande, naturellement. 425 00:25:22,820 --> 00:25:26,130 >> Donc, si je fais un Docker terme, bonjour monde. 426 00:25:26,130 --> 00:25:28,890 427 00:25:28,890 --> 00:25:31,200 Donc, d'abord il va pour essayer de le localiser. 428 00:25:31,200 --> 00:25:36,140 Sinon, comme vous pouvez le voir ici, il ne pouvait pas trouver localement. 429 00:25:36,140 --> 00:25:41,830 En ce moment il juste tiré deux couches Cela fait que l'image et je l'ai couru. 430 00:25:41,830 --> 00:25:45,440 Le bonjour-monde est juste fondamentalement sorties, ce que vous avez fait. 431 00:25:45,440 --> 00:25:47,680 Donc ceci est le plus facile, un des exemples les plus faciles. les 432 00:25:47,680 --> 00:25:53,840 Donc en fait je juste couru et terminé le conteneur réel rapide. 433 00:25:53,840 --> 00:25:59,500 >> Si je veux run-- et par la manière, si Je veux que le temps, si vous le savez, 434 00:25:59,500 --> 00:26:03,572 cela est combien de temps il faut pour fait tourner et le contenir. 435 00:26:03,572 --> 00:26:05,030 Nous mesurer en millisecondes. 436 00:26:05,030 --> 00:26:10,600 Donc vous pouvez voir combien cela peut effectivement vous aider non seulement dans les tests, 437 00:26:10,600 --> 00:26:13,200 mais également même déploiement. 438 00:26:13,200 --> 00:26:17,221 Voilà donc une note rapide à ce sujet. 439 00:26:17,221 --> 00:26:18,970 La prochaine chose que je suis allons faire est en fait 440 00:26:18,970 --> 00:26:21,930 exécuter une image que je l'ai déjà préparé. 441 00:26:21,930 --> 00:26:24,460 Donc docker terme. 442 00:26:24,460 --> 00:26:27,240 -d est juste un drapeau pour dire son fonctionnement en arrière-plan. 443 00:26:27,240 --> 00:26:30,290 Et -p attribue certains ports. 444 00:26:30,290 --> 00:26:32,670 Parce que, par défaut, le récipients sont isolés, 445 00:26:32,670 --> 00:26:36,080 vous devez donc spécifier exactement comment il peut y avoir accès. 446 00:26:36,080 --> 00:26:41,150 Et dans ce cas, je dis Docker pour mapper un port aléatoire sur l'hôte 447 00:26:41,150 --> 00:26:44,560 à un port spécifié à l'intérieur le récipient lui-même. 448 00:26:44,560 --> 00:26:47,130 449 00:26:47,130 --> 00:26:56,460 Et qui est fondamentalement où le image-- Espérons que ce soit la bonne. 450 00:26:56,460 --> 00:27:01,780 >> Donc, il ne téléchargements parallèles, chacune de ces couches comme vous pouvez le voir ici. 451 00:27:01,780 --> 00:27:06,949 Ce sont des couches faisant l'image de la fin que je construit. 452 00:27:06,949 --> 00:27:08,115 Il va prendre une seconde. 453 00:27:08,115 --> 00:27:11,290 454 00:27:11,290 --> 00:27:12,370 Et le tour est joué. 455 00:27:12,370 --> 00:27:16,590 >> Alors maintenant, si je fais un ps de docker, je devrais voir quelque chose qui est en cours d'exécution. 456 00:27:16,590 --> 00:27:22,250 Je devrais voir l'ID, l'image que celui-ci a été basée hors tension, 457 00:27:22,250 --> 00:27:23,880 et la commande qui a été exécuté. 458 00:27:23,880 --> 00:27:28,720 Et comment y accéder est fondamentalement, vous allez à ce port. 459 00:27:28,720 --> 00:27:33,240 Donc, je vais aller to-- cette est que je suis en cours d'exécution sur AWS. 460 00:27:33,240 --> 00:27:37,150 Je vais aller à 32769. 461 00:27:37,150 --> 00:27:37,650 Oops. 462 00:27:37,650 --> 00:27:40,495 463 00:27:40,495 --> 00:27:41,120 Et c'est reparti. 464 00:27:41,120 --> 00:27:44,550 >> Donc, cela est en fait juste un service web qui montre 465 00:27:44,550 --> 00:27:46,240 lequel récipient il est servi à partir. 466 00:27:46,240 --> 00:27:50,450 Donc vous pouvez voir que ce est de A9F récipient. 467 00:27:50,450 --> 00:27:52,850 Et voici ce est le nom du conteneur. 468 00:27:52,850 --> 00:27:56,550 Alors vous les gars peuvent voir à quelle vitesse il était réellement non seulement tirer mais aussi 469 00:27:56,550 --> 00:28:00,440 déployer ce conteneur. 470 00:28:00,440 --> 00:28:05,070 >> Maintenant, la prochaine étape est de regarder dans Dockerfiles 471 00:28:05,070 --> 00:28:09,430 et comment nous pouvons effectivement construire de nouvelles images. 472 00:28:09,430 --> 00:28:15,250 Je vais juste aller chercher clone, un obtenir un exemple Dockerfile selon la plus rapprochée 473 00:28:15,250 --> 00:28:17,755 diagramme, l'un à Apache et PHP. 474 00:28:17,755 --> 00:28:26,740 475 00:28:26,740 --> 00:28:28,140 Espérons que je me souviens de ma pension. 476 00:28:28,140 --> 00:28:36,410 477 00:28:36,410 --> 00:28:38,750 >> Donc je dois mon référentiel dès maintenant. 478 00:28:38,750 --> 00:28:43,080 Et vous allez voir cela beaucoup effectivement. 479 00:28:43,080 --> 00:28:45,110 Je ne suis pas installer arbre. 480 00:28:45,110 --> 00:28:48,700 >> Donc, fondamentalement, vous allez voir comment la documentation de votre code source autour 481 00:28:48,700 --> 00:28:51,240 , puis un sur Dockerfile en fait comment l'emballer. 482 00:28:51,240 --> 00:28:57,970 Donc, il est juste un échantillon PHP qui fait écho bonjour CS50. 483 00:28:57,970 --> 00:29:01,550 >> Donc, si je veux courir, Je ferai docker construction. 484 00:29:01,550 --> 00:29:03,370 Je dois construire en premier. 485 00:29:03,370 --> 00:29:12,420 Je vais nommer demo_cs50. 486 00:29:12,420 --> 00:29:16,470 Et vous avez besoin d'une étiquette à elle aussi. 487 00:29:16,470 --> 00:29:19,802 Donc disons qu'il v1 dot. 488 00:29:19,802 --> 00:29:21,760 Donc, comme je l'ai mentionné plus tôt, ce que je fais aujourd'hui 489 00:29:21,760 --> 00:29:26,840 est que je suis dis Docker aller utilisation that-- fait, désolé, mon mauvais. 490 00:29:26,840 --> 00:29:29,450 491 00:29:29,450 --> 00:29:32,500 On n'a pas pris un coup d'oeil au Dockerfile lui-même. 492 00:29:32,500 --> 00:29:39,020 Ainsi, les seules choses ici sont index.php ainsi que le fichier readme 493 00:29:39,020 --> 00:29:39,810 et un Dockerfile. 494 00:29:39,810 --> 00:29:44,600 >> Donc, si vous jetez un oeil à l'Dockerfile, il est donc 495 00:29:44,600 --> 00:29:47,150 très similaire à ce Je l'ai décrit plus tôt. 496 00:29:47,150 --> 00:29:51,220 Il est juste un tas de Docker étapes qui exécute 497 00:29:51,220 --> 00:29:56,330 par la création et la démolition de conteneurs et [? compter?]-les dans une image. 498 00:29:56,330 --> 00:29:59,570 >> Et fondamentalement, vous pouvez see-- [inaudible] il ici-- 499 00:29:59,570 --> 00:30:04,340 mais cela est du repo local. 500 00:30:04,340 --> 00:30:06,410 Il va aller et grab index.php. 501 00:30:06,410 --> 00:30:10,970 Voilà donc le seul code source sont en fait une partie de votre application. 502 00:30:10,970 --> 00:30:16,800 Tout ce sont essentiellement fonctionnement du système de plomberie, 503 00:30:16,800 --> 00:30:21,460 obtenir les bons paquets et Apache et PHP, et autres joyeusetés. 504 00:30:21,460 --> 00:30:26,950 Mais cela prend réellement index.php et de commettre dans le récipient, 505 00:30:26,950 --> 00:30:28,210 dans l'image. 506 00:30:28,210 --> 00:30:33,120 >> Donc, si vous allez de l'avant et exécutez le commande en procédant comme suit, 507 00:30:33,120 --> 00:30:36,155 il est en fait going--, cela pourrait prendre un peu. 508 00:30:36,155 --> 00:30:40,870 509 00:30:40,870 --> 00:30:42,455 Espérons que cela ne prend pas trop longtemps. 510 00:30:42,455 --> 00:30:45,129 511 00:30:45,129 --> 00:30:46,170 Donc vous pouvez voir les étapes. 512 00:30:46,170 --> 00:30:49,320 Et je vous encourage à aller retour à la maison aujourd'hui et essayer. 513 00:30:49,320 --> 00:30:51,280 Et Mano décrira exactement comment vous faites cela. 514 00:30:51,280 --> 00:30:57,810 Mais il est vraiment génial de voir exactement ce qui se passe dans les coulisses. 515 00:30:57,810 --> 00:31:02,420 Mais il est ridiculement facile à construire images et de les déployer en utilisant Docker. 516 00:31:02,420 --> 00:31:12,170 517 00:31:12,170 --> 00:31:14,050 >> Ça prend un peu plus que je m'y attendais. 518 00:31:14,050 --> 00:31:29,085 519 00:31:29,085 --> 00:31:32,690 >> Voyons ce qui arrive quand vous-- refroidir. 520 00:31:32,690 --> 00:31:36,260 Donc, comme vous pouvez le voir, chacune de ces étapes représenter des lignes dans le Dockerfile. 521 00:31:36,260 --> 00:31:42,570 Et il montre ici qu'il construit avec succès cette image. 522 00:31:42,570 --> 00:31:46,480 >> Donc, si je fais des images de docker, je vais voir toutes les images que je dois localement. 523 00:31:46,480 --> 00:31:52,160 Et l'un d'eux est appelé ma nom d'utilisateur et le nom de l'image, 524 00:31:52,160 --> 00:31:56,050 et la balise representing-- il est essentiellement une étiquette de version. 525 00:31:56,050 --> 00:31:58,040 >> Alors maintenant, si je veux courir , je ne docker terme. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 Et je veux juste faire un -d -P. Avez-v1. 528 00:32:14,960 --> 00:32:18,500 Donc, je peux voir maintenant que je dois à deux contenants en cours d'exécution, celui que je viens 529 00:32:18,500 --> 00:32:21,230 créé et le bonjour Docker celui que je suis la dernière. 530 00:32:21,230 --> 00:32:24,320 >> Et vous pouvez voir ici que ce lui a attribué un port différent. 531 00:32:24,320 --> 00:32:30,710 Donc, si je vais à la même adresse IP, mais l'assigner un port-- différente espérons que non. 532 00:32:30,710 --> 00:32:33,060 Alors maintenant, cette demande est que je viens déployé. 533 00:32:33,060 --> 00:32:35,980 534 00:32:35,980 --> 00:32:43,900 >> Si je veux faire des changements, je peut modifier rapidement le code source 535 00:32:43,900 --> 00:32:49,050 et faire ce qui suit. 536 00:32:49,050 --> 00:32:55,170 Faisons bonjour Harvard. 537 00:32:55,170 --> 00:32:57,989 Alors maintenant ce qui se passe de se produire est que je suis 538 00:32:57,989 --> 00:32:59,905 va marquer avec un différente version-- oh, 539 00:32:59,905 --> 00:33:03,080 pas ce guy-- des tags avec une version différente. 540 00:33:03,080 --> 00:33:05,735 Et vous allez see-- Avez-vous les gars Attendez- 541 00:33:05,735 --> 00:33:11,020 à prendre la même quantité de temps de construire une seconde fois ou pas? 542 00:33:11,020 --> 00:33:14,470 Tout à droite, et quelqu'un sait pourquoi? 543 00:33:14,470 --> 00:33:15,020 Speak up. 544 00:33:15,020 --> 00:33:16,350 >> AUDIENCE: [inaudible] 545 00:33:16,350 --> 00:33:19,830 >> NICOLA KABAR: Il est fondamentalement nous changer seulement l'une des étapes ultérieures. 546 00:33:19,830 --> 00:33:23,110 Et donc il va utiliser la cache et utiliser chacune de ces couches. 547 00:33:23,110 --> 00:33:27,080 Et qui est vraiment une partie de la caractéristiques tueuses de Docker 548 00:33:27,080 --> 00:33:32,930 est la façon dont il utilise effectivement et réutilise la prise en charge 549 00:33:32,930 --> 00:33:36,950 votre disque dur pour la même pièces exactes d'informations. 550 00:33:36,950 --> 00:33:40,700 >> Donc, si nous faisons la même chose, il a fallu seulement quelques secondes. 551 00:33:40,700 --> 00:33:48,860 Si nous voulons redeploy-- maintenant Je devrais avoir trois conteneurs. 552 00:33:48,860 --> 00:33:56,160 Mais celui-ci est en cours servi sur the-- Seven One. 553 00:33:56,160 --> 00:33:58,860 Alors maintenant, il est le troisième conteneur. 554 00:33:58,860 --> 00:34:02,580 Tout le monde à comprendre ce que je viens de faire ici? 555 00:34:02,580 --> 00:34:06,320 >> Alors maintenant, si vous souhaitez partager cette récipient réel rapide avec vos amis, 556 00:34:06,320 --> 00:34:14,840 vous pouvez juste faire pousser le docker nom du conteneur, nous l'espérons. 557 00:34:14,840 --> 00:34:20,130 Alors maintenant, il va pousser to-- Je ne suis pas signé ici. 558 00:34:20,130 --> 00:34:33,511 559 00:34:33,511 --> 00:34:34,219 Désolé A propos de ça. 560 00:34:34,219 --> 00:34:39,219 Mais je ne vais pas résoudre cela maintenant. 561 00:34:39,219 --> 00:34:42,780 Mais fondamentalement, que l'on commande est juste aller jusqu'à pousser. 562 00:34:42,780 --> 00:34:45,670 Et vous allez être en mesure de voir si vous allez à Docker Hub 563 00:34:45,670 --> 00:34:48,587 Et vous vous connectez, vous êtes va être capable de le voir. 564 00:34:48,587 --> 00:34:50,420 Et puis vous pouvez juste signaler celui qui va 565 00:34:50,420 --> 00:34:52,750 d'utiliser cette image pour aller tirer. 566 00:34:52,750 --> 00:34:55,460 Et ils peuvent l'utiliser. 567 00:34:55,460 --> 00:34:57,760 >> Avec qui, espérons- Je sorte de démontrais 568 00:34:57,760 --> 00:35:01,230 combien il est facile de travailler avec Docker. 569 00:35:01,230 --> 00:35:06,610 Et je vais juste redonner aux Mano. 570 00:35:06,610 --> 00:35:11,760 Et il va prendre d'ici. 571 00:35:11,760 --> 00:35:13,990 >> MANO MARQUES: Très bien merci, merci Nico. 572 00:35:13,990 --> 00:35:18,700 573 00:35:18,700 --> 00:35:20,614 Et alors? 574 00:35:20,614 --> 00:35:24,410 Donc l'une des choses que je voulu faire est de mettre ensemble 575 00:35:24,410 --> 00:35:28,820 pourquoi cela est un important-- pourquoi Docker et pourquoi 576 00:35:28,820 --> 00:35:33,000 conteneurs sont telles une nouveau important, 577 00:35:33,000 --> 00:35:36,890 une nouvelle façon de faire réellement le logiciel. 578 00:35:36,890 --> 00:35:41,300 >> Et avant que je fais, je vais juste présenter quelques statistiques. 579 00:35:41,300 --> 00:35:42,790 Je ne vais pas lire tout cela. 580 00:35:42,790 --> 00:35:52,540 Mais cela vous montre beaucoup sur la façon populaire Ceci est dans la communauté. 581 00:35:52,540 --> 00:35:56,310 Les technologies de base Docker sont open source. 582 00:35:56,310 --> 00:36:03,560 Voilà donc Docker moteur, Compose, Swarm, un tas d'autres trucs 583 00:36:03,560 --> 00:36:05,210 tout est open source. 584 00:36:05,210 --> 00:36:10,590 Et nous avons, qu'est-ce que je dire, 1.300 contributeurs. 585 00:36:10,590 --> 00:36:15,630 Vous voyez maintenant, si vous regardez le nombre d'ouvertures d'emploi, la dernière fois 586 00:36:15,630 --> 00:36:19,640 nous avons examiné, il était d'environ 43 000 emplois ouvertures de mentionner spécifiquement 587 00:36:19,640 --> 00:36:22,230 familiarité avec Docker. 588 00:36:22,230 --> 00:36:26,450 Des centaines de millions d'images ont téléchargés à partir Docker Hub. 589 00:36:26,450 --> 00:36:31,870 Et, ainsi, beaucoup plus grandes statistiques. 590 00:36:31,870 --> 00:36:34,770 >> Pour ceux qui sont curieux, il a été initialement écrit en Python 591 00:36:34,770 --> 00:36:37,730 puis réécrit en Go. 592 00:36:37,730 --> 00:36:40,320 Et ça ne fait que ouvrir source-- il est seulement 593 00:36:40,320 --> 00:36:44,950 été libéré pendant environ 2 ans 1/2, ce qui signifie que dans 2 ans 1/2, 594 00:36:44,950 --> 00:36:48,020 nous avons vu une énorme quantité de croissance et l'importance 595 00:36:48,020 --> 00:36:50,190 de ce dans la communauté. 596 00:36:50,190 --> 00:36:52,400 Et donc je veux parler un peu pourquoi. 597 00:36:52,400 --> 00:36:54,940 598 00:36:54,940 --> 00:36:59,880 >> Donc, juste pour réitérer certaines des Points clés de Nico, Docker est rapide. 599 00:36:59,880 --> 00:37:00,630 Il est portable. 600 00:37:00,630 --> 00:37:02,500 Il est reproductible. 601 00:37:02,500 --> 00:37:06,130 Et il met en place un environnement standard. 602 00:37:06,130 --> 00:37:13,370 >> Et what-- ceci est mon merde éradiquer ce monolithes slide-- 603 00:37:13,370 --> 00:37:17,990 il est d'aider les gens font, ce qui beaucoup de l'industrie du logiciel 604 00:37:17,990 --> 00:37:21,400 commencé à le faire dans le début des années 2000, est en mouvement 605 00:37:21,400 --> 00:37:24,200 à partir de ceux-ci monolithique applications simples 606 00:37:24,200 --> 00:37:28,590 où chaque dépendance devait être testé avant l'application entière avait 607 00:37:28,590 --> 00:37:31,280 à se déployer, ce qui pourrait signifier un site Web 608 00:37:31,280 --> 00:37:36,240 seulement eu déployé fois tous les trois mois, ou plus, 609 00:37:36,240 --> 00:37:42,650 à un beaucoup plus de service architecture orientée 610 00:37:42,650 --> 00:37:46,090 ou type différent à base de composants de l'architecture de l'application. 611 00:37:46,090 --> 00:37:48,610 Et ainsi permettant à ces type d'architectures 612 00:37:48,610 --> 00:37:52,250 qui profitent de Docker à courir dans ces trois 613 00:37:52,250 --> 00:37:58,450 principaux domaines du développement, qui est le développement d'écrire votre code réel, 614 00:37:58,450 --> 00:38:00,140 tester votre code, et le déployer. 615 00:38:00,140 --> 00:38:03,000 616 00:38:03,000 --> 00:38:05,420 >> Alors, pourquoi est-ce important? 617 00:38:05,420 --> 00:38:09,920 Si vous êtes a-- laissez-moi vous donner un exemple. 618 00:38:09,920 --> 00:38:13,600 Si vous êtes un site Web développeur de l'appareil, vous êtes 619 00:38:13,600 --> 00:38:19,020 l'élaboration d'un site Web qui est basée sur le base de données que David produite ici. 620 00:38:19,020 --> 00:38:20,490 Désolé David, je vous appelle à. 621 00:38:20,490 --> 00:38:22,984 622 00:38:22,984 --> 00:38:24,900 Si vous vouliez déployer le tout, vous seriez 623 00:38:24,900 --> 00:38:28,870 avoir à attendre sous un traditionnel le développement de logiciels monolithique 624 00:38:28,870 --> 00:38:32,710 environnement, vous auriez à attendre jusqu'à ce qu'il a été fait avec la base de données 625 00:38:32,710 --> 00:38:36,030 avant que vous pourriez réellement faire des modifications à votre site web. 626 00:38:36,030 --> 00:38:40,900 Vous auriez à redéployer le toute demande de le faire. 627 00:38:40,900 --> 00:38:45,490 >> Et ce Docker vous aide à faire est chaque personne travaille sur différents composants 628 00:38:45,490 --> 00:38:52,990 et mettre à jour eux car ils vont, juste faire assurer que les interfaces restent les mêmes. 629 00:38:52,990 --> 00:38:56,350 Donc, ce qu'il a fait est il est décalé personnes 630 00:38:56,350 --> 00:39:03,950 de faire ces massifs monolithique logiciel architecturé que 631 00:39:03,950 --> 00:39:07,610 déployé tous les mois à un continue l'intégration et le développement continue 632 00:39:07,610 --> 00:39:08,490 environnement. 633 00:39:08,490 --> 00:39:12,580 >> Maintenant, ce ne sont pas uniques à Docker, Docker, mais il est tellement plus facile, 634 00:39:12,580 --> 00:39:16,620 qui signifie que vous êtes essentiellement déployer en permanence. 635 00:39:16,620 --> 00:39:20,690 Nous parlons à des entreprises qui sont le déploiement d'applications de parement publics 636 00:39:20,690 --> 00:39:30,180 des milliers de fois par jour, car ils voient la valeur en juste faire 637 00:39:30,180 --> 00:39:33,740 de petits changements, et aussi longtemps car il fonctionne à travers les essais, 638 00:39:33,740 --> 00:39:35,900 laisser aller dans la production. 639 00:39:35,900 --> 00:39:41,890 Nico me disait toujours plus tôt que dans de nombreux environnements, 640 00:39:41,890 --> 00:39:46,580 le cycle de vie standard d'un récipient est mesurée en secondes, 641 00:39:46,580 --> 00:39:50,460 alors une machine virtuelle pourrait être exprimée en mois. 642 00:39:50,460 --> 00:39:54,590 643 00:39:54,590 --> 00:39:58,690 >> Je voulais prendre une légère tourner ici parce que je suis 644 00:39:58,690 --> 00:40:00,170 un établissement d'enseignement. 645 00:40:00,170 --> 00:40:06,670 Je voulais donner un exemple de la façon dont cela fonctionne dans une recherche en éducation 646 00:40:06,670 --> 00:40:07,670 situation. 647 00:40:07,670 --> 00:40:10,930 Donc, il ya une organisation appelés BIOBOXES. 648 00:40:10,930 --> 00:40:15,450 Bioboxes fait l'ADN analyse pour les chercheurs. 649 00:40:15,450 --> 00:40:22,029 >> Maintenant, ce qu'ils ont trouvé était que lorsque un associés-- et ce ne est pas 650 00:40:22,029 --> 00:40:24,070 la faute d'une particulière associés-- mais quand 651 00:40:24,070 --> 00:40:31,240 un chercheur déployé un algorithme pour analyser, 652 00:40:31,240 --> 00:40:36,670 De façon particulière, un échantillon d'ADN, qu'ils écriraient le logiciel, 653 00:40:36,670 --> 00:40:39,980 publier que, peut-être à GitHub ou ailleurs, 654 00:40:39,980 --> 00:40:42,680 puis ils ont été faits. 655 00:40:42,680 --> 00:40:47,440 >> Eh bien, le problème était qu'il est pas nécessairement reproductible. 656 00:40:47,440 --> 00:40:51,610 Parce que, pour comprendre le logiciel, 657 00:40:51,610 --> 00:40:54,830 ils seraient mis en place pour le environnement de développement exacte 658 00:40:54,830 --> 00:41:00,460 ce que chercheur utilisé, habituellement leur ordinateur portable ou un serveur, ou une donnée 659 00:41:00,460 --> 00:41:04,280 centre qui ils utilisaient. 660 00:41:04,280 --> 00:41:11,530 Et par conséquent, il était très difficile de reproduire les résultats de recherche lorsque 661 00:41:11,530 --> 00:41:16,910 l'analyse des échantillons d'ADN à regarder à des choses comme incidence-- 662 00:41:16,910 --> 00:41:23,830 comparer l'incidence des crises cardiaques en fonction de certains gènes étant présents, 663 00:41:23,830 --> 00:41:28,900 par exemple, ou le risque de cancer, ou l'un des autres types de choses. 664 00:41:28,900 --> 00:41:33,900 >> Donc, ce qu'ils ont fait à la place était ils ont commencé la création de conteneurs. 665 00:41:33,900 --> 00:41:39,380 Et vous pouvez aller à bioboxes.org, il est une grande organisation. 666 00:41:39,380 --> 00:41:43,900 Et ce qu'ils font est qu'ils produisent conteneurs basés sur la recherche. 667 00:41:43,900 --> 00:41:46,840 Et puis, chaque fois que quelqu'un envoie dans leur échantillon, ils peuvent exécuter. 668 00:41:46,840 --> 00:41:52,770 Et il a tout l'environnement nécessaire pour exécuter cet algorithme 669 00:41:52,770 --> 00:41:55,370 et de produire des résultats. 670 00:41:55,370 --> 00:41:58,250 Et ils trouvent qu'ils sont beaucoup plus probable et beaucoup plus 671 00:41:58,250 --> 00:42:01,300 plus rapidement en mesure de retourner des résultats pour les gens. 672 00:42:01,300 --> 00:42:06,860 >> Et en fait, ce que les gens font exécutent leur propre analyse de l'ADN, 673 00:42:06,860 --> 00:42:11,220 que pour l'envoi de BIOBOXES, et puis biobox prend juste les données, 674 00:42:11,220 --> 00:42:15,350 court contre la variété de différents conteneurs 675 00:42:15,350 --> 00:42:19,030 pour voir des résultats différents basé sur la recherche différente. 676 00:42:19,030 --> 00:42:21,860 Donc, il est un très puissant manière dont les chercheurs 677 00:42:21,860 --> 00:42:28,070 peut faire une seule instance qui permet d'autres personnes pour essayer de reproduire 678 00:42:28,070 --> 00:42:28,650 Les resultats. 679 00:42:28,650 --> 00:42:31,710 680 00:42:31,710 --> 00:42:34,360 >> Alors, comment obtenez-vous commencé? 681 00:42:34,360 --> 00:42:37,950 682 00:42:37,950 --> 00:42:39,800 Nous sommes bien pris en charge sur Linux. 683 00:42:39,800 --> 00:42:43,070 Donc, si vous souhaitez installer rien sur Linux, 684 00:42:43,070 --> 00:42:45,620 vous utilisez votre niveau gestionnaire de paquets à installer. 685 00:42:45,620 --> 00:42:47,600 Si vous utilisez une Debian, il est get apt. 686 00:42:47,600 --> 00:42:50,500 CentOS est yum. 687 00:42:50,500 --> 00:42:53,500 Fedora Red Hat est rpm-- Je ne me souviens pas. 688 00:42:53,500 --> 00:42:56,070 Quoi qu'il en soit, tout est là. 689 00:42:56,070 --> 00:42:59,610 Nous soutenons une grande variété des distributions Linux. 690 00:42:59,610 --> 00:43:01,150 Vous pouvez vérifier ceux dehors. 691 00:43:01,150 --> 00:43:06,370 >> Nous avons également des options pour vous pourrait fonctionner sur Mac ou Windows. 692 00:43:06,370 --> 00:43:10,670 Maintenant Nico mentionné plus tôt que il a été pris en charge uniquement sur Linux. 693 00:43:10,670 --> 00:43:18,180 Cela est vrai, car il a besoin d'un noyau Linux. 694 00:43:18,180 --> 00:43:20,540 Mais, vous pouvez exécuter dans une machine virtuelle. 695 00:43:20,540 --> 00:43:25,290 Et ce que la boîte à outils Docker ne, que vous pouvez télécharger, 696 00:43:25,290 --> 00:43:27,610 il vous donne cette machine virtuelle. 697 00:43:27,610 --> 00:43:37,260 >> Donc, juste un rapide 48 Deuxièmement, je pense, téléchargez. 698 00:43:37,260 --> 00:43:40,670 Vous venez de recherche sur Docker Boîte à outils, le télécharger sur le Mac, 699 00:43:40,670 --> 00:43:43,910 et cette partie est de Bien sûr accéléré car qui 700 00:43:43,910 --> 00:43:47,620 veut regarder un signal de téléchargement? 701 00:43:47,620 --> 00:43:54,190 Installation standard Mac, et puis vous êtes 702 00:43:54,190 --> 00:43:59,795 aller voir Jérôme a mis dans son mot de passe. 703 00:43:59,795 --> 00:44:00,670 Cela est très excitant. 704 00:44:00,670 --> 00:44:03,510 705 00:44:03,510 --> 00:44:06,230 Et puis, il installe un tas ensemble d'outils. 706 00:44:06,230 --> 00:44:10,010 Et particulièrement, elle sera installer une ligne de commande. 707 00:44:10,010 --> 00:44:14,220 Et alors vous pourriez voir Tester ses images Jérôme. 708 00:44:14,220 --> 00:44:19,050 709 00:44:19,050 --> 00:44:22,640 >> Et puis, sur cette base, vous pouvez voir que YouTube 710 00:44:22,640 --> 00:44:27,420 pense que Nico est intéressé par Star Wars, Le spectacle Jimmy Kimmel, 711 00:44:27,420 --> 00:44:29,020 et je pense que Ellen. 712 00:44:29,020 --> 00:44:34,130 Je pense que la dernière est un clip à partir d'un show Ellen. 713 00:44:34,130 --> 00:44:37,760 >> Donc Docker Toolbox vient bien avec plus que juste la machine Docker. 714 00:44:37,760 --> 00:44:39,840 Donc Docker Machine est la chose qui aide 715 00:44:39,840 --> 00:44:43,710 vous configurez un virtuelle machine sur Windows 716 00:44:43,710 --> 00:44:52,080 ou Mac-- votre boîte de Windows ou de votre Mac box-- et vous aide à faire le provisionnement, 717 00:44:52,080 --> 00:44:54,040 >> Mais il est également livré avec Essaim et Compose, 718 00:44:54,040 --> 00:45:00,840 qui sont conçus pour vous aider à faire un grand déploiements à grande échelle de votre application. 719 00:45:00,840 --> 00:45:04,000 Donc, si vous voulez gérer des groupes de noeuds, 720 00:45:04,000 --> 00:45:08,450 des grappes de conteneurs, composer et Swarm sont la voie à suivre à ce sujet. 721 00:45:08,450 --> 00:45:11,430 >> Et bien sûr, il est livré avec Docker Moteur et Kitematic, 722 00:45:11,430 --> 00:45:13,250 qui est ce bureau GUI. 723 00:45:13,250 --> 00:45:17,060 Je dois aussi mentionner Registre Docker, qui ne sont pas inclus dans la boîte à outils, 724 00:45:17,060 --> 00:45:23,150 mais il est une façon pour vous de gérer votre propre registres de Docker images comme Docker 725 00:45:23,150 --> 00:45:28,970 Hub, mais vous pouvez aussi utiliser Docker Hub comme un moyen de le faire. 726 00:45:28,970 --> 00:45:32,955 >> Et, rebondissement, vous voyez il en cours d'exécution dans un récipient. 727 00:45:32,955 --> 00:45:34,830 Et voilà comment nous sommes la distribution de nos diapositives. 728 00:45:34,830 --> 00:45:38,610 Toute cette présentation est en fait un jeu de diapositives HTML. 729 00:45:38,610 --> 00:45:43,170 Et il est en cours d'exécution dans un récipient, que vous pouvez obtenir by-- 730 00:45:43,170 --> 00:45:45,596 >> NICOLA KABAR: Oui, il est donc tourne à plein temps sur mon max. 731 00:45:45,596 --> 00:45:47,540 Et je présente d'elle. 732 00:45:47,540 --> 00:45:50,910 Et vous faites juste après Docker vous installez votre boîte à outils. 733 00:45:50,910 --> 00:45:57,340 Vous pouvez juste faire une course de docker et obtenir et utiliser les diapositives. 734 00:45:57,340 --> 00:45:58,830 >> MANO MARQUES: Et voilà. 735 00:45:58,830 --> 00:46:02,160 Donc, nous vous remercions tous d'être venus. 736 00:46:02,160 --> 00:46:03,990 Et nous sommes heureux de répondre aux questions. 737 00:46:03,990 --> 00:46:07,810 Je dois mentionner avant que quiconque laisse il est T-shirts là-bas. 738 00:46:07,810 --> 00:46:10,940 Désolé tout le monde qui regarde ceci sur Livestream ou vidéo, 739 00:46:10,940 --> 00:46:12,820 mais nous avons Docker T-shirts là-bas. 740 00:46:12,820 --> 00:46:16,250 Et nous savons étudiants Docker, et dans mon expérience, 741 00:46:16,250 --> 00:46:18,940 professeurs aussi, comme les vêtements gratuitement. 742 00:46:18,940 --> 00:46:22,490 >> Donc, merci à vous tous d'être venus. 743 00:46:22,490 --> 00:46:27,050 Et suivez-nous sur Twitter si vous voulez, ou ne le faites pas. 744 00:46:27,050 --> 00:46:27,910 Je ne me soucie pas. 745 00:46:27,910 --> 00:46:29,430 Aussi suivez Docker sur Twitter. 746 00:46:29,430 --> 00:46:31,890 Ce qui est aussi intéressant. 747 00:46:31,890 --> 00:46:32,990 Et puis ça y est. 748 00:46:32,990 --> 00:46:33,490 Docker.com. 749 00:46:33,490 --> 00:46:35,410 Je vous remercie. 750 00:46:35,410 --> 00:46:39,360 >> [APPLAUDISSEMENTS] 751 00:46:39,360 --> 00:46:41,625