1 00:00:00,000 --> 00:00:05,042 >> [Musikwiedergabe] 2 00:00:05,042 --> 00:00:06,000 DAVID MALAN: Alles klar. 3 00:00:06,000 --> 00:00:07,630 Vielen, vielen Dank für Ihr Kommen. 4 00:00:07,630 --> 00:00:11,850 Dies ist CS50 Seminar über Docker ein Technologie, die uns selbst und CS50 we 5 00:00:11,850 --> 00:00:13,392 benutze seit einiger Zeit begonnen. 6 00:00:13,392 --> 00:00:15,766 Also mein Name ist David Malan, I lehren Harvard Einführung 7 00:00:15,766 --> 00:00:16,671 in die Informatik. 8 00:00:16,671 --> 00:00:18,670 Schon seit einigen Jahren, wir haben den Schülern 9 00:00:18,670 --> 00:00:20,435 herunterladbare Client-Seite virtuelle Maschinen 10 00:00:20,435 --> 00:00:22,134 auf denen sie ihre Probleme Sets. 11 00:00:22,134 --> 00:00:24,300 Dass wir nun umge zu einer Cloud-Umgebung 12 00:00:24,300 --> 00:00:27,396 dass tatsächlich nutzt diese Technologie genannt Docker, so daß alle CS50 13 00:00:27,396 --> 00:00:29,270 Studenten haben jetzt ihre eigenen Docker Container 14 00:00:29,270 --> 00:00:31,180 dass Sie bald zu hören alles über. 15 00:00:31,180 --> 00:00:33,740 >> Darüber hinaus am CS50 des Servers Seiten Cluster, für viele Jahre 16 00:00:33,740 --> 00:00:35,290 waren wir mit Amazon Cloud-Server. 17 00:00:35,290 --> 00:00:37,164 Wir liefen Einzel virtuellen Maschinen. 18 00:00:37,164 --> 00:00:40,330 Das auch, haben wir begonnen, zu dem über diese Dinge genannt Docker Container 19 00:00:40,330 --> 00:00:43,762 so dass alle unsere Anwendungen sind jetzt perfekt voneinander isoliert. 20 00:00:43,762 --> 00:00:46,720 Also für das und vieles mehr, lassen Sie mich präsentieren unsere Freunde, Nico und Mano, 21 00:00:46,720 --> 00:00:48,574 von Docker sich. 22 00:00:48,574 --> 00:00:49,740 NICOLA kabar: Danke, David. 23 00:00:49,740 --> 00:00:51,410 Hallo, alle miteinander. 24 00:00:51,410 --> 00:00:54,230 Mein Name ist Nico und das ist Mano. 25 00:00:54,230 --> 00:00:58,260 Wir sind aus Docker. 26 00:00:58,260 --> 00:01:02,240 Wir werden about-- reden geben euch ein Intro zu Dockarbeiter, 27 00:01:02,240 --> 00:01:08,100 und hoffentlich gegen Ende dieses Vortrags Sie erkennen können 28 00:01:08,100 --> 00:01:12,890 wie viel man Arzt zu bedienen Oxalat Anwendungsentwicklung 29 00:01:12,890 --> 00:01:14,200 und Bereitstellung. 30 00:01:14,200 --> 00:01:21,250 >> Also, wir werden echte starten schnell mit einigen Hintergrundinformationen. 31 00:01:21,250 --> 00:01:22,750 Beschreiben Sie, was Docker geht. 32 00:01:22,750 --> 00:01:25,490 Wie funktioniert das? 33 00:01:25,490 --> 00:01:27,400 Wie kommt es, architektur? 34 00:01:27,400 --> 00:01:29,360 Ich werde tun, einige Demos. 35 00:01:29,360 --> 00:01:35,070 Und Mano sein wird die beschreiben, wie können Sie verwenden Docker 36 00:01:35,070 --> 00:01:37,720 und geben Ihnen konkrete Schritte wie können Sie loslegen. 37 00:01:37,720 --> 00:01:41,490 >> Ich würde mich freuen, wenn euch halten kann off für Ihre Fragen gegen Ende. 38 00:01:41,490 --> 00:01:46,800 Auf diese Weise, ich könnte Adressierung denen Fragen in der gesamten Präsentation. 39 00:01:46,800 --> 00:01:52,150 Also werden wir einige Zeit zu verlassen gegen Ende Fragen. 40 00:01:52,150 --> 00:01:55,170 >> Also nur sehr schnell, wer hat eigentlich jemals auf Docker arbeitete, 41 00:01:55,170 --> 00:01:56,850 wie mit ihr gespielt? 42 00:01:56,850 --> 00:01:58,000 Fantastisch. 43 00:01:58,000 --> 00:01:58,520 Cool. 44 00:01:58,520 --> 00:01:59,817 Groß. 45 00:01:59,817 --> 00:02:01,525 Also, ich werde beginnen mit etwas Geschichte. 46 00:02:01,525 --> 00:02:04,350 47 00:02:04,350 --> 00:02:09,820 Also zurück in den 90er Jahren und Anfang der 2000er Jahre, im Grunde 48 00:02:09,820 --> 00:02:16,940 als Web-Entwickler, App-Entwickler, wenn sie gingen, um eine Anwendung bereitstellen 49 00:02:16,940 --> 00:02:19,350 sie gefesselt auf blankem Metall. 50 00:02:19,350 --> 00:02:20,860 Es war eines Servers. 51 00:02:20,860 --> 00:02:22,870 Es war einer Anwendung. 52 00:02:22,870 --> 00:02:25,260 >> Traditionell ein Beispiel wäre wie ein LAMP-Stack zu sein, 53 00:02:25,260 --> 00:02:30,630 wo man tatsächlich zu haben rufen Sie die Ressourcen-Pool. 54 00:02:30,630 --> 00:02:37,110 CPU, Speicher, Festplatte, Netzwerk, Installation Betriebssystem obendrein. 55 00:02:37,110 --> 00:02:40,060 Wenn Sie etwas, das gerade, wenn Sie tatsächlich mit Web-Server, 56 00:02:40,060 --> 00:02:42,470 Sie brauchen so etwas wie Apache, ihr zu dienen. 57 00:02:42,470 --> 00:02:47,540 >> Wenn Ihre Anwendung braucht Datenbank, Rückhand, 58 00:02:47,540 --> 00:02:50,840 Sie etwas installieren wie MySQL, und so weiter. 59 00:02:50,840 --> 00:02:55,910 Und wenn Sie die Laufzeit benötigen, PHPs PHP und Python Arbeiten waren da. 60 00:02:55,910 --> 00:02:59,480 Und so haben wir eigentlich hatten nehmen Sie diese Schritte, um 61 00:02:59,480 --> 00:03:02,060 Ihre Anwendung zum Laufen zu bringen. 62 00:03:02,060 --> 00:03:08,440 >> Wenn Sie mehr Rechenleistung benötigt man, im Grunde hatte, um Ihren Ops Kerl nennen 63 00:03:08,440 --> 00:03:16,260 oder gal, zu gehen und Rack bis eine neue Stück Hardware, schließen Sie es, 64 00:03:16,260 --> 00:03:19,850 und Sie müssen diejenigen wiederholen Prozessen wieder und wieder. 65 00:03:19,850 --> 00:03:23,680 So war dieser Prozess relativ teuer. 66 00:03:23,680 --> 00:03:26,080 War auf jeden Fall sehr langsam. 67 00:03:26,080 --> 00:03:27,550 >> Es war ineffizient. 68 00:03:27,550 --> 00:03:33,890 Und in vielen Fällen, Ihre Hardware wurde nicht ausgelastet. 69 00:03:33,890 --> 00:03:38,830 Also, in den späten 90ern und frühen 2000er Jahren, Hardware-Virtualisierung stieß. 70 00:03:38,830 --> 00:03:42,475 Und wie man hier in die sehen können, Bild, im Grunde, was sie taten, 71 00:03:42,475 --> 00:03:46,390 abstrahiert den Pool der freie Hardware-Ressourcen 72 00:03:46,390 --> 00:03:49,680 und Art serviert denen zu den oberen Schichten, 73 00:03:49,680 --> 00:03:52,360 in diesem Fall, den Betrieb eines Gastsystems. 74 00:03:52,360 --> 00:03:54,940 >> Und die ganze Idee virtuelle Maschinen gestoßen 75 00:03:54,940 --> 00:03:59,110 und dass wirklich geholfen Wolke Computing, wie wir sie heute kennen. 76 00:03:59,110 --> 00:04:02,730 Also, was das bedeutet ist, dass Sie können mehrere VMs, führen die 77 00:04:02,730 --> 00:04:06,720 bedeutete mehrere Stapel, Mehr Anwendung auf einem derselben physischen Maschine. 78 00:04:06,720 --> 00:04:10,570 79 00:04:10,570 --> 00:04:16,440 >> Dies auf jeden Fall mit der geholfen Geschwindigkeit der Anwendungsbereitstellung. 80 00:04:16,440 --> 00:04:17,629 Auf jeden Fall mit Kosten. 81 00:04:17,629 --> 00:04:22,810 Sie müssen nicht zu gehen und verbringen Energie, Zeit und Ressourcen, um Rack 82 00:04:22,810 --> 00:04:26,210 mehr Server, um mehr Rechen zu bekommen. 83 00:04:26,210 --> 00:04:30,950 Und die Geschwindigkeit der tatsächlich bringen diese Ressourcen up ist viel schneller. 84 00:04:30,950 --> 00:04:31,450 Groß. 85 00:04:31,450 --> 00:04:34,320 >> So lösen wir Hunger in der Welt, nicht wahr? 86 00:04:34,320 --> 00:04:36,390 Nein nicht wirklich. 87 00:04:36,390 --> 00:04:42,410 Also, so viel wie es ist Virtualisierung tatsächlich geholfen, das Problem anzugehen, 88 00:04:42,410 --> 00:04:45,460 es tatsächlich eingeführt viele Herausforderungen. 89 00:04:45,460 --> 00:04:49,210 Der Hypervisor auf jeden Fall eingeführt viel Komplexität, 90 00:04:49,210 --> 00:04:53,820 Umgang mit diesen zugrunde liegenden Pool von Ressourcen. 91 00:04:53,820 --> 00:04:57,910 >> Es ist schwerer in dem Sinne, dass, bevor Sie ein einzelnes Betriebssystem hatten die 92 00:04:57,910 --> 00:05:01,830 ist wie drei, vier Konzerte auf der Festplatte. 93 00:05:01,830 --> 00:05:04,230 Nun, wenn Sie 10 Maschinen haben auf einer einzigen Hardware 94 00:05:04,230 --> 00:05:09,060 Sie vermehren sich, dass haben durch die Anzahl der Maschinen. 95 00:05:09,060 --> 00:05:11,440 Es ist auf jeden Fall mehr teuer in gewissem Sinne immer noch 96 00:05:11,440 --> 00:05:14,430 haben die Zulassung für zu bekommen Die Virtualisierungstechnologie 97 00:05:14,430 --> 00:05:18,210 wenn es nicht Open Source. 98 00:05:18,210 --> 00:05:21,120 >> Aber lassen Sie uns nicht nehmen alle Kredit von Virtualisierung. 99 00:05:21,120 --> 00:05:27,530 Denn das, was geschehen ist, ist es eine Menge von Stacks und viele Software- 100 00:05:27,530 --> 00:05:33,900 Technologien, die aktiviert wurden wie schnell Sie in der Lage zu bekommen, waren 101 00:05:33,900 --> 00:05:38,040 Ressourcen mit der Cloud-Boom. 102 00:05:38,040 --> 00:05:46,675 >> So, heute eine einzige App oder Service werden unter Verwendung von einem der folgenden Lauf 103 00:05:46,675 --> 00:05:47,216 oder Datenbanken. 104 00:05:47,216 --> 00:05:50,250 105 00:05:50,250 --> 00:05:56,070 PHP, Python, MySQL, Redis, was nicht alles. 106 00:05:56,070 --> 00:05:59,740 Es gibt also eine Menge von Komplexität auf diesem Anzahl der Stapel, um tatsächlich bringen 107 00:05:59,740 --> 00:06:02,210 ein einzelner Service. 108 00:06:02,210 --> 00:06:07,300 Und zusammen mit, dass eine Menge musste man zugrunde liegenden Ressourcen oder Infrastruktur 109 00:06:07,300 --> 00:06:15,210 Typen bereitstellen zu testen und im Grunde zu ergreifen, um die Produktion diese Anwendungen 110 00:06:15,210 --> 00:06:16,900 dass Sie zu entwickeln. 111 00:06:16,900 --> 00:06:21,950 >> Vor allem, da Ihre Teams haben gewachsen Arbeit an dieser Anwendungen, 112 00:06:21,950 --> 00:06:25,310 es gibt eine Menge von Komplexität und Herausforderungen 113 00:06:25,310 --> 00:06:31,660 daß gebracht wurden, um sicherzustellen, dass die cycle-- grundsätzlich Anwendung 114 00:06:31,660 --> 00:06:34,040 Entwicklungszyklus ist tatsächlich erfolgreich. 115 00:06:34,040 --> 00:06:40,440 Also, die Tatsache, dass Ihre Anwendung wird lokal auf Ihrem lokalen VM arbeiten 116 00:06:40,440 --> 00:06:47,480 garantiert nicht, dass Ihr Kollege wird, um die gleichen Ergebnisse zu erwarten. 117 00:06:47,480 --> 00:06:51,330 >> Und wenn der Operations-Team ist in der Einnahme, was Sie haben beteiligt 118 00:06:51,330 --> 00:06:54,480 und Bereitstellen es in der Produktion Maßstab, auch gibt es keine Garantie 119 00:06:54,480 --> 00:06:56,730 Das ist eigentlich, dass passieren wird. 120 00:06:56,730 --> 00:07:00,900 So lässt diese uns mit einem wirklich big-- viele Fragezeichen, 121 00:07:00,900 --> 00:07:07,700 viele Herausforderungen tatsächlich ähnlich wie in den Tagen konfrontiert. 122 00:07:07,700 --> 00:07:12,280 Und das uns daran erinnert, von die Schifffahrt. 123 00:07:12,280 --> 00:07:14,280 >> So der Schifffahrt hatte eine Menge von Waren, 124 00:07:14,280 --> 00:07:16,190 wie Sie auf der linken Seite sehen können. 125 00:07:16,190 --> 00:07:19,840 Und auf der rechten Seite, es gibt eine Menge von, im Grunde, 126 00:07:19,840 --> 00:07:22,160 Möglichkeiten, diese Waren zu versenden. 127 00:07:22,160 --> 00:07:26,040 Und was passiert, als Paar Leute kamen zusammen und sagte: 128 00:07:26,040 --> 00:07:29,600 wir brauchen, um zu standardisieren, wie wir tatsächlich versenden diese Waren. 129 00:07:29,600 --> 00:07:33,280 Und boom, müssen Sie die intermodalen Transportbehälter. 130 00:07:33,280 --> 00:07:38,970 >> Also am meisten kamen sie überein, gängigen Größen für den Container. 131 00:07:38,970 --> 00:07:40,160 Wie man damit umgeht. 132 00:07:40,160 --> 00:07:44,560 Welche genaue Methode Sie brauchen um sie zu laden und zu entladen sie. 133 00:07:44,560 --> 00:07:49,590 Und deshalb, dass wirklich half der Schifffahrt. 134 00:07:49,590 --> 00:07:55,250 Jetzt mehr als 90% Schwerpunkt transportiert weltweit sind mit diesen Behältern. 135 00:07:55,250 --> 00:08:01,010 Und dass auf jeden Fall verringert die Aufwendungen sowie 136 00:08:01,010 --> 00:08:03,400 die Schäden, die auf Versandkosten. 137 00:08:03,400 --> 00:08:09,660 >> Also nehmen wir das gleiche Modell und wir gelten die beiden App-Entwicklung Software- 138 00:08:09,660 --> 00:08:13,080 Architektur im Sinne dass Containerisierung 139 00:08:13,080 --> 00:08:15,842 nahm die Virtualisierung eine Ebene nach oben. 140 00:08:15,842 --> 00:08:17,800 Also anstatt das zu tun, dass auf Hardware-Ebene, 141 00:08:17,800 --> 00:08:22,060 wurde es einer Bedien Systemebene Virtualisierung. 142 00:08:22,060 --> 00:08:26,450 >> Und das tun wir, indem jeweils Anwendung in einem eigenen leichten, 143 00:08:26,450 --> 00:08:31,180 isoliert, lauffähig, und tragbaren, am wichtigsten, 144 00:08:31,180 --> 00:08:35,049 ein Weg, um tatsächlich zu verpacken alles, was es braucht, um laufen. 145 00:08:35,049 --> 00:08:36,100 Überall kann es ausgeführt werden. 146 00:08:36,100 --> 00:08:42,039 Also, egal wenn Sie es sind auf lokale dev Umwelt, Ihre Produktion 147 00:08:42,039 --> 00:08:44,490 Umwelt, Staging oder Prüfung. 148 00:08:44,490 --> 00:08:47,700 Egal, welche zugrunde liegenden Infrastruktur ist da, 149 00:08:47,700 --> 00:08:51,410 Sie hatte eine funktionale Arbeits App. 150 00:08:51,410 --> 00:08:54,100 151 00:08:54,100 --> 00:09:01,800 >> Also das ist genau das, was im Grunde Behälter tun, um dieses Problem. 152 00:09:01,800 --> 00:09:04,070 Sie richten es nach Verpackungs es in einer solchen Art und Weise 153 00:09:04,070 --> 00:09:09,490 dass sie gewährleisten, dass es im Einsatz erfolgreich, egal wo sie lebt. 154 00:09:09,490 --> 00:09:12,120 Also, wenn du gehst wie Bob es ist immer noch OK. 155 00:09:12,120 --> 00:09:17,860 Wenn Sie mit dem, was ich sage, verwirrt, Ich werde auf die Ausarbeitung werden. 156 00:09:17,860 --> 00:09:20,900 >> Wie funktioniert Docker selbst fit in diesem Bild? 157 00:09:20,900 --> 00:09:26,335 So Docker ist eine offene Plattform leicht, einfach zu betonen, 158 00:09:26,335 --> 00:09:30,500 zum Schiff zu bauen, führen, leichte, tragbare Selbst 159 00:09:30,500 --> 00:09:33,440 ausreichende App Behälter überall. 160 00:09:33,440 --> 00:09:37,660 Also, wenn Sie etwas von diesem zu nehmen talk, nehmen Sie sich bitte die folgenden. 161 00:09:37,660 --> 00:09:40,980 >> Wenn Sie Ihre Anwendung laufen haben vor Ort und Sie können es entwickelt 162 00:09:40,980 --> 00:09:45,930 bei der Verwendung der Docker-Plattform erwarten es erfolgreich eingesetzt werden. 163 00:09:45,930 --> 00:09:49,380 Egal, was ist das zugrunde liegenden Infrastruktur. 164 00:09:49,380 --> 00:09:53,830 Also, wenn Sie ein Docker haben Behälter und es funktioniert, dann 165 00:09:53,830 --> 00:09:58,130 so lange, wie es ist ein Docker Motor auf der anderen side-- 166 00:09:58,130 --> 00:10:02,190 wenn Ihr Betrieb Infrastruktur wird mit jeder Wolke, ob es 167 00:10:02,190 --> 00:10:06,680 ist AWS oder Google oder Microsoft, oder einen der öffentlichen Clouds, 168 00:10:06,680 --> 00:10:10,010 oder Ihre eigene Wolke, oder Ihre offenen Stapel Wolke, oder Ihre lokale Umgebung. 169 00:10:10,010 --> 00:10:11,970 >> Wenn Sie einen Motor haben, Laufen, das bedeutet 170 00:10:11,970 --> 00:10:14,537 Es wird dort erfolgreich im Einsatz. 171 00:10:14,537 --> 00:10:16,620 Es wird ausgeführt werden, genau das gleiche Verhalten 172 00:10:16,620 --> 00:10:21,480 wie Sie es architected sein. 173 00:10:21,480 --> 00:10:26,080 Also, wenn wir freuen at-- Ich werde durch das, was eigentlich gehen 174 00:10:26,080 --> 00:10:29,160 sind die Hauptbestandteile der Docker. 175 00:10:29,160 --> 00:10:31,060 >> So Motor ist das Herzstück der Hafenarbeiter. 176 00:10:31,060 --> 00:10:32,770 Es ist das Gehirn. 177 00:10:32,770 --> 00:10:39,360 Es orchestriert Gebäude, Versand, und die Bereitstellung und Verwaltung 178 00:10:39,360 --> 00:10:41,570 die Behälter selbst. 179 00:10:41,570 --> 00:10:45,160 Ich werde in das, was Motor nicht graben in mehr Details in einem zweiten. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 Im Grunde, weil Doktor gebaut wurde um die Client-Server-Architekturen, 182 00:10:51,720 --> 00:10:56,630 so, um mit dem zu interagieren Motor müssen Sie irgendeine Art von einem Client. 183 00:10:56,630 --> 00:11:01,200 >> Bilder sind die Vorlagen in Behältnisse aus gebaut. 184 00:11:01,200 --> 00:11:06,800 So Bilder sind im Grunde nur statische Dateien. 185 00:11:06,800 --> 00:11:08,740 Templates und Behälter ist eigentlich, was ist 186 00:11:08,740 --> 00:11:12,280 wird zur Laufzeit ausgeführt wird, dass verbüßt ​​Ihre Anwendung 187 00:11:12,280 --> 00:11:15,150 oder etwas mit den Daten zu tun. 188 00:11:15,150 --> 00:11:19,020 >> Registrierung wird als ein Problem der adressierten wie Sie tatsächlich verteilen Bilder. 189 00:11:19,020 --> 00:11:23,230 Also, wenn Sie ein Bild freigeben müssen dass Sie gearbeitet an einen Kollegen 190 00:11:23,230 --> 00:11:27,220 oder zum ops team, Sie verwenden Sie es mithilfe des Registrierungs. 191 00:11:27,220 --> 00:11:31,720 Sie können einen Open-Source-Download Version davon, dass Docker arbeitete an 192 00:11:31,720 --> 00:11:33,150 und öffnen Sie bezogen. 193 00:11:33,150 --> 00:11:38,040 >> Oder Sie können Docker Hilfe zu verwenden, das ist die Wolke Version 194 00:11:38,040 --> 00:11:40,130 zu drücken und Bilder herausziehen es. 195 00:11:40,130 --> 00:11:41,160 Das ist eine riesige Sache. 196 00:11:41,160 --> 00:11:44,520 Denn es gibt eine riesige Ökosystem rund um Docker und es ist 197 00:11:44,520 --> 00:11:48,960 wirklich stark aus dem Subteller. 198 00:11:48,960 --> 00:11:59,780 >> So, hier zu fassen, das ist, wie die minimalistischen Docker Workflow-Client. 199 00:11:59,780 --> 00:12:04,040 Sie interagieren mit dem Wirt, in diesem Fall ist es die Docker Dämonen. 200 00:12:04,040 --> 00:12:06,490 Es ist dasselbe, wie Motor. 201 00:12:06,490 --> 00:12:09,690 Sie tun Befehle wie Docker bauen, ziehen, laufen. 202 00:12:09,690 --> 00:12:14,280 Und der Motor selbst geht und tut diese Dinge. 203 00:12:14,280 --> 00:12:18,010 >> Also entweder mit interagiert Registrierung, um diese Bilder zu ziehen 204 00:12:18,010 --> 00:12:19,670 und die Schichten der Bilder. 205 00:12:19,670 --> 00:12:25,030 Egal ob Sie bereitstellen möchten, führen Container, töten sie, werfen sie nieder, 206 00:12:25,030 --> 00:12:25,730 was nicht alles. 207 00:12:25,730 --> 00:12:32,190 Also das den Arbeitsablauf fasst aller dieser Komponenten. 208 00:12:32,190 --> 00:12:34,710 >> Also, wenn Sie jeden nehmen Komponente allein. 209 00:12:34,710 --> 00:12:37,690 So Motor, es ist nur ein Dämon. 210 00:12:37,690 --> 00:12:40,800 Es wird Art von spielen zu unterstützen auf Linux, weil es funktioniert 211 00:12:40,800 --> 00:12:44,380 erfordern bestimmte Linux-Kernel-Funktionen. 212 00:12:44,380 --> 00:12:48,820 Aber Windows funktioniert auf das gleiche tun. 213 00:12:48,820 --> 00:12:53,720 Es soll unterstützt werden von Windows Server 2016. 214 00:12:53,720 --> 00:13:01,500 >> Also, noch einmal, die Verantwortlichkeiten mit dem Motor ist zu, oder sind, bauen Bilder. 215 00:13:01,500 --> 00:13:05,340 Bilder Ziehen Sie aus der Docker Hub oder Ihre eigenen Registry. 216 00:13:05,340 --> 00:13:07,840 Wenn Sie mit diesen Bildern gemacht oder Sie können eine neue Bilder zu schaffen, 217 00:13:07,840 --> 00:13:14,770 können Sie diese zurückdrängen, um Registrierungs um sie an andere Teams zu verteilen. 218 00:13:14,770 --> 00:13:18,300 >> Und versucht, es vor Ort enthalten und Verwaltung der Behälter-Lebenszyklus 219 00:13:18,300 --> 00:13:19,260 örtlich. 220 00:13:19,260 --> 00:13:22,010 Es ist rund HTTP REST API gebaut. 221 00:13:22,010 --> 00:13:24,480 Technisch möglich schreib eine Client- 222 00:13:24,480 --> 00:13:31,650 solange sie verwendet HTTP, das eine sehr ist Standardmechanismus, um den Motor zu sprechen 223 00:13:31,650 --> 00:13:33,110 und viele andere Dienstleistungen. 224 00:13:33,110 --> 00:13:35,780 Und Sie aus sehen können hier, dass unabhängig 225 00:13:35,780 --> 00:13:39,010 von dem, was die Infrastruktur ist, so lange wie Sie alle can-- 226 00:13:39,010 --> 00:13:42,170 Sie brauchen, ist ein Betriebs System, Linux spezifisch. 227 00:13:42,170 --> 00:13:45,460 >> Und Sie können Docker Engine installieren oben auf, dass und haben es läuft 228 00:13:45,460 --> 00:13:48,970 und orchestriert grundsätzlich alle diese app ein, zwei, 229 00:13:48,970 --> 00:13:51,530 und drei eigentlichen Behälter. 230 00:13:51,530 --> 00:13:53,990 Also das ist, Motor. 231 00:13:53,990 --> 00:13:58,040 Wie ich bereits erwähnte, weil Sie brauchen, um mit Motor zu interagieren, 232 00:13:58,040 --> 00:13:59,200 gibt es den Client. 233 00:13:59,200 --> 00:14:03,180 >> Aber eigentlich, wenn Sie installieren Docker, es wird mit ihm. 234 00:14:03,180 --> 00:14:06,110 So ist es installiert wird, so ist es eine einzelne binäre. 235 00:14:06,110 --> 00:14:11,830 Und Sie Ortsgespräche tun können um Ihre Docker Motor. 236 00:14:11,830 --> 00:14:14,040 Oder Remote-Aufrufe an entfernte Engines. 237 00:14:14,040 --> 00:14:16,600 238 00:14:16,600 --> 00:14:19,590 Es spielt verwenden HTTP, wie Ich bereits erwähnt. 239 00:14:19,590 --> 00:14:24,200 Es gibt einen GUI-Client aufgerufen Kitematic von Docker. 240 00:14:24,200 --> 00:14:26,390 Und es gibt auf jeden Fall eine Menge anderer Leute 241 00:14:26,390 --> 00:14:29,740 , die den Aufbau einer Menge von GUIs, die im Grunde zu implementieren 242 00:14:29,740 --> 00:14:32,980 einige HTTP-Aufrufe an den Motor zu sprechen. 243 00:14:32,980 --> 00:14:35,920 244 00:14:35,920 --> 00:14:39,280 >> Nur einige Beispielbefehle. 245 00:14:39,280 --> 00:14:44,620 Wenn Sie Docker-Version zu tun, wäre es zeigen Sie die Client-Version als auch 246 00:14:44,620 --> 00:14:47,030 die Server-Version. 247 00:14:47,030 --> 00:14:49,500 Wenn Sie Docker info tun, wird es Ihnen sagen alle Informationen, 248 00:14:49,500 --> 00:14:54,300 darüber, wie viele Container ausgeführt werden, oder geschaffen, wie viele Bilder Sie haben, 249 00:14:54,300 --> 00:14:56,530 und so weiter und so fort. 250 00:14:56,530 --> 00:15:01,850 >> Hier habe ich, in der neben letzte Feld, ich habe Doktor laufen. 251 00:15:01,850 --> 00:15:04,970 Also das ist, wie ich bin eigentlich Erstellen Container. 252 00:15:04,970 --> 00:15:08,960 Und ich gebe es zu Hallo Welt Echo und schlafen für eine zweite und so weiter. 253 00:15:08,960 --> 00:15:12,830 Und Sie können das sehen, Ergebnis. Es ist also noch nicht abgeschlossen. 254 00:15:12,830 --> 00:15:16,930 Und ähnlich wie Linux ps können Sie sehen, alle Prozesse, und in diesem Fall 255 00:15:16,930 --> 00:15:18,540 alle laufenden Behältern. 256 00:15:18,540 --> 00:15:23,430 Das hier ist unter Rückgriff auf der Behälter I gerade erstellt haben. 257 00:15:23,430 --> 00:15:27,560 >> Also, das ist wirklich wichtig, weil, wie kann es ein wenig verwirrend. 258 00:15:27,560 --> 00:15:33,050 So Bilder sind die Nur-Lese- Sammlung von Dateien, nicht wahr? 259 00:15:33,050 --> 00:15:37,000 Sie sind, was unsere Behälter basiert. 260 00:15:37,000 --> 00:15:40,340 Aber sie sind nur schreibgeschützt. 261 00:15:40,340 --> 00:15:44,330 So starten Sie mit einem Basis-Image. 262 00:15:44,330 --> 00:15:50,180 Es neigt dazu, OS-like zu imitieren, so Ubuntu, CentOS, was nicht alles Basis-Image. 263 00:15:50,180 --> 00:15:53,990 Und dann haben Sie den Aufbau auf der Oberseite zu starten daß bestimmte Schichten, das wird bis 264 00:15:53,990 --> 00:16:00,010 Ihrem Ende image, führen das Ende hier. 265 00:16:00,010 --> 00:16:03,220 >> Und jede dieser Schichten sollte eine übergeordnete Bild haben 266 00:16:03,220 --> 00:16:06,690 dass es verweist, wenn er eigentlich will zu schaffen. 267 00:16:06,690 --> 00:16:09,922 Sie sind unveränderlich, in dem Sinne, dass, weil sie schreibgeschützt, 268 00:16:09,922 --> 00:16:11,630 Sie können nicht wirklich Änderungen an ihnen. 269 00:16:11,630 --> 00:16:17,540 Sie können sie verwenden, um eine zu erstellen Behälter aus einem Bild, das 270 00:16:17,540 --> 00:16:23,530 rufen alle nachfolgenden erforderlichen Bilder darunter. 271 00:16:23,530 --> 00:16:26,400 >> Sie können Änderungen vornehmen auf eine andere Ebene, 272 00:16:26,400 --> 00:16:28,810 es ist ein Überschreibschicht werde ich sprechen in einer zweiten. 273 00:16:28,810 --> 00:16:31,350 Aber jede dieser Schichten nie geändert werden. 274 00:16:31,350 --> 00:16:34,300 275 00:16:34,300 --> 00:16:38,670 Grundsätzlich Bilder verwenden etwas, genannt Union Dateisystem UFS. 276 00:16:38,670 --> 00:16:42,280 Und es gibt verschiedene Speicher Backends, die diese Technologie nutzen zu können. 277 00:16:42,280 --> 00:16:49,430 Und was das bedeutet, ist, dass es bringt verschiedene Dateisysteme zusammen 278 00:16:49,430 --> 00:16:51,190 , dass sie aussehen wie einer. 279 00:16:51,190 --> 00:16:54,460 >> So können Sie tatsächlich, aus Anwendungssicht, 280 00:16:54,460 --> 00:16:59,570 Sie eine Spitze einer Ansicht, die zeigt, haben alle anderen Dateisystem benötigt, 281 00:16:59,570 --> 00:17:01,120 für diese Anwendung zu laufen. 282 00:17:01,120 --> 00:17:04,400 Aber sie sind wirklich, auf dieser, sie sind tatsächlich in getrennten Orten 283 00:17:04,400 --> 00:17:06,410 und durch nutzt andere Behälter als auch. 284 00:17:06,410 --> 00:17:09,569 285 00:17:09,569 --> 00:17:14,410 >> So wie Sie in hier sehen, dass wenn wir anfangen Bild Daemon mit 286 00:17:14,410 --> 00:17:18,619 als Basis-Image, und dann wir gehen in und fügen Sie [? emacs?] 287 00:17:18,619 --> 00:17:20,720 und dann ist das eine andere Schicht. 288 00:17:20,720 --> 00:17:21,916 Und fügen Sie dann Apache. 289 00:17:21,916 --> 00:17:22,790 Das ist eine andere Schicht. 290 00:17:22,790 --> 00:17:25,470 Und dann haben wir verbringen den Behälter von diesem. 291 00:17:25,470 --> 00:17:29,760 Jedes dieser Bilder, Jede dieser Schichten, 292 00:17:29,760 --> 00:17:35,530 unterscheidet und kann durch andere Behälter wiederverwendet werden. 293 00:17:35,530 --> 00:17:40,070 >> Wenn Sie am Behälter selbst suchen, sie sind irgendwie wie VM-like, 294 00:17:40,070 --> 00:17:41,930 jedoch nicht zur gleichen Zeit behandelt. 295 00:17:41,930 --> 00:17:49,180 Also, die sie nicht haben, technisch gesehen, die Vollbetriebssystem unter ihnen. 296 00:17:49,180 --> 00:17:52,630 Sie nutzen die einzelnen Kernel des Host-Betriebssystems. 297 00:17:52,630 --> 00:17:54,440 Und sie bauen obendrein. 298 00:17:54,440 --> 00:17:56,250 Sie ahmen in, wie sie aussehen. 299 00:17:56,250 --> 00:18:00,710 Sie ahmen ihren Root-Datei System des Betriebssystems. 300 00:18:00,710 --> 00:18:04,930 Aber sie sind tatsächlich nicht repliziert. 301 00:18:04,930 --> 00:18:12,080 >> Also, statt mit unveränderlichen Schichten, die letzte Schicht, die der Behälter 302 00:18:12,080 --> 00:18:14,690 selbst, es ist ein Schreib-Lese-Schicht. 303 00:18:14,690 --> 00:18:17,350 Das läuft auch die Prozesse Ihrer Anwendung. 304 00:18:17,350 --> 00:18:23,530 Und es hängt von den darunter liegenden Schichten. 305 00:18:23,530 --> 00:18:26,730 Jeder Behälter ist von einem Bild geschaffen. 306 00:18:26,730 --> 00:18:32,450 Und das Bild kann eine einzige sein oder mehrschichtigen Bild. 307 00:18:32,450 --> 00:18:37,200 >> Und ich möchte hier zu beachten dass Docker stark benutzt, 308 00:18:37,200 --> 00:18:40,370 oder auf Copy-on-Write-Mechanismus. 309 00:18:40,370 --> 00:18:44,350 So dass, tatsächlich, wenn Sie nicht Änderungen an dem Behälter, 310 00:18:44,350 --> 00:18:45,930 es wird nicht um mehr Platz zu nehmen. 311 00:18:45,930 --> 00:18:49,600 Also das ist im Grunde, wie Sie Zusammenfassend ein Copy-on-Write. 312 00:18:49,600 --> 00:18:53,820 Es wird auf jeden Fall beschleunigen Die Hochlaufzeit für den Behälter. 313 00:18:53,820 --> 00:18:56,300 Weil, wenn Sie nicht machen Änderungen an dem Container, 314 00:18:56,300 --> 00:18:57,800 es nutzen, was bereits vorhanden. 315 00:18:57,800 --> 00:19:01,130 316 00:19:01,130 --> 00:19:02,955 >> So, wie es tatsächlich funktioniert. 317 00:19:02,955 --> 00:19:06,920 318 00:19:06,920 --> 00:19:14,240 Teil es ist, gerade jetzt, es nutzt mindestens zwei Schlüssel Kernel 319 00:19:14,240 --> 00:19:14,820 Eigenschaften. 320 00:19:14,820 --> 00:19:17,660 Und das ist im Grunde, was erstellt, dass Niveau der Isolation 321 00:19:17,660 --> 00:19:19,550 für die Behälter selbst. 322 00:19:19,550 --> 00:19:22,290 Diese Merkmale sind Namespaces und Kontrollgruppen. 323 00:19:22,290 --> 00:19:29,870 So Namespaces sind eine Möglichkeit, erstellen isolierten Ressourcen, 324 00:19:29,870 --> 00:19:36,290 so daß innerhalb des Behälters selbst, nur Sie können bestimmte Ressourcen zu sehen. 325 00:19:36,290 --> 00:19:40,030 Wie beispielsweise die Netzwerkschnittstelle oder die bestimmte Benutzer oder Dingsbums. 326 00:19:40,030 --> 00:19:44,160 >> Und das sind nur sichtbar, und nur zugänglich innerhalb des Behälters. 327 00:19:44,160 --> 00:19:48,290 Kontrollgruppe auf der anderen Seitenbegrenzungen wie Sie diese Ressourcen zu nutzen. 328 00:19:48,290 --> 00:19:50,950 CPU, Speicher und Festplatte. 329 00:19:50,950 --> 00:19:53,900 Wenn Sie gehen in, I bedeuten, das sind tatsächlich 330 00:19:53,900 --> 00:19:57,410 Funktionen, die entwickelt wurden, nach-- sie sind Teil des Linux-Kernels. 331 00:19:57,410 --> 00:20:01,800 So dass sie nicht neu erfunden wurden von oder durch Docker neu erstellt. 332 00:20:01,800 --> 00:20:03,770 Docker nutzt sie. 333 00:20:03,770 --> 00:20:05,560 >> Welche Doktor wirklich Hier ist es tatsächlich 334 00:20:05,560 --> 00:20:08,680 orchestrierte Erstellung Namensräume für jeden Behälter 335 00:20:08,680 --> 00:20:13,320 und die Schaffung der Kontrollgruppen, so dass es lächerlich einfach zu Containern zu erstellen 336 00:20:13,320 --> 00:20:14,870 Verwendung dieser Funktionen. 337 00:20:14,870 --> 00:20:22,910 Natürlich, wie ich früher beschrieben, Union File Systems und Copy-on-Write wirklich 338 00:20:22,910 --> 00:20:26,810 hilft, die Geschwindigkeit und die Platte Verwendung von Containern. 339 00:20:26,810 --> 00:20:28,917 >> Und sobald Sie Ihre Hände um Dockarbeiter, 340 00:20:28,917 --> 00:20:32,000 Sie gehen zu sehen, wie schnell es ist, tatsächlich spin up Container und Tränen 341 00:20:32,000 --> 00:20:32,500 sie nieder. 342 00:20:32,500 --> 00:20:36,060 343 00:20:36,060 --> 00:20:40,230 Also, wenn Sie fragen sich vielleicht, wie kann Sie tatsächlich Bilder zu bauen? 344 00:20:40,230 --> 00:20:45,940 Wir bauen Bilder von einem Prozess der Erstellung Container und Änderungen, Änderungs 345 00:20:45,940 --> 00:20:50,220 sie, und sie begehen in das Werden ein Bild. 346 00:20:50,220 --> 00:20:54,330 >> So ist es ein Huhn und Ei Referenz hier, 347 00:20:54,330 --> 00:20:57,350 da alle Behälter kommen von Bildern und Bilder kommen 348 00:20:57,350 --> 00:21:00,270 aus begangen Container, größtenteils. 349 00:21:00,270 --> 00:21:03,830 Es gibt drei Optionen um Bilder zu erstellen. 350 00:21:03,830 --> 00:21:06,580 Ich werde beschreiben, das erste und letzte. 351 00:21:06,580 --> 00:21:10,060 Sie können entweder manuell gehen und führen Sie den Behälter 352 00:21:10,060 --> 00:21:14,280 und stellen Sie diese Änderungen, wie Sie auf jedem VM tun würde, 353 00:21:14,280 --> 00:21:17,060 oder jedes Betriebssystem, wie wie die Installation von neuen Binärdateien, 354 00:21:17,060 --> 00:21:19,370 Hinzufügen von Dateisystemen, und so weiter. 355 00:21:19,370 --> 00:21:22,620 >> Und dann haben Sie zu verlassen, wie Sie können dort zu sehen. 356 00:21:22,620 --> 00:21:24,330 Ich Verlassen meiner Container. 357 00:21:24,330 --> 00:21:26,050 Und dann mache ich Docker begehen. 358 00:21:26,050 --> 00:21:28,390 Und ich bin verpflichtet, dass. 359 00:21:28,390 --> 00:21:31,560 Sie können, dass die Zahl hier zu sehen ist nur eine UUID oder die ersten 12 360 00:21:31,560 --> 00:21:32,810 Bits der UUID. 361 00:21:32,810 --> 00:21:34,320 Oder Bytes der UUID. 362 00:21:34,320 --> 00:21:35,770 Und dann rufe ich es meinem Bild. 363 00:21:35,770 --> 00:21:39,510 Jetzt so Docker kümmert Aufnahme alles, was ich tat es 364 00:21:39,510 --> 00:21:42,830 und die Schaffung der neuen Bild basierend auf dem. 365 00:21:42,830 --> 00:21:47,080 366 00:21:47,080 --> 00:21:52,560 >> Ich werde nicht über Tarball zu sprechen, aber es gibt eine Weise, die Sie ein einzelnes bekommen können, 367 00:21:52,560 --> 00:21:58,200 erstellen Sie eine einzelne, oder machen Sie einen einzelnen Schichtbild mit Tarballs. 368 00:21:58,200 --> 00:22:02,650 Was werde ich darüber reden und was heute meist verwendet, 369 00:22:02,650 --> 00:22:03,270 ist Dockerfile. 370 00:22:03,270 --> 00:22:07,260 Welches ist technisch die erste Schritt für Docker selbst automatisiert. 371 00:22:07,260 --> 00:22:11,920 So Dockerfiles gibt Dinge, die Sie gehen, um in einer Menge von GitHub Repo sehen 372 00:22:11,920 --> 00:22:13,150 heute. 373 00:22:13,150 --> 00:22:16,420 Es ist im Grunde nur ein Textdatei beschreibt 374 00:22:16,420 --> 00:22:19,780 genau, wie man ein Bild zu bauen. 375 00:22:19,780 --> 00:22:25,540 >> Und für jede Zeile, es tatsächlich schafft der Behälter, führt diese Linie, 376 00:22:25,540 --> 00:22:30,480 begeht diesen Behälter in einem neues Bild, und du, im Grunde, 377 00:22:30,480 --> 00:22:36,160 verwenden Sie es für alle nachfolgenden Operationen bis Sie zum letzten Bild. 378 00:22:36,160 --> 00:22:39,260 Das ist im Grunde das Ende Ziel ist hier, das Ende. 379 00:22:39,260 --> 00:22:42,420 Und nachdem Sie, nachdem Sie exec-- schreib Dockerfile, die 380 00:22:42,420 --> 00:22:46,750 rein in Text, ein Docker tun Sie Aufbau und den Namen des Bildes. 381 00:22:46,750 --> 00:22:50,000 >> Und Sie, dass dies darauf wo die Dockerfile ist. 382 00:22:50,000 --> 00:22:56,570 Und Sie können erwarten, um mein Bild zu sehen wie ein Bild, das Sie vor Ort. 383 00:22:56,570 --> 00:22:59,100 Also das ist nur eine visuelle Beispiel dafür, was weitergeht. 384 00:22:59,100 --> 00:23:00,820 Sie beginnen mit einem Basis-Image. 385 00:23:00,820 --> 00:23:05,150 Sie führen, dass in einen Behälter, der ist das Basisbild selbst nicht ändern. 386 00:23:05,150 --> 00:23:08,310 Sondern schafft ein umschreiben Schicht oben auf sie 387 00:23:08,310 --> 00:23:10,340 in dem Sie die Änderungen vornehmen, in denen Sie sich verpflichten 388 00:23:10,340 --> 00:23:15,050 und Sie den Vorgang, bis wiederholen Sie erhalten, Ihre endgültige Bild. 389 00:23:15,050 --> 00:23:20,980 >> Und dadurch jede weitere Build Prozess kann die gleichen Schichten zu verwenden 390 00:23:20,980 --> 00:23:23,870 und das im Grunde same-- Docker Caches diese Schichten. 391 00:23:23,870 --> 00:23:30,040 So dass, wenn ich tue, exakt das gleiche Prozess, aber anstelle der Installation PHP, 392 00:23:30,040 --> 00:23:31,540 Ich bin der Installation von Python. 393 00:23:31,540 --> 00:23:34,210 Es wird Apache und Ubuntu verwenden. 394 00:23:34,210 --> 00:23:39,570 So diese Weise Sie den Einsatz Ihrer Festplatte. 395 00:23:39,570 --> 00:23:42,330 Es ist unter Verwendung der Cache- und verfügbaren Bildern gibt. 396 00:23:42,330 --> 00:23:45,320 397 00:23:45,320 --> 00:23:48,840 >> Das letzte Stück ist Registry, die ist, wie Sie Ihre Bilder zu verteilen. 398 00:23:48,840 --> 00:23:52,710 Und, wie ich bereits erwähnt, es gibt eine Wolke Version davon, 399 00:23:52,710 --> 00:23:54,290 Das ist Docker Hub. 400 00:23:54,290 --> 00:23:57,550 Sie können gehen und zu erkunden eine Menge, im Grunde 401 00:23:57,550 --> 00:24:04,900 es ist eine öffentliche SAS Produkt, Sie können immer noch über private Bilder, 402 00:24:04,900 --> 00:24:06,590 aber es gibt eine Menge von öffentlichen Bilder. 403 00:24:06,590 --> 00:24:10,580 Es ist eigentlich unbegrenzt, können Sie schieben es unbegrenzte öffentliche Bilder. 404 00:24:10,580 --> 00:24:13,730 Und das ist, wie Sie Zusammenarbeit mit Ihrem Team. 405 00:24:13,730 --> 00:24:17,159 >> Sie können sie nur darauf an Ihnen Repo und sie können es oder Ihr Bild herunterladen 406 00:24:17,159 --> 00:24:18,200 und sie können es herunterladen. 407 00:24:18,200 --> 00:24:21,140 408 00:24:21,140 --> 00:24:24,990 Also genug mit der Diskussion. 409 00:24:24,990 --> 00:24:29,110 Wer will schon ein paar Demos ganz schnell sehen? 410 00:24:29,110 --> 00:24:31,330 Gut. 411 00:24:31,330 --> 00:24:34,050 Also hier habe ich. 412 00:24:34,050 --> 00:24:37,480 Ca euch sehen, mein Bildschirm? 413 00:24:37,480 --> 00:24:38,390 Gut. 414 00:24:38,390 --> 00:24:45,810 >> So habe ich Docker läuft hier, so dass ich kann it's-- Dieser Check ist die Version 415 00:24:45,810 --> 00:24:47,510 der Docker, die läuft. 416 00:24:47,510 --> 00:24:49,320 Kann Docker info zu tun. 417 00:24:49,320 --> 00:24:55,730 Überprüfen Sie alle Daten, wie viele Bilder, die sie haben, und so weiter und so fort. 418 00:24:55,730 --> 00:24:58,890 Docker PS, es gibt nichts läuft. 419 00:24:58,890 --> 00:25:00,570 Verkettet denen. 420 00:25:00,570 --> 00:25:06,370 >> Das erste, was ich tun möchte, ist Show Ihnen, wie Sie ganz einfach laufen auf einen Container. 421 00:25:06,370 --> 00:25:09,350 So ist die Schönheit über Doktor Sicht, wenn es tatsächlich 422 00:25:09,350 --> 00:25:14,700 kein Bild vor Ort zu finden, Standardmäßig ist es für den Arzt Hub spricht 423 00:25:14,700 --> 00:25:17,240 und versucht, sie dort zu finden und Downloads für Sie. 424 00:25:17,240 --> 00:25:22,820 So es eine Docker Pull-Befehl, natürlich. 425 00:25:22,820 --> 00:25:26,130 >> Also, wenn ich eine Docker Lauf, hallo-Welt zu tun. 426 00:25:26,130 --> 00:25:28,890 427 00:25:28,890 --> 00:25:31,200 Also, zuerst, es wird zu versuchen, es zu lokalisieren. 428 00:25:31,200 --> 00:25:36,140 Ansonsten, wie Sie hier sehen können, sie konnte ihn nicht finden vor Ort. 429 00:25:36,140 --> 00:25:41,830 Gerade jetzt ist es gerade herausgezogen zwei Schichten das machte das Bild und ich lief es. 430 00:25:41,830 --> 00:25:45,440 Die Hallo-Welt ist im Grunde nur Ausgänge, was Sie getan haben. 431 00:25:45,440 --> 00:25:47,680 So ist dies die einfachste, eine der einfachsten Beispiele. 432 00:25:47,680 --> 00:25:53,840 So einfach um und lief beendet der Behälter ganz schnell. 433 00:25:53,840 --> 00:25:59,500 >> Wenn ich run-- und übrigens, wenn Ich möchte Zeit, dass, nur damit Sie wissen, 434 00:25:59,500 --> 00:26:03,572 Dies ist, wie lange es dauert, tatsächlich spin up und enthalten es. 435 00:26:03,572 --> 00:26:05,030 Wir messen es in Millisekunden. 436 00:26:05,030 --> 00:26:10,600 Wie viel, so dass Sie sehen können, kann dies eigentlich haben Sie nicht nur bei der Prüfung helfen, 437 00:26:10,600 --> 00:26:13,200 sondern auch Bereitstellung. 438 00:26:13,200 --> 00:26:17,221 Also das ist eine kurze Notiz auf, dass. 439 00:26:17,221 --> 00:26:18,970 Das nächste, was ich tun ist eigentlich 440 00:26:18,970 --> 00:26:21,930 laufen ein Bild habe ich schon vorbereitet. 441 00:26:21,930 --> 00:26:24,460 So Andockfenster Lauf. 442 00:26:24,460 --> 00:26:27,240 -d ist nur eine Flagge zu sagen, es im Hintergrund laufen. 443 00:26:27,240 --> 00:26:30,290 Und -p weist bestimmte Ports. 444 00:26:30,290 --> 00:26:32,670 Da standardmäßig die Container isoliert, 445 00:26:32,670 --> 00:26:36,080 so müssen Sie genau festlegen, wie sie darauf zugreifen können. 446 00:26:36,080 --> 00:26:41,150 Und in diesem Fall, ich sage Docker um einen zufälligen Port auf dem Host-Karte 447 00:26:41,150 --> 00:26:44,560 auf die angegebene Port innerhalb der Behälter selbst. 448 00:26:44,560 --> 00:26:47,130 449 00:26:47,130 --> 00:26:56,460 Und das ist im Grunde, wo die image-- hoffentlich ist dies der richtige. 450 00:26:56,460 --> 00:27:01,780 >> So dass es parallele Downloads je dieser Schichten, wie Sie hier sehen können. 451 00:27:01,780 --> 00:27:06,949 Das sind der Schichten, Ende Bild, das ich gebaut. 452 00:27:06,949 --> 00:27:08,115 Es wird eine zweite zu nehmen. 453 00:27:08,115 --> 00:27:11,290 454 00:27:11,290 --> 00:27:12,370 Und voila. 455 00:27:12,370 --> 00:27:16,590 >> So, jetzt, wenn ich eine docker ps, sollte ich etwas sehen, was läuft. 456 00:27:16,590 --> 00:27:22,250 Ich sollte die ID zu sehen, das Bild dass diese es wurde basierend, 457 00:27:22,250 --> 00:27:23,880 und der Befehl, der ausgeführt wurde. 458 00:27:23,880 --> 00:27:28,720 Und wie Sie darauf zugreifen, ist Grundsätzlich gehen Sie zu diesem Port. 459 00:27:28,720 --> 00:27:33,240 So werde ich zu-- diese gehen wird ich bin läuft es auf AWS. 460 00:27:33,240 --> 00:27:37,150 Ich werde um 32.769 zu gehen. 461 00:27:37,150 --> 00:27:37,650 Hoppla. 462 00:27:37,650 --> 00:27:40,495 463 00:27:40,495 --> 00:27:41,120 Und es geht los. 464 00:27:41,120 --> 00:27:44,550 >> Das ist also eigentlich nur ein Web-Service, der zeigt, 465 00:27:44,550 --> 00:27:46,240 die Container es aus serviert. 466 00:27:46,240 --> 00:27:50,450 So können Sie sehen, dass es aus dem Behälter A9F. 467 00:27:50,450 --> 00:27:52,850 Und hier ist dies die Name des Containers. 468 00:27:52,850 --> 00:27:56,550 So kann euch sehen, wie schnell es war es tatsächlich nicht nur ziehen sondern auch 469 00:27:56,550 --> 00:28:00,440 bereitstellen Verpackung. 470 00:28:00,440 --> 00:28:05,070 >> Nun ist der nächste Schritt ist, Blick in Dockerfiles 471 00:28:05,070 --> 00:28:09,430 und wie können wir tatsächlich bauen neue Bilder. 472 00:28:09,430 --> 00:28:15,250 Ich werde einfach zu holen Klon ein sample-Dockerfile basierend auf dem vorher 473 00:28:15,250 --> 00:28:17,755 Schaltbild, das eine um Apache und PHP. 474 00:28:17,755 --> 00:28:26,740 475 00:28:26,740 --> 00:28:28,140 Hoffentlich habe ich erinnere mich an meine Repo. 476 00:28:28,140 --> 00:28:36,410 477 00:28:36,410 --> 00:28:38,750 >> So habe ich mein Repository jetzt. 478 00:28:38,750 --> 00:28:43,080 Und du wirst sehen, dieses viel eigentlich. 479 00:28:43,080 --> 00:28:45,110 Ich habe nicht installieren Baum. 480 00:28:45,110 --> 00:28:48,700 >> Also im Grunde wirst du sehen, wie Ihren Source-Code Dokumentation rund um 481 00:28:48,700 --> 00:28:51,240 , und dann ein auf Dockerfile wie man tatsächlich verpacken. 482 00:28:51,240 --> 00:28:57,970 So ist es nur ein Beispiel PHP dass Echos hallo CS50. 483 00:28:57,970 --> 00:29:01,550 >> Also, wenn ich will, um sie auszuführen, Ich werde docker Build zu tun. 484 00:29:01,550 --> 00:29:03,370 Ich habe es zuerst zu bauen. 485 00:29:03,370 --> 00:29:12,420 Ich werde es nennen demo_cs50. 486 00:29:12,420 --> 00:29:16,470 Und Sie einen Tag brauchen, um es zu. 487 00:29:16,470 --> 00:29:19,802 So nennen wir es v1 dot. 488 00:29:19,802 --> 00:29:21,760 So wie ich es früher beschrieben, was ich heute tun 489 00:29:21,760 --> 00:29:26,840 ist Ich sage Docker den Einsatz gehen dass-- wirklich, sorry, my bad. 490 00:29:26,840 --> 00:29:29,450 491 00:29:29,450 --> 00:29:32,500 Wir haben nicht einen Blick zu nehmen am Dockerfile sich. 492 00:29:32,500 --> 00:29:39,020 Also das einzige, was hier drin sind index.php sowie der Readme-Datei 493 00:29:39,020 --> 00:29:39,810 und eine Dockerfile. 494 00:29:39,810 --> 00:29:44,600 >> Also, wenn Sie ein Blick in die Dockerfile, so ist es 495 00:29:44,600 --> 00:29:47,150 sehr ähnlich, was Ich früher beschrieben. 496 00:29:47,150 --> 00:29:51,220 Es ist nur ein Haufen von Schritte, die Docker ausführt 497 00:29:51,220 --> 00:29:56,330 durch die Schaffung und Abbau Container und [? Zählen?] sie in einem Bild. 498 00:29:56,330 --> 00:29:59,570 >> Und im Grunde kann man see-- [unverständlich] es hier-- 499 00:29:59,570 --> 00:30:04,340 aber dies ist aus dem lokalen Repo. 500 00:30:04,340 --> 00:30:06,410 Es wird gehen und sichern Sie index.php. 501 00:30:06,410 --> 00:30:10,970 Also das ist der einzige Quellcode, sind eigentlich Teil Ihrer Anwendung. 502 00:30:10,970 --> 00:30:16,800 All dies sind im Grunde Betriebssystem Sanitär-, 503 00:30:16,800 --> 00:30:21,460 die richtigen Pakete und Apache und PHP, und so weiter. 504 00:30:21,460 --> 00:30:26,950 Aber das ist eigentlich unter index.php und Begehen in den Behälter, 505 00:30:26,950 --> 00:30:28,210 in das Bild. 506 00:30:28,210 --> 00:30:33,120 >> Also, wenn Sie gehen Sie vor und führen die Befehl, indem Sie die folgende, 507 00:30:33,120 --> 00:30:36,155 es ist eigentlich going--, könnte dies ein wenig zu nehmen. 508 00:30:36,155 --> 00:30:40,870 509 00:30:40,870 --> 00:30:42,455 Hoffentlich wird es nicht zu lange dauern. 510 00:30:42,455 --> 00:30:45,129 511 00:30:45,129 --> 00:30:46,170 So können Sie die Schritte sehen. 512 00:30:46,170 --> 00:30:49,320 Und ich ermutige Sie, um zu gehen wieder nach Hause heute und versuchen Sie es. 513 00:30:49,320 --> 00:30:51,280 Und Mano beschreiben wie genau Sie das tun. 514 00:30:51,280 --> 00:30:57,810 Aber es ist wirklich toll, genau zu sehen was hinter den Kulissen passiert. 515 00:30:57,810 --> 00:31:02,420 Aber es ist lächerlich einfach zu bauen Bilder und stellen Sie sie mit Docker. 516 00:31:02,420 --> 00:31:12,170 517 00:31:12,170 --> 00:31:14,050 >> Es nimmt ein wenig mehr als ich erwartet hatte. 518 00:31:14,050 --> 00:31:29,085 519 00:31:29,085 --> 00:31:32,690 >> Mal sehen, was passiert, wenn Sie-- kühlen. 520 00:31:32,690 --> 00:31:36,260 So wie Sie, jeden dieser Schritte sehen können, stellen Linien im Dockerfile. 521 00:31:36,260 --> 00:31:42,570 Und es zeigt sich hier, dass es Dieses Bild erfolgreich aufgebaut. 522 00:31:42,570 --> 00:31:46,480 >> Also, wenn ich tun docker Bilder, ich bin zu gehen sehen Sie alle Bilder, die ich vor Ort. 523 00:31:46,480 --> 00:31:52,160 Und einer von ihnen genannt wird mein Benutzernamen und den Namen des Bildes, 524 00:31:52,160 --> 00:31:56,050 und das Tag representing-- vor allem ist es eine Version-Tag. 525 00:31:56,050 --> 00:31:58,040 >> So, jetzt, wenn ich laufen es, ich tue docker Lauf. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 Und ich möchte nur ein -d -P zu tun. Haben v1. 528 00:32:14,960 --> 00:32:18,500 So kann ich jetzt sehen, dass ich zwei haben Container ausgeführt wird, die, die ich gerade 529 00:32:18,500 --> 00:32:21,230 erstellt und die hallo Docker eine, die ich zuletzt. 530 00:32:21,230 --> 00:32:24,320 >> Und hier, dass es sehen können es ist ein anderer Port zugewiesen. 531 00:32:24,320 --> 00:32:30,710 Wenn ich also auf die gleiche IP, sondern weisen Sie eine andere port-- hoffentlich habe ich nicht. 532 00:32:30,710 --> 00:32:33,060 So, jetzt ist dies Anwendung dass ich gerade im Einsatz. 533 00:32:33,060 --> 00:32:35,980 534 00:32:35,980 --> 00:32:43,900 >> Wenn ich will, um Änderungen vorzunehmen, I schnell den Quellcode bearbeiten 535 00:32:43,900 --> 00:32:49,050 und gehen Sie folgendermaßen vor. 536 00:32:49,050 --> 00:32:55,170 Lass uns hallo Harvard. 537 00:32:55,170 --> 00:32:57,989 So, jetzt, was los ist geschehen ist, dass ich 538 00:32:57,989 --> 00:32:59,905 gehen, um es mit einem Tag verschiedene version-- oh, 539 00:32:59,905 --> 00:33:03,080 nicht diese guy-- es markieren mit einer anderen Version. 540 00:33:03,080 --> 00:33:05,735 Und du bist zu gehen see-- kann euch erwarten, 541 00:33:05,735 --> 00:33:11,020 sie dieselbe Menge an Zeit in Anspruch nehmen um ihn zu bauen ein zweites Mal oder nicht? 542 00:33:11,020 --> 00:33:14,470 Alles klar, und jeder weiß, warum? 543 00:33:14,470 --> 00:33:15,020 Speak up. 544 00:33:15,020 --> 00:33:16,350 >> ZIELGRUPPE: [unverständlich] 545 00:33:16,350 --> 00:33:19,830 >> NICOLA kabar: Es ist im Grunde wir nur ändern, eine der späteren Schritten. 546 00:33:19,830 --> 00:33:23,110 Und damit es sich auf die Verwendung Cache und verwenden Sie jede dieser Schichten. 547 00:33:23,110 --> 00:33:27,080 Und das ist wirklich einige der Killer-Features von Docker 548 00:33:27,080 --> 00:33:32,930 ist, wie es tatsächlich nutzt und Wiederverwendungen übernehmen 549 00:33:32,930 --> 00:33:36,950 Ihre Festplatte für die gleiche genaue Stücke von Informationen. 550 00:33:36,950 --> 00:33:40,700 >> Also, wenn wir tun, die gleiche Sache, es dauerte nur ein paar Sekunden. 551 00:33:40,700 --> 00:33:48,860 Wenn wir so jetzt redeploy-- möchten Ich sollte drei Container haben. 552 00:33:48,860 --> 00:33:56,160 Aber dieses wird auf the-- Seven One serviert. 553 00:33:56,160 --> 00:33:58,860 So jetzt ist es der dritte Behälter. 554 00:33:58,860 --> 00:34:02,580 Jeder verstehen was ich gerade hier getan hat? 555 00:34:02,580 --> 00:34:06,320 >> So, jetzt, wenn Sie, dies zu teilen Behälter ganz schnell mit Ihren Freunden, 556 00:34:06,320 --> 00:34:14,840 können Sie einfach tun docker drücken Sie den Name des Containers, hoffentlich. 557 00:34:14,840 --> 00:34:20,130 So, jetzt, es wird zu schieben zu-- Ich bin nicht hier unterzeichnet. 558 00:34:20,130 --> 00:34:33,511 559 00:34:33,511 --> 00:34:34,219 Bitten um Entschuldigung. 560 00:34:34,219 --> 00:34:39,219 Aber ich werde nicht beheben das jetzt. 561 00:34:39,219 --> 00:34:42,780 Aber im Grunde, dass ein Befehl ist nur hinauf schieben. 562 00:34:42,780 --> 00:34:45,670 Und du wirst in der Lage sein wirst sehen, wenn Sie Docker Hub gehen 563 00:34:45,670 --> 00:34:48,587 Und Sie melden Sie sich an, du bist in der Lage sein, es zu sehen. 564 00:34:48,587 --> 00:34:50,420 Und dann können Sie nur zeigen, wer wird 565 00:34:50,420 --> 00:34:52,750 , um dieses Bild zu verwenden, um zu gehen und ziehen Sie es. 566 00:34:52,750 --> 00:34:55,460 Und sie nutzen können. 567 00:34:55,460 --> 00:34:57,760 >> Damit hoffentlich Ich Art gezeigt 568 00:34:57,760 --> 00:35:01,230 wie einfach es ist, mit Docker zu arbeiten. 569 00:35:01,230 --> 00:35:06,610 Und ich werde einfach geben es zurück zu Mano. 570 00:35:06,610 --> 00:35:11,760 Und er wird nehmen Sie es von hier. 571 00:35:11,760 --> 00:35:13,990 >> MANO MARKS: Alle Rechte danke, danke Nico. 572 00:35:13,990 --> 00:35:18,700 573 00:35:18,700 --> 00:35:20,614 Na und? 574 00:35:20,614 --> 00:35:24,410 Damit wird eines der Dinge, die ich tun wollte, zusammengesetzt 575 00:35:24,410 --> 00:35:28,820 Deshalb ist dies ein important-- warum Docker und warum 576 00:35:28,820 --> 00:35:33,000 Behälter ein solcher wichtige neue Entwicklung, 577 00:35:33,000 --> 00:35:36,890 eine neue Art von Software eigentlich macht. 578 00:35:36,890 --> 00:35:41,300 >> Und bevor ich das tue, werde ich den los nur vorstellen ein paar Statistiken. 579 00:35:41,300 --> 00:35:42,790 Ich werde nicht alle von diesen zu lesen. 580 00:35:42,790 --> 00:35:52,540 Aber das zeigt Ihnen viel darüber, wie populäres Dieses ist in der Gemeinde. 581 00:35:52,540 --> 00:35:56,310 Die Kern Docker Technologien sind Open Source. 582 00:35:56,310 --> 00:36:03,560 Also das ist, Docker Motor, Compose, Swarm, ein paar andere Sachen 583 00:36:03,560 --> 00:36:05,210 ist alles Open Source. 584 00:36:05,210 --> 00:36:10,590 Und wir haben, was habe ich sagen, 1.300 Mitwirkenden. 585 00:36:10,590 --> 00:36:15,630 Sie können nun sehen, wenn man sich den Blick Zahl der offenen Stellen, das letzte Mal, 586 00:36:15,630 --> 00:36:19,640 wir sahen, war es etwa 43.000 Job Öffnungen speziell erwähnens 587 00:36:19,640 --> 00:36:22,230 Vertrautheit mit Docker. 588 00:36:22,230 --> 00:36:26,450 Hunderte von Millionen von Bilder haben von Docker Hub heruntergeladen. 589 00:36:26,450 --> 00:36:31,870 Und, na ja, viel mehr große stats. 590 00:36:31,870 --> 00:36:34,770 >> Für diejenigen, die neugierig sind, es Ursprünglich wurde in Python geschrieben 591 00:36:34,770 --> 00:36:37,730 und dann in Go neu geschrieben. 592 00:36:37,730 --> 00:36:40,320 Und es ist erst öffnen source-- es nur 593 00:36:40,320 --> 00:36:44,950 seit ca. 2 1/2 Jahren veröffentlicht, was bedeutet, dass in 2 1/2 Jahren 594 00:36:44,950 --> 00:36:48,020 Wir haben eine enorme Menge gesehen des Wachstums und der Bedeutung 595 00:36:48,020 --> 00:36:50,190 davon in der Gemeinde. 596 00:36:50,190 --> 00:36:52,400 Und so möchte ich sprechen ein wenig darüber, warum. 597 00:36:52,400 --> 00:36:54,940 598 00:36:54,940 --> 00:36:59,880 >> Also, nur um einige zu wiederholen Nicos wichtigsten Punkte ist Docker schnell. 599 00:36:59,880 --> 00:37:00,630 Es ist tragbar. 600 00:37:00,630 --> 00:37:02,500 Es ist reproduzierbar. 601 00:37:02,500 --> 00:37:06,130 Und es baut eine Standardumgebung. 602 00:37:06,130 --> 00:37:13,370 >> Und what-- dies ist mein crappy auszumerzen Monolithen slide-- was 603 00:37:13,370 --> 00:37:17,990 es hilft Menschen zu tun, die ein großer Teil der Software-Industrie 604 00:37:17,990 --> 00:37:21,400 angefangen in der Anfang der 2000er Jahre in Bewegung 605 00:37:21,400 --> 00:37:24,200 aus diesen monolithischen Einzelanwendungen 606 00:37:24,200 --> 00:37:28,590 wo jeder Abhängigkeits musste getestet, bevor die gesamte app hatte 607 00:37:28,590 --> 00:37:31,280 zum Einsatz kommen, die könnte eine Website bedeuten, 608 00:37:31,280 --> 00:37:36,240 nur noch einmal im Einsatz alle drei Monate oder mehr, 609 00:37:36,240 --> 00:37:42,650 zu einer viel Dienst orientierte Architektur 610 00:37:42,650 --> 00:37:46,090 oder komponenten andere Art Anwendungsarchitektur. 611 00:37:46,090 --> 00:37:48,610 Und so erlaubt diese Art von Architektur 612 00:37:48,610 --> 00:37:52,250 daß ausnutzen Docker in diese drei laufen 613 00:37:52,250 --> 00:37:58,450 Hauptbereiche der Entwicklung, die ist Entwicklungs Schreiben der eigentliche Code, 614 00:37:58,450 --> 00:38:00,140 Testen Sie Ihren Code und dem Einsatz von IT. 615 00:38:00,140 --> 00:38:03,000 616 00:38:03,000 --> 00:38:05,420 >> Also, warum ist das wichtig? 617 00:38:05,420 --> 00:38:09,920 Wenn Sie a-- lassen Sie mich Ihnen ein Beispiel geben. 618 00:38:09,920 --> 00:38:13,600 Wenn Sie ein Website Geräteentwickler, du bist 619 00:38:13,600 --> 00:38:19,020 Entwicklung einer Website, die auf die auf der Basis ist Datenbank, die David produziert hier. 620 00:38:19,020 --> 00:38:20,490 Es tut uns leid David, ich rufe Sie aus. 621 00:38:20,490 --> 00:38:22,984 622 00:38:22,984 --> 00:38:24,900 Wenn Sie bereitstellen wollte, die ganze Sache, würden Sie 623 00:38:24,900 --> 00:38:28,870 müssen unter einem traditionellen warten monolithischen Software-Entwicklung 624 00:38:28,870 --> 00:38:32,710 Umwelt, müssten Sie warten bis er mit der Datenbank durchgeführt 625 00:38:32,710 --> 00:38:36,030 bevor man tatsächlich machen Alle Änderungen an Ihrer Website. 626 00:38:36,030 --> 00:38:40,900 Sie müssten die Umschichtung gesamte Anwendung zu tun. 627 00:38:40,900 --> 00:38:45,490 >> Und was Docker hilft Ihnen tun, ist jeder Person, die Arbeit an verschiedenen Komponenten 628 00:38:45,490 --> 00:38:52,990 und aktualisieren Sie sie, wie sie gehen, nur machen Sie sicher, dass die Schnittstellen gleich bleiben. 629 00:38:52,990 --> 00:38:56,350 Also, was sie getan hat wird es verschoben Menschen 630 00:38:56,350 --> 00:39:03,950 zu tun, diese massiven monolithischen architected Software, die 631 00:39:03,950 --> 00:39:07,610 Einsatz jeden Monat zu einer kontinuierlichen Integration und kontinuierliche Entwicklung 632 00:39:07,610 --> 00:39:08,490 Umwelt. 633 00:39:08,490 --> 00:39:12,580 >> Nun ist dies nicht eindeutig zuzuordnen Dockarbeiter, aber Docker macht es so viel einfacher, 634 00:39:12,580 --> 00:39:16,620 das heißt, Sie sind im Grunde ständig bereitstellen. 635 00:39:16,620 --> 00:39:20,690 Wir sprechen mit Unternehmen, die sind Bereitstellung von öffentlich zugänglichen Anwendungen 636 00:39:20,690 --> 00:39:30,180 Tausende Male am Tag, weil sie nur machen sehen den Wert 637 00:39:30,180 --> 00:39:33,740 kleine Änderungen, und so lange wie es durch die Tests ausgeführt wird, 638 00:39:33,740 --> 00:39:35,900 lässt sie gehen in die Produktion. 639 00:39:35,900 --> 00:39:41,890 Nico wurde mir immer gesagt, früher, dass in vielen Umgebungen, 640 00:39:41,890 --> 00:39:46,580 die Standardlebenszyklus ein Behälter wird in Sekunden gemessen, 641 00:39:46,580 --> 00:39:50,460 der Erwägung, dass eine virtuelle Maschine vielleicht in Monaten gemessen werden. 642 00:39:50,460 --> 00:39:54,590 643 00:39:54,590 --> 00:39:58,690 >> Ich wollte ein leichter zu nehmen biegen Sie hier, weil ich bin 644 00:39:58,690 --> 00:40:00,170 bei einer Bildungseinrichtung. 645 00:40:00,170 --> 00:40:06,670 Ich wollte ein Beispiel, wie zu geben Dies funktioniert in einer Bildungsforschung 646 00:40:06,670 --> 00:40:07,670 Lage. 647 00:40:07,670 --> 00:40:10,930 Es gibt also eine Organisation genannt bioboxes. 648 00:40:10,930 --> 00:40:15,450 Bioboxes tut DNA Analyse für Forscher. 649 00:40:15,450 --> 00:40:22,029 >> Nun, was sie fanden, war, dass, wenn a researcher-- und dies ist nicht 650 00:40:22,029 --> 00:40:24,070 die Schuld von einem bestimmten researcher-- aber wenn 651 00:40:24,070 --> 00:40:31,240 ein Forscher im Einsatz ein Algorithmus zur Analyse, 652 00:40:31,240 --> 00:40:36,670 In besonderer Weise wird eine DNA-Probe, sie würden die Software zu schreiben, 653 00:40:36,670 --> 00:40:39,980 zu veröffentlichen, dass, vielleicht, um GitHub oder irgendwo anders, 654 00:40:39,980 --> 00:40:42,680 und dann wurden sie getan. 655 00:40:42,680 --> 00:40:47,440 >> Nun das Problem war, dass es nicht unbedingt reproduzierbar. 656 00:40:47,440 --> 00:40:51,610 Denn um verstehen, die Software, 657 00:40:51,610 --> 00:40:54,830 sie würden sich für die festgelegt werden genaue Entwicklungsumgebung 658 00:40:54,830 --> 00:41:00,460 daß diese Forscher, gewöhnlich ihrem Laptop oder ein Server oder ein Daten 659 00:41:00,460 --> 00:41:04,280 zentrieren, dass sie mit. 660 00:41:04,280 --> 00:41:11,530 Und folglich war es sehr schwer zu Forschungsergebnissen, wenn zu reproduzieren 661 00:41:11,530 --> 00:41:16,910 Analyse von DNA-Proben, um zu suchen an Dinge wie incidence-- 662 00:41:16,910 --> 00:41:23,830 Inzidenz von Herzinfarkten vergleichen anhand von bestimmten Genen vorhanden sind, 663 00:41:23,830 --> 00:41:28,900 zum Beispiel, oder das Krebsrisiko, oder eine der anderen Arten von Dingen. 664 00:41:28,900 --> 00:41:33,900 >> Anstatt also das war, was sie taten, sie begannen Schaffung Containern. 665 00:41:33,900 --> 00:41:39,380 Und Sie gehen können, um bioboxes.org, es ist eine große Organisation. 666 00:41:39,380 --> 00:41:43,900 Und was sie tun, ist, die sie produzieren Container basierend auf Forschung. 667 00:41:43,900 --> 00:41:46,840 Und dann, wenn jemand sendet in ihrer Probe, können sie sie auszuführen. 668 00:41:46,840 --> 00:41:52,770 Und all die Umwelt hat erforderlich, dass die Algorithmus ausgeführt 669 00:41:52,770 --> 00:41:55,370 und produzieren die Ergebnisse. 670 00:41:55,370 --> 00:41:58,250 Und sie finden, dass sie viel eher und vieles 671 00:41:58,250 --> 00:42:01,300 schneller in der Lage, zurück Ergebnisse zu den Menschen. 672 00:42:01,300 --> 00:42:06,860 >> Und in der Tat, was die Menschen tun, sind auf den Betrieb ihrer eigenen DNA-Analyse, 673 00:42:06,860 --> 00:42:11,220 Senden, dass in den bioboxes und dann Biobox dauert nur die Daten, 674 00:42:11,220 --> 00:42:15,350 läuft es gegen die Vielzahl von verschiedenen Behältern 675 00:42:15,350 --> 00:42:19,030 um unterschiedliche Ergebnisse zu sehen auf der Basis verschiedener Forschung. 676 00:42:19,030 --> 00:42:21,860 Es ist also eine sehr starke Weise, in der Forscher 677 00:42:21,860 --> 00:42:28,070 kann eine einzige Instanz, die erlaubt zu machen anderen Menschen zu versuchen und zu reproduzieren 678 00:42:28,070 --> 00:42:28,650 die Ergebnisse. 679 00:42:28,650 --> 00:42:31,710 680 00:42:31,710 --> 00:42:34,360 >> So, wie Sie anfangen sollen? 681 00:42:34,360 --> 00:42:37,950 682 00:42:37,950 --> 00:42:39,800 Wir sind gut auf Linux unterstützt. 683 00:42:39,800 --> 00:42:43,070 Also, wenn Sie installieren möchten alles auf Linux, 684 00:42:43,070 --> 00:42:45,620 Ihr Standard verwenden Paket-Manager zu installieren. 685 00:42:45,620 --> 00:42:47,600 Wenn Sie eine Debian sind, ist es apt-get. 686 00:42:47,600 --> 00:42:50,500 CentOS ist yum. 687 00:42:50,500 --> 00:42:53,500 Fedora Red Hat ist rpm-- Ich erinnere mich nicht. 688 00:42:53,500 --> 00:42:56,070 Wie auch immer, es ist alles da. 689 00:42:56,070 --> 00:42:59,610 Wir unterstützen eine große Vielfalt Linux-Distributionen. 690 00:42:59,610 --> 00:43:01,150 Sie können diejenigen, auschecken. 691 00:43:01,150 --> 00:43:06,370 >> Wir haben auch Möglichkeiten, so dass Sie könnte man auf Mac oder Windows. 692 00:43:06,370 --> 00:43:10,670 Jetzt Nico bereits erwähnt, dass es war nur unter Linux unterstützt. 693 00:43:10,670 --> 00:43:18,180 Das ist wahr, weil es benötigt einen Linux-Kernel. 694 00:43:18,180 --> 00:43:20,540 Aber Sie können in einer virtuellen Maschine laufen. 695 00:43:20,540 --> 00:43:25,290 Und was die Docker Toolbox tut, die Sie herunterladen können, 696 00:43:25,290 --> 00:43:27,610 es gibt Ihnen diese virtuelle Maschine. 697 00:43:27,610 --> 00:43:37,260 >> Also nur eine schnelle 48 zweiten, denke ich, herunterladen. 698 00:43:37,260 --> 00:43:40,670 Sie haben auf Docker suchen Werkzeugkasten, laden Sie es auf dem Mac, 699 00:43:40,670 --> 00:43:43,910 und dieser Teil ist von Natürlich beschleunigt, weil die 700 00:43:43,910 --> 00:43:47,620 will einen Download-Signal zu sehen? 701 00:43:47,620 --> 00:43:54,190 Standard-Mac-Installation, und dann bist du 702 00:43:54,190 --> 00:43:59,795 gehen, um zu sehen Jerome legte in seinem Passwort. 703 00:43:59,795 --> 00:44:00,670 Das ist sehr spannend. 704 00:44:00,670 --> 00:44:03,510 705 00:44:03,510 --> 00:44:06,230 Und dann installiert es ein ganze Reihe von Werkzeugen. 706 00:44:06,230 --> 00:44:10,010 Und vor allem, es wird installieren Sie eine Befehlszeile. 707 00:44:10,010 --> 00:44:14,220 Und dann konnte man sehen, Jerome testet seine Bilder. 708 00:44:14,220 --> 00:44:19,050 709 00:44:19,050 --> 00:44:22,640 >> Und dann auf dieser Basis, Ihnen die YouTube sehen 710 00:44:22,640 --> 00:44:27,420 denkt, dass Nico interessiert sich Star Wars, The Jimmy Kimmel Show, 711 00:44:27,420 --> 00:44:29,020 und ich glaube, Ellen. 712 00:44:29,020 --> 00:44:34,130 Ich denke, das letzte ist ein Clip aus einem Ellen Show. 713 00:44:34,130 --> 00:44:37,760 >> So Docker Toolbox aber kommt mit mehr als nur Docker Machine. 714 00:44:37,760 --> 00:44:39,840 So Docker Machine ist die Sache, die hilft 715 00:44:39,840 --> 00:44:43,710 Sie ein virtuelles Set Maschine auf Ihrem Windows- 716 00:44:43,710 --> 00:44:52,080 oder Mac-- Ihrem Windows-Rechner oder Mac box-- und hilft Ihnen, die Bereitstellung zu tun, 717 00:44:52,080 --> 00:44:54,040 >> Aber es kommt auch mit Swarm und Compose, 718 00:44:54,040 --> 00:45:00,840 die entworfen, um Ihnen helfen, große zu tun weite Implementierung in Ihrer Anwendung. 719 00:45:00,840 --> 00:45:04,000 Also, wenn Sie verwalten möchten Cluster von Knoten, 720 00:45:04,000 --> 00:45:08,450 Cluster von Containern, Verfassen und Swarm sind der Weg, darüber zu gehen. 721 00:45:08,450 --> 00:45:11,430 >> Und natürlich kommt es mit Docker Motor und Kitematic, 722 00:45:11,430 --> 00:45:13,250 was diese Desktop-GUI. 723 00:45:13,250 --> 00:45:17,060 Ich sollte auch erwähnen Docker Registry, die nicht in Toolbox enthalten ist, 724 00:45:17,060 --> 00:45:23,150 aber es ist eine Möglichkeit für Sie, Ihre eigenen zu laufen Register der Docker Bilder wie Docker 725 00:45:23,150 --> 00:45:28,970 Hub, aber Sie können auch einfach Docker Hub als eine Möglichkeit, das zu tun. 726 00:45:28,970 --> 00:45:32,955 >> Und Plot Twist, werden Sie sehen, es in einen Behälter laufen. 727 00:45:32,955 --> 00:45:34,830 Und das ist, wie wir sind Vertrieb unserer Folien. 728 00:45:34,830 --> 00:45:38,610 Diese ganze Präsentation ist eigentlich eine HTML Schiebe Deck. 729 00:45:38,610 --> 00:45:43,170 Und es in eine ausgeführt wird Container, die Sie bekommen können nach-- 730 00:45:43,170 --> 00:45:45,596 >> NICOLA kabar: Ja, so ist es läuft in Vollzeit auf meinem Max. 731 00:45:45,596 --> 00:45:47,540 Und ich bin präsentiert von ihm. 732 00:45:47,540 --> 00:45:50,910 Und Sie gerade tun, Docker nach Sie Toolbox installieren. 733 00:45:50,910 --> 00:45:57,340 Sie können einfach eine docker Lauf und bekommen es, und verwenden Sie die Folien. 734 00:45:57,340 --> 00:45:58,830 >> MANO Markierungen: Und das ist es. 735 00:45:58,830 --> 00:46:02,160 So danken wir Ihnen allen für Ihr Kommen. 736 00:46:02,160 --> 00:46:03,990 Und wir freuen uns, Fragen zu beantworten. 737 00:46:03,990 --> 00:46:07,810 Ich sollte erwähnen, bevor jemand Blätter gibt es T-Shirts drüben. 738 00:46:07,810 --> 00:46:10,940 Es tut uns leid jeden, der gerade ist Diese auf Livestream oder Video, 739 00:46:10,940 --> 00:46:12,820 aber wir haben Docker T-Shirts drüben. 740 00:46:12,820 --> 00:46:16,250 Und wir wissen, Docker Studenten, und nach meiner Erfahrung, 741 00:46:16,250 --> 00:46:18,940 Professoren zu, wie kostenlose Kleidung. 742 00:46:18,940 --> 00:46:22,490 >> Ich danke Ihnen allen für Ihr Kommen heraus. 743 00:46:22,490 --> 00:46:27,050 Und folgen Sie uns auf Twitter wenn Sie wollen, oder nicht. 744 00:46:27,050 --> 00:46:27,910 Es ist mir egal. 745 00:46:27,910 --> 00:46:29,430 Beachten Sie auch Docker auf Twitter. 746 00:46:29,430 --> 00:46:31,890 Das ist auch interessant. 747 00:46:31,890 --> 00:46:32,990 Und dann das ist es. 748 00:46:32,990 --> 00:46:33,490 Docker.com. 749 00:46:33,490 --> 00:46:35,410 Vielen Dank. 750 00:46:35,410 --> 00:46:39,360 >> [BEIFALL] 751 00:46:39,360 --> 00:46:41,625