1 00:00:00,000 --> 00:00:05,042 >> [Muziek] 2 00:00:05,042 --> 00:00:06,000 DAVID MALAN: Oké. 3 00:00:06,000 --> 00:00:07,630 Heel erg bedankt voor uw komst. 4 00:00:07,630 --> 00:00:11,850 Dit is CS50 seminar over Docker, een technologie die we onszelf en CS50 5 00:00:11,850 --> 00:00:13,392 zijn begonnen met enige tijd. 6 00:00:13,392 --> 00:00:15,766 Dus mijn naam is David Malan, I leren Harvard Introductie 7 00:00:15,766 --> 00:00:16,671 Computer Science. 8 00:00:16,671 --> 00:00:18,670 Voor heel wat jaren, we zijn het geven van studenten 9 00:00:18,670 --> 00:00:20,435 downloadbare client-side virtuele machines 10 00:00:20,435 --> 00:00:22,134 waar zij hun problemen sets. 11 00:00:22,134 --> 00:00:24,300 Dat hebben we nu overgestapt een cloud-omgeving 12 00:00:24,300 --> 00:00:27,396 die daadwerkelijk gebruikt deze technologie riep Docker, zodanig dat alle CS50 13 00:00:27,396 --> 00:00:29,270 studenten hebben nu hun eigen Docker containers 14 00:00:29,270 --> 00:00:31,180 dat u binnenkort alles zult horen. 15 00:00:31,180 --> 00:00:33,740 >> Bovendien, op de server CS50's side cluster, voor vele jaren 16 00:00:33,740 --> 00:00:35,290 waren we met behulp van Amazon's Cloud server. 17 00:00:35,290 --> 00:00:37,164 We liepen individuele virtuele machines. 18 00:00:37,164 --> 00:00:40,330 Ook dat hebben we begonnen met de overgang naar deze dingen genoemd Docker containers 19 00:00:40,330 --> 00:00:43,762 zodat al onze toepassingen nu perfect geïsoleerd van elkaar. 20 00:00:43,762 --> 00:00:46,720 Dus voor dat en meer, laat mij introduceren onze vrienden, Nico en Mano, 21 00:00:46,720 --> 00:00:48,574 van Docker zelf. 22 00:00:48,574 --> 00:00:49,740 NICOLA Kabar: Bedankt, David. 23 00:00:49,740 --> 00:00:51,410 Dag iedereen. 24 00:00:51,410 --> 00:00:54,230 Mijn naam is Nico en dit is Mano. 25 00:00:54,230 --> 00:00:58,260 We zijn van Docker. 26 00:00:58,260 --> 00:01:02,240 We gaan praten about-- geven jullie een intro naar Docker, 27 00:01:02,240 --> 00:01:08,100 en hopelijk eind van dit gesprek u kunt realiseren 28 00:01:08,100 --> 00:01:12,890 hoeveel je arts kan gebruiken om oxalaat uw applicatie-ontwikkeling 29 00:01:12,890 --> 00:01:14,200 en implementatie. 30 00:01:14,200 --> 00:01:21,250 >> Dus, gaan we echt beginnen snel met wat achtergrond informatie. 31 00:01:21,250 --> 00:01:22,750 Beschrijven wat Docker is alles over. 32 00:01:22,750 --> 00:01:25,490 Hoe werkt het? 33 00:01:25,490 --> 00:01:27,400 Hoe is het architected? 34 00:01:27,400 --> 00:01:29,360 Ik zal doen wat demo's. 35 00:01:29,360 --> 00:01:35,070 En Mano gaat worden beschrijven hoe kunt u gebruik maken van Docker 36 00:01:35,070 --> 00:01:37,720 en geven u specifieke stappen hoe je kunt aan de slag. 37 00:01:37,720 --> 00:01:41,490 >> Ik zou het waarderen als jullie kan houden off voor uw vragen naar het einde. 38 00:01:41,490 --> 00:01:46,800 Op die manier, ik misschien aanpakken die vragen gedurende de presentatie. 39 00:01:46,800 --> 00:01:52,150 Dus we zullen enige tijd vertrekken naar het einde voor vragen. 40 00:01:52,150 --> 00:01:55,170 >> Dus gewoon echt snel, wie heeft eigenlijk ooit gewerkt Docker, 41 00:01:55,170 --> 00:01:56,850 zoals gespeeld met het? 42 00:01:56,850 --> 00:01:58,000 Geweldig. 43 00:01:58,000 --> 00:01:58,520 Koel. 44 00:01:58,520 --> 00:01:59,817 Grote. 45 00:01:59,817 --> 00:02:01,525 Dus, ik ga om te beginnen met een stukje geschiedenis. 46 00:02:01,525 --> 00:02:04,350 47 00:02:04,350 --> 00:02:09,820 Dus terug in de jaren '90 en vroege jaren 2000, in feite 48 00:02:09,820 --> 00:02:16,940 als web-ontwikkelaars, app-ontwikkelaars, toen ze ging om een ​​aanvraag in te zetten 49 00:02:16,940 --> 00:02:19,350 het werd vastgebonden aan blank metaal. 50 00:02:19,350 --> 00:02:20,860 Het was één server. 51 00:02:20,860 --> 00:02:22,870 Het was een applicatie. 52 00:02:22,870 --> 00:02:25,260 >> Traditioneel voorbeeld zou zijn als een LAMP-stack, 53 00:02:25,260 --> 00:02:30,630 waar je eigenlijk moest brengen van het zwembad van de middelen. 54 00:02:30,630 --> 00:02:37,110 CPU, geheugen, schijf, netwerk, installeren besturingssysteem op de top van dat. 55 00:02:37,110 --> 00:02:40,060 Als je iets te serveren, indien je bent eigenlijk met webserver, 56 00:02:40,060 --> 00:02:42,470 je zoiets nodig Apache te serveren. 57 00:02:42,470 --> 00:02:47,540 >> Als uw aanvraag moet de database, backhand, 58 00:02:47,540 --> 00:02:50,840 zou je iets installeert zoals MySQL, en ga zo maar door. 59 00:02:50,840 --> 00:02:55,910 En als je de run tijd nodig, PHPs PHP en Python werk waren. 60 00:02:55,910 --> 00:02:59,480 En dus hebben we eigenlijk moesten nemen deze stappen om 61 00:02:59,480 --> 00:03:02,060 om uw aanvraag up and running te krijgen. 62 00:03:02,060 --> 00:03:08,440 >> Als je meer rekenkracht nodig, u had eigenlijk om uw Ops kerel bellen 63 00:03:08,440 --> 00:03:16,260 of gal te gaan en rack up een nieuwe stuk hardware, sluit het, 64 00:03:16,260 --> 00:03:19,850 en je hebt om die te herhalen processen opnieuw en opnieuw. 65 00:03:19,850 --> 00:03:23,680 Dus dit proces was relatief duur. 66 00:03:23,680 --> 00:03:26,080 Was zeker erg traag. 67 00:03:26,080 --> 00:03:27,550 >> Het was inefficiënt. 68 00:03:27,550 --> 00:03:33,890 En in veel gevallen uw hardware werd onderbenut. 69 00:03:33,890 --> 00:03:38,830 Dus, in de late jaren '90 en vroege jaren 2000, hardwarevirtualisatie kwam. 70 00:03:38,830 --> 00:03:42,475 En zoals je kunt hier zien in de foto, eigenlijk wat ze deden 71 00:03:42,475 --> 00:03:46,390 is geabstraheerd van de pool van gratis hardware resources 72 00:03:46,390 --> 00:03:49,680 en soort van gediend die naar de bovenste lagen, 73 00:03:49,680 --> 00:03:52,360 in dit geval, een gast-besturingssysteem. 74 00:03:52,360 --> 00:03:54,940 >> En het hele idee van virtuele machines kwam 75 00:03:54,940 --> 00:03:59,110 en die echt geholpen Cloud computergebruik zoals we die vandaag kennen. 76 00:03:59,110 --> 00:04:02,730 Dus wat dat betekende is u kunnen meerdere VM's, lopen die 77 00:04:02,730 --> 00:04:06,720 betekende meerdere stapels, multiple applicatie op een zelfde fysieke machine. 78 00:04:06,720 --> 00:04:10,570 79 00:04:10,570 --> 00:04:16,440 >> Dit zeker geholpen met de snelheid van de implementatie van toepassingen. 80 00:04:16,440 --> 00:04:17,629 Zeker met de kosten. 81 00:04:17,629 --> 00:04:22,810 Je hoeft niet te gaan en breng energie, tijd en middelen om rack 82 00:04:22,810 --> 00:04:26,210 meer servers om meer rekenkracht te krijgen. 83 00:04:26,210 --> 00:04:30,950 En de snelheid van daadwerkelijk brengen deze middelen up is veel sneller. 84 00:04:30,950 --> 00:04:31,450 Grote. 85 00:04:31,450 --> 00:04:34,320 >> Dus we opgelost honger in de wereld, toch? 86 00:04:34,320 --> 00:04:36,390 Nee niet echt. 87 00:04:36,390 --> 00:04:42,410 Dus, virtualisatie zo veel als het is eigenlijk geholpen, pakken het probleem, 88 00:04:42,410 --> 00:04:45,460 het eigenlijk geïntroduceerd veel uitdagingen. 89 00:04:45,460 --> 00:04:49,210 De hypervisor zeker introduceerde veel complexiteit 90 00:04:49,210 --> 00:04:53,820 omgaan met deze onderliggende pool van middelen. 91 00:04:53,820 --> 00:04:57,910 >> Het is zwaarder in die zin dat vóór u één besturingssysteem had die 92 00:04:57,910 --> 00:05:01,830 is net als drie, vier optredens op de schijf. 93 00:05:01,830 --> 00:05:04,230 Nu, als je 10 machines op een enkele hardware- 94 00:05:04,230 --> 00:05:09,060 moet je dat vermenigvuldigt het aantal machines. 95 00:05:09,060 --> 00:05:11,440 Het is zeker meer duur in zekere zin nog steeds 96 00:05:11,440 --> 00:05:14,430 moeten licentie voor te krijgen de virtualisatietechnologie 97 00:05:14,430 --> 00:05:18,210 als het niet open source. 98 00:05:18,210 --> 00:05:21,120 >> Maar, laten we niet alle nemen krediet van virtualisatie. 99 00:05:21,120 --> 00:05:27,530 Want wat er gebeurd is er een veel stapels en veel software 100 00:05:27,530 --> 00:05:33,900 technologieën die werden ingeschakeld door hoe snel je in staat om te krijgen waren 101 00:05:33,900 --> 00:05:38,040 om middelen met de Cloud boom. 102 00:05:38,040 --> 00:05:46,675 >> Dus, vandaag één applicatie of dienst kan worden met een van de volgende runtimes 103 00:05:46,675 --> 00:05:47,216 of databases. 104 00:05:47,216 --> 00:05:50,250 105 00:05:50,250 --> 00:05:56,070 PHP, Python, MySQL, Redis, zo. 106 00:05:56,070 --> 00:05:59,740 Dus er is veel complexiteit op deze aantal stapels om daadwerkelijk brengen 107 00:05:59,740 --> 00:06:02,210 één dienst. 108 00:06:02,210 --> 00:06:07,300 En samen met dat, je een hoop gehad onderliggende middelen of infrastructuur 109 00:06:07,300 --> 00:06:15,210 types te implementeren testen en eigenlijk naar productie die toepassingen 110 00:06:15,210 --> 00:06:16,900 dat je ontwikkelt. 111 00:06:16,900 --> 00:06:21,950 >> Vooral als uw teams gewend te werken op die apps, 112 00:06:21,950 --> 00:06:25,310 er is een heleboel complexiteit en uitdagingen 113 00:06:25,310 --> 00:06:31,660 die werden gebracht opdat de cycle-- principe applicatie 114 00:06:31,660 --> 00:06:34,040 ontwikkelingscyclus, is eigenlijk succesvol. 115 00:06:34,040 --> 00:06:40,440 Dus, het feit dat uw aanvraag wordt lokaal werkt aan uw lokale VM 116 00:06:40,440 --> 00:06:47,480 kan niet garanderen dat uw collega gaat om dezelfde resultaten te verwachten. 117 00:06:47,480 --> 00:06:51,330 >> En als de operations team is die betrokken zijn bij het nemen van wat je hebt 118 00:06:51,330 --> 00:06:54,480 en het inzetten van deze in productie schaal, ook is er geen garantie 119 00:06:54,480 --> 00:06:56,730 dat is eigenlijk gaat gebeuren. 120 00:06:56,730 --> 00:07:00,900 Dus dit laat ons achter met een echt big-- veel vraagtekens, 121 00:07:00,900 --> 00:07:07,700 veel uitdagingen daadwerkelijk maken op dezelfde wijze terug in de dagen. 122 00:07:07,700 --> 00:07:12,280 En dat deed ons denken aan de scheepvaart. 123 00:07:12,280 --> 00:07:14,280 >> Zodat de scheepvaart had veel van goederen, 124 00:07:14,280 --> 00:07:16,190 zoals je kunt zien aan de linkerkant. 125 00:07:16,190 --> 00:07:19,840 En aan de rechterkant, er is veel van, in principe, 126 00:07:19,840 --> 00:07:22,160 manieren om deze goederen te verzenden. 127 00:07:22,160 --> 00:07:26,040 En wat gebeurt er als een paar mensen kwamen bij elkaar en zei: 128 00:07:26,040 --> 00:07:29,600 we nodig hebben om te standaardiseren hoe we eigenlijk verzenden die goederen. 129 00:07:29,600 --> 00:07:33,280 En giek, heb je de intermodale zeecontainer. 130 00:07:33,280 --> 00:07:38,970 >> Dus eens ze op de meest gemeenschappelijke afmetingen van de houder. 131 00:07:38,970 --> 00:07:40,160 Hoe om te gaan. 132 00:07:40,160 --> 00:07:44,560 Wat de exacte methode die u nodig hebt te laden en te lossen hen. 133 00:07:44,560 --> 00:07:49,590 En daarom, dat werkelijk hielp de scheepvaart. 134 00:07:49,590 --> 00:07:55,250 Nu vervoerde meer dan 90% scherpstelling wereldwijd gebruikt die containers. 135 00:07:55,250 --> 00:08:01,010 En dat zeker afneemt de kosten als 136 00:08:01,010 --> 00:08:03,400 de schade als gevolg van de scheepvaart. 137 00:08:03,400 --> 00:08:09,660 >> Dus nemen we hetzelfde model en we de twee app ontwikkeling software toepassing 138 00:08:09,660 --> 00:08:13,080 architectuur, in de zin dat containerisatie 139 00:08:13,080 --> 00:08:15,842 nam de virtualisatie een niveau omhoog. 140 00:08:15,842 --> 00:08:17,800 Dus in plaats van dat te doen op de hardware niveau, 141 00:08:17,800 --> 00:08:22,060 Het meer van een operationeel werd systeemniveau virtualisatie. 142 00:08:22,060 --> 00:08:26,450 >> En dat doen we door elke applicatie in zijn eigen lichtgewicht, 143 00:08:26,450 --> 00:08:31,180 geïsoleerde, uitvoerbare en draagbaar, belangrijker nog, 144 00:08:31,180 --> 00:08:35,049 een manier om daadwerkelijk verpakken alles wat het moet uitvoeren. 145 00:08:35,049 --> 00:08:36,100 Overal kan worden uitgevoerd. 146 00:08:36,100 --> 00:08:42,039 Dus, ongeacht of je draait het op lokale dev milieu, uw productie 147 00:08:42,039 --> 00:08:44,490 milieu, je staging of testen. 148 00:08:44,490 --> 00:08:47,700 Maakt niet uit wat de onderliggende infrastructuur is er, 149 00:08:47,700 --> 00:08:51,410 je had een functioneel werkende app. 150 00:08:51,410 --> 00:08:54,100 151 00:08:54,100 --> 00:09:01,800 >> Dus dat is precies wat eigenlijk containers doen om dit probleem. 152 00:09:01,800 --> 00:09:04,070 Ze pakken door verpakken zodanig 153 00:09:04,070 --> 00:09:09,490 dat het kan garanderen dat het is ingezet succes, ongeacht waar het leeft. 154 00:09:09,490 --> 00:09:12,120 Dus als je gaat zoals Bob het is nog steeds OK. 155 00:09:12,120 --> 00:09:17,860 Als je in de war bent met wat ik zeg, Ik ga worden voortbordurend op dat. 156 00:09:17,860 --> 00:09:20,900 >> Dus hoe werkt Docker zelf past in dit plaatje? 157 00:09:20,900 --> 00:09:26,335 Dus Docker is een open platform eenvoudig, gemakkelijk te benadrukken, 158 00:09:26,335 --> 00:09:30,500 te bouwen schip, draaien, lichtgewicht draagbare zelf 159 00:09:30,500 --> 00:09:33,440 voldoende app containers overal. 160 00:09:33,440 --> 00:09:37,660 Dus als je iets van deze nemen praten, neem dan de volgende. 161 00:09:37,660 --> 00:09:40,980 >> Als u uw app running lokaal en je ontwikkeld 162 00:09:40,980 --> 00:09:45,930 in het gebruik van de Docker platform verwachten met succes worden ingezet. 163 00:09:45,930 --> 00:09:49,380 Het maakt niet uit wat is de onderliggende infrastructuur. 164 00:09:49,380 --> 00:09:53,830 Dus als je een Docker container en het werkt, dan 165 00:09:53,830 --> 00:09:58,130 Zolang er een Docker engine anderzijds side-- 166 00:09:58,130 --> 00:10:02,190 Als uw operatie infrastructuur wordt met behulp van een wolk, of het 167 00:10:02,190 --> 00:10:06,680 AWS is of Google of Microsoft, of een van de publieke clouds, 168 00:10:06,680 --> 00:10:10,010 of uw eigen Cloud, of geopende stack Cloud, of uw lokale omgeving. 169 00:10:10,010 --> 00:10:11,970 >> Als u een motor hardlopen, dat betekent 170 00:10:11,970 --> 00:10:14,537 het gaat zijn er met succes ingezet. 171 00:10:14,537 --> 00:10:16,620 Het zal worden uitgevoerd exact hetzelfde gedrag 172 00:10:16,620 --> 00:10:21,480 zoals u het architected te zijn. 173 00:10:21,480 --> 00:10:26,080 Dus als we kijken at-- Ik ben gaan om te gaan door wat er werkelijk 174 00:10:26,080 --> 00:10:29,160 zijn in de belangrijkste onderdelen van Docker. 175 00:10:29,160 --> 00:10:31,060 >> Dus Engine is de kern van Docker. 176 00:10:31,060 --> 00:10:32,770 Het is van de hersenen. 177 00:10:32,770 --> 00:10:39,360 Het orkestreert de bouw, scheepvaart, en het implementeren en beheren 178 00:10:39,360 --> 00:10:41,570 de houders zelf. 179 00:10:41,570 --> 00:10:45,160 Ik zal graven in wat Engine doet in meer details in een tweede. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 In principe, want dokter werd gebouwd rond de client serverarchitecturen, 182 00:10:51,720 --> 00:10:56,630 dus om te interageren met de Motor je een soort van een client nodig. 183 00:10:56,630 --> 00:11:01,200 >> Beelden zijn de sjablonen in die containers zijn opgebouwd uit. 184 00:11:01,200 --> 00:11:06,800 Zodat beelden zijn in principe alleen statische bestanden. 185 00:11:06,800 --> 00:11:08,740 Templates en containers is eigenlijk wat is 186 00:11:08,740 --> 00:11:12,280 draait op runtime dat bedient uw aanvraag 187 00:11:12,280 --> 00:11:15,150 of iets met de gegevens doet. 188 00:11:15,150 --> 00:11:19,020 >> Register is gericht als een probleem van hoe je eigenlijk distribueren beelden. 189 00:11:19,020 --> 00:11:23,230 Dus als je nodig hebt om een ​​afbeelding delen die u werkte aan uw collega 190 00:11:23,230 --> 00:11:27,220 of om de ops team, je gebruik het met de Register. 191 00:11:27,220 --> 00:11:31,720 U kunt een open source downloaden versie van dat Docker gewerkt 192 00:11:31,720 --> 00:11:33,150 en open source. 193 00:11:33,150 --> 00:11:38,040 >> Of u kunt Docker hulp gebruiken, dat is de cloud-versie 194 00:11:38,040 --> 00:11:40,130 te duwen en te trekken beelden die er zijn. 195 00:11:40,130 --> 00:11:41,160 Dat is een enorm ding. 196 00:11:41,160 --> 00:11:44,520 Want er is een enorme ecosysteem rond Docker en het is 197 00:11:44,520 --> 00:11:48,960 erg zwaar gebruik van de naaf. 198 00:11:48,960 --> 00:11:59,780 >> Dus hier vatten, zo de minimalistische Docker workflow client. 199 00:11:59,780 --> 00:12:04,040 Je interactie met de gastheer, in dit geval is het de Docker daemons. 200 00:12:04,040 --> 00:12:06,490 Het is hetzelfde als Engine. 201 00:12:06,490 --> 00:12:09,690 Je doet commando's als Docker bouwen, trek, run. 202 00:12:09,690 --> 00:12:14,280 En de motor zelf gaat en doet die dingen. 203 00:12:14,280 --> 00:12:18,010 >> Dus ofwel het een wisselwerking met Register om die beelden te trekken 204 00:12:18,010 --> 00:12:19,670 en de lagen van de afbeeldingen. 205 00:12:19,670 --> 00:12:25,030 Of als u wilt implementeren, lopen containers, dood ze, gooi ze naar beneden, 206 00:12:25,030 --> 00:12:25,730 zo. 207 00:12:25,730 --> 00:12:32,190 Dus dit geeft een overzicht van de workflow al deze componenten. 208 00:12:32,190 --> 00:12:34,710 >> Dus als je elke nemen component zelf. 209 00:12:34,710 --> 00:12:37,690 Dus Engine, het is gewoon een daemon. 210 00:12:37,690 --> 00:12:40,800 Het zal soort spelen te steunen het op Linux, omdat het doet 211 00:12:40,800 --> 00:12:44,380 vereisen bepaalde Linux kernel functies. 212 00:12:44,380 --> 00:12:48,820 Maar Windows werkt op hetzelfde te doen. 213 00:12:48,820 --> 00:12:53,720 Het zou moeten worden ondersteund Windows Server 2016. 214 00:12:53,720 --> 00:13:01,500 >> Dus nogmaals, de verantwoordelijkheden van de engine is, of om afbeeldingen op te bouwen. 215 00:13:01,500 --> 00:13:05,340 Trek beelden van de Docker Hub of uw eigen register. 216 00:13:05,340 --> 00:13:07,840 Als je klaar bent met die beelden of u een nieuwe foto te maken, 217 00:13:07,840 --> 00:13:14,770 je kunt duwen die terug naar register te verspreiden naar andere teams. 218 00:13:14,770 --> 00:13:18,300 >> En proberen om het lokaal te bevatten en beheren van de containers levenscyclus 219 00:13:18,300 --> 00:13:19,260 lokaal. 220 00:13:19,260 --> 00:13:22,010 Het is opgebouwd rond HTTP REST API. 221 00:13:22,010 --> 00:13:24,480 Dus technisch kunt u schrijf uw eigen client 222 00:13:24,480 --> 00:13:31,650 zolang het gebruikt HTTP, dat een zeer standaard mechanisme om de motor te praten 223 00:13:31,650 --> 00:13:33,110 en een heleboel andere diensten. 224 00:13:33,110 --> 00:13:35,780 En je kunt zien vanaf hier dat, ongeacht 225 00:13:35,780 --> 00:13:39,010 wat de infrastructuur is, zolang je alle can-- 226 00:13:39,010 --> 00:13:42,170 je nodig hebt is een operationele systeem, Linux bijzonder. 227 00:13:42,170 --> 00:13:45,460 >> En u kunt Docker Engine installeren Op de top van dat en hebben het hardlopen 228 00:13:45,460 --> 00:13:48,970 en het orkestreert, in principe, deze app één, twee, 229 00:13:48,970 --> 00:13:51,530 en drie zijn de werkelijke containers. 230 00:13:51,530 --> 00:13:53,990 Dus dat is Engine. 231 00:13:53,990 --> 00:13:58,040 Zoals ik al eerder vermeld, omdat je nodig hebt om te communiceren met de motor, 232 00:13:58,040 --> 00:13:59,200 er is de klant. 233 00:13:59,200 --> 00:14:03,180 >> Maar eigenlijk als je installeert Docker, dat wordt geleverd met het. 234 00:14:03,180 --> 00:14:06,110 Dus het wordt geïnstalleerd, dus het is een binair. 235 00:14:06,110 --> 00:14:11,830 En je kunt lokale gesprekken doen uw Docker Engine. 236 00:14:11,830 --> 00:14:14,040 Of externe gesprekken naar externe Engines. 237 00:14:14,040 --> 00:14:16,600 238 00:14:16,600 --> 00:14:19,590 Het maakt gebruik van HTTP, zoals Ik eerder noemde. 239 00:14:19,590 --> 00:14:24,200 Er is een GUI client genaamd Kitematic van Docker. 240 00:14:24,200 --> 00:14:26,390 En er zijn zeker een heleboel andere mensen 241 00:14:26,390 --> 00:14:29,740 die bouwen aan een heleboel GUI's die in principe uit te voeren 242 00:14:29,740 --> 00:14:32,980 sommige HTTP roept Engine te praten. 243 00:14:32,980 --> 00:14:35,920 244 00:14:35,920 --> 00:14:39,280 >> Slechts enkele voorbeelden van commando's. 245 00:14:39,280 --> 00:14:44,620 Als u Docker versie doen, het zou tonen u de clientversie als 246 00:14:44,620 --> 00:14:47,030 de server versie. 247 00:14:47,030 --> 00:14:49,500 Als u Docker info doen zal vertellen u alle informatie 248 00:14:49,500 --> 00:14:54,300 hoeveel containers draaien of gecreëerd, hoeveel foto's je hebt, 249 00:14:54,300 --> 00:14:56,530 enzovoort, enzovoort. 250 00:14:56,530 --> 00:15:01,850 >> Hier heb ik, in de naast laatste doos heb ik dokter lopen. 251 00:15:01,850 --> 00:15:04,970 Dus dat is hoe ik ben eigenlijk creëren container. 252 00:15:04,970 --> 00:15:08,960 En ik geef het aan echo Hello World en slapen voor een tweede en wat al niet. 253 00:15:08,960 --> 00:15:12,830 En je kunt zien dat de resultaat. Dus het is aan de gang. 254 00:15:12,830 --> 00:15:16,930 En vergelijkbaar met Linux ps, kunt u zien alle processen en in dit geval, 255 00:15:16,930 --> 00:15:18,540 alle actieve containers. 256 00:15:18,540 --> 00:15:23,430 Deze is terug te verwijzen naar de container ik zojuist. 257 00:15:23,430 --> 00:15:27,560 >> Dus, dit is echt belangrijk omdat, zoals, kan het een beetje verwarrend. 258 00:15:27,560 --> 00:15:33,050 Zodat beelden zijn alleen-lezen de verzameling bestanden, toch? 259 00:15:33,050 --> 00:15:37,000 Ze zijn wat onze container is gebaseerd op. 260 00:15:37,000 --> 00:15:40,340 Maar ze zijn alleen-lezen. 261 00:15:40,340 --> 00:15:44,330 Dus je begint het een basis met. 262 00:15:44,330 --> 00:15:50,180 Het neigt OS-achtige nabootsen, zodat Image whatnot base Ubuntu, CentOS,. 263 00:15:50,180 --> 00:15:53,990 En dan begin je te bouwen op de top van dat bepaalde lagen, die ervoor zorgt dat 264 00:15:53,990 --> 00:16:00,010 image uw kant, het eindresultaat hier. 265 00:16:00,010 --> 00:16:03,220 >> En elk van die lagen moet het een ouder hebben 266 00:16:03,220 --> 00:16:06,690 die het gebruikt als het eigenlijk wil creëren. 267 00:16:06,690 --> 00:16:09,922 Ze zijn onveranderlijk in de zin dat alleen-lezen omdat ze, 268 00:16:09,922 --> 00:16:11,630 je kunt eigenlijk niet wijzigingen aanbrengen aan hen. 269 00:16:11,630 --> 00:16:17,540 U kunt ze gebruiken om het creëren van een container van een beeld, waarbij 270 00:16:17,540 --> 00:16:23,530 roep alle volgende vereiste afbeeldingen eronder. 271 00:16:23,530 --> 00:16:26,400 >> U kunt wijzigingen aanbrengen een andere laag, 272 00:16:26,400 --> 00:16:28,810 het is een herschrijven laag Ik kom praten over in een tweede. 273 00:16:28,810 --> 00:16:31,350 Maar elk van deze lagen zijn nooit veranderd. 274 00:16:31,350 --> 00:16:34,300 275 00:16:34,300 --> 00:16:38,670 Eigenlijk afbeeldingen iets riep Unie File System, UFS. 276 00:16:38,670 --> 00:16:42,280 Er zijn verschillende storage backends die deze technologie gebruiken. 277 00:16:42,280 --> 00:16:49,430 En wat dat betekent is dat het brengt verschillende bestandssystemen 278 00:16:49,430 --> 00:16:51,190 om ze te laten uitzien als een. 279 00:16:51,190 --> 00:16:54,460 >> Dus je kunt eigenlijk uit een toepassing perspectief, 280 00:16:54,460 --> 00:16:59,570 je hebt een top van een uitzicht dat shows al de verschillende bestandssysteem nodig 281 00:16:59,570 --> 00:17:01,120 voor die toepassing te draaien. 282 00:17:01,120 --> 00:17:04,400 Maar ze zijn eigenlijk, op dit, ze zijn eigenlijk in afzonderlijke plaatsen 283 00:17:04,400 --> 00:17:06,410 en wordt gebruikt door andere containers ook. 284 00:17:06,410 --> 00:17:09,569 285 00:17:09,569 --> 00:17:14,410 >> Dus zoals je hier kunt zien in dat als we beginnen met het daemon 286 00:17:14,410 --> 00:17:18,619 afbeelding van een basis, en daarna als we gaan in en voeg [? emacs?] 287 00:17:18,619 --> 00:17:20,720 en dan is dat een andere laag. 288 00:17:20,720 --> 00:17:21,916 En voeg vervolgens Apache. 289 00:17:21,916 --> 00:17:22,790 Dat is een andere laag. 290 00:17:22,790 --> 00:17:25,470 En dan brengen we de container van. 291 00:17:25,470 --> 00:17:29,760 Elk van die beelden, elk van deze lagen, 292 00:17:29,760 --> 00:17:35,530 is verschillend en kan hergebruikt door andere containers. 293 00:17:35,530 --> 00:17:40,070 >> Als je kijkt naar containers zelf, ze zijn een of andere manier, zoals VM-like, 294 00:17:40,070 --> 00:17:41,930 maar tegelijkertijd behandeld. 295 00:17:41,930 --> 00:17:49,180 Dus, ze hebben niet, technisch, de volledige besturingssysteem eronder. 296 00:17:49,180 --> 00:17:52,630 Zij maken gebruik van de ene kernel van het host-besturingssysteem. 297 00:17:52,630 --> 00:17:54,440 En ze bouwen op de top van dat. 298 00:17:54,440 --> 00:17:56,250 Ze bootsen in hoe ze eruit zien. 299 00:17:56,250 --> 00:18:00,710 Ze imiteren hun root-bestandssysteem systeem van het besturingssysteem. 300 00:18:00,710 --> 00:18:04,930 Maar ze eigenlijk niet repliceren. 301 00:18:04,930 --> 00:18:12,080 >> Dus, in plaats van onveranderlijke lagen, de laatste laag, die de houder 302 00:18:12,080 --> 00:18:14,690 zelf, het is een read-write laag. 303 00:18:14,690 --> 00:18:17,350 Dat loopt ook de processen van uw aanvraag. 304 00:18:17,350 --> 00:18:23,530 En afhankelijk van de onderliggende lagen. 305 00:18:23,530 --> 00:18:26,730 Elke container is gemaakt op basis van een afbeelding. 306 00:18:26,730 --> 00:18:32,450 En dat imago kan een single laag of multilayer afbeelding. 307 00:18:32,450 --> 00:18:37,200 >> En ik wil hier op te merken dat Docker gebruikt zwaar, 308 00:18:37,200 --> 00:18:40,370 of is gebaseerd op exemplaar-On-Write mechanisme. 309 00:18:40,370 --> 00:18:44,350 Dus dat, eigenlijk, als je niet het wijzigen van de houder, 310 00:18:44,350 --> 00:18:45,930 het gaat niet om extra ruimte te nemen. 311 00:18:45,930 --> 00:18:49,600 Dus dat is eigenlijk hoe je vatten een Copy-on-Write. 312 00:18:49,600 --> 00:18:53,820 Het zal zeker versnellen het opstarten van de houder. 313 00:18:53,820 --> 00:18:56,300 Want als je niet maken wijzigingen in de houder, 314 00:18:56,300 --> 00:18:57,800 het is gebruik te maken van wat er al is. 315 00:18:57,800 --> 00:19:01,130 316 00:19:01,130 --> 00:19:02,955 >> Dus, hoe het eigenlijk werkt. 317 00:19:02,955 --> 00:19:06,920 318 00:19:06,920 --> 00:19:14,240 Een deel van het is net als, juist nu, het maakt gebruik van ten minste twee belangrijke kernel 319 00:19:14,240 --> 00:19:14,820 functies. 320 00:19:14,820 --> 00:19:17,660 En dat is eigenlijk wat geschapen dat niveau van isolatie 321 00:19:17,660 --> 00:19:19,550 de containers zelf. 322 00:19:19,550 --> 00:19:22,290 Die functies zijn namespaces en cgroups. 323 00:19:22,290 --> 00:19:29,870 Dus namespaces zijn een manier om creëren geïsoleerde middelen, 324 00:19:29,870 --> 00:19:36,290 zodat binnen de houder zelf, alleen kunt u bepaalde middelen zien. 325 00:19:36,290 --> 00:19:40,030 Zoals de netwerkinterface of bepaalde gebruikers of zo. 326 00:19:40,030 --> 00:19:44,160 >> En dat zijn alleen zichtbaar en alleen toegankelijk binnen de container. 327 00:19:44,160 --> 00:19:48,290 CGroup aan de andere kant grenzen hoe je deze middelen te gebruiken. 328 00:19:48,290 --> 00:19:50,950 CPU, geheugen en schijf. 329 00:19:50,950 --> 00:19:53,900 Als je kunt gaan in, I betekenen dat zijn eigenlijk 330 00:19:53,900 --> 00:19:57,410 functies die zijn ontwikkeld by-- ze zijn een deel van de Linux kernel. 331 00:19:57,410 --> 00:20:01,800 Dus werden ze niet opnieuw uitgevonden door of herschapen door Docker. 332 00:20:01,800 --> 00:20:03,770 Docker gebruikt ze. 333 00:20:03,770 --> 00:20:05,560 >> Wat Doctor echt Hier is eigenlijk 334 00:20:05,560 --> 00:20:08,680 georkestreerde creëren namespaces voor elke container 335 00:20:08,680 --> 00:20:13,320 en het creëren van de cgroups zodat het belachelijk makkelijk om containers te creëren 336 00:20:13,320 --> 00:20:14,870 met behulp van deze functies. 337 00:20:14,870 --> 00:20:22,910 Natuurlijk, zoals ik al eerder beschreven, Union Bestandssystemen en Copy-On-Schrijf werkelijk 338 00:20:22,910 --> 00:20:26,810 helpen de snelheid en de schijf gebruik van containers. 339 00:20:26,810 --> 00:20:28,917 >> En als je eenmaal je handen rond Docker, 340 00:20:28,917 --> 00:20:32,000 je gaat om te zien hoe snel het is om eigenlijk spin up containers en traan 341 00:20:32,000 --> 00:20:32,500 ze naar beneden. 342 00:20:32,500 --> 00:20:36,060 343 00:20:36,060 --> 00:20:40,230 Dus, als je je afvragen, hoe kan je eigenlijk beelden op te bouwen? 344 00:20:40,230 --> 00:20:45,940 We bouwen beelden door een proces van het creëren containers en het aanbrengen van wijzigingen, veranderen 345 00:20:45,940 --> 00:20:50,220 hen, en het plegen van hen uitgroeien tot een beeld. 346 00:20:50,220 --> 00:20:54,330 >> Dus het is een kip en ei referentie hier, 347 00:20:54,330 --> 00:20:57,350 omdat alle containers komen van beelden en afbeeldingen komen 348 00:20:57,350 --> 00:21:00,270 uit gepleegd containers, voor het grootste gedeelte. 349 00:21:00,270 --> 00:21:03,830 Er zijn drie opties om beelden te creëren. 350 00:21:03,830 --> 00:21:06,580 Ik ga om te beschrijven de eerste en laatste. 351 00:21:06,580 --> 00:21:10,060 U kunt handmatig gaan en de container lopen 352 00:21:10,060 --> 00:21:14,280 en maak deze wijzigingen, zoals je zou doen op een VM 353 00:21:14,280 --> 00:21:17,060 of elk besturingssysteem, zoals zoals het installeren van nieuwe binaries, 354 00:21:17,060 --> 00:21:19,370 toevoegen bestandssystemen, en wat al niet. 355 00:21:19,370 --> 00:21:22,620 >> En dan moet je verlaten, als U kunt daar zien. 356 00:21:22,620 --> 00:21:24,330 Ik verlaat mijn container. 357 00:21:24,330 --> 00:21:26,050 En toen ik doe Docker plegen. 358 00:21:26,050 --> 00:21:28,390 En ik ben het plegen van dat. 359 00:21:28,390 --> 00:21:31,560 U kunt dat het aantal hier te zien is gewoon een UUID, of de eerste 12 360 00:21:31,560 --> 00:21:32,810 stukjes van de UUID. 361 00:21:32,810 --> 00:21:34,320 Of bytes van de UUID. 362 00:21:34,320 --> 00:21:35,770 En dan ga ik mijn imago noemen het. 363 00:21:35,770 --> 00:21:39,510 Dus nu Docker verzorgt het opnemen van alles wat ik deed 364 00:21:39,510 --> 00:21:42,830 en het creëren van de nieuwe afbeelding op basis van dat. 365 00:21:42,830 --> 00:21:47,080 366 00:21:47,080 --> 00:21:52,560 >> Ik ben niet van plan om te praten over tarball, maar er is een manier kunt u een enkele, 367 00:21:52,560 --> 00:21:58,200 het creëren van een enkele, of een enkele image laag met behulp van tarballs. 368 00:21:58,200 --> 00:22:02,650 Wat ik ga om te praten over deze en wat is het meest gebruikt vandaag de dag, 369 00:22:02,650 --> 00:22:03,270 is Dockerfile. 370 00:22:03,270 --> 00:22:07,260 Die technisch de eerste stap geautomatiseerd door Docker zich. 371 00:22:07,260 --> 00:22:11,920 Dus Dockerfiles zijn dingen die je bent gaan zien in een veel GitHub repos 372 00:22:11,920 --> 00:22:13,150 vandaag. 373 00:22:13,150 --> 00:22:16,420 Het is eigenlijk gewoon een tekstbestand beschrijft 374 00:22:16,420 --> 00:22:19,780 precies hoe om een ​​beeld op te bouwen. 375 00:22:19,780 --> 00:22:25,540 >> En voor elke lijn, het eigenlijk creëert de container, voert die lijn, 376 00:22:25,540 --> 00:22:30,480 begaat die container in een nieuwe afbeelding, en u, in principe, 377 00:22:30,480 --> 00:22:36,160 gebruik het voor alle volgende operaties tot je het laatste beeld. 378 00:22:36,160 --> 00:22:39,260 Die in feite de uiteindelijk doel hier, het einde. 379 00:22:39,260 --> 00:22:42,420 En nadat je exec-- nadat u schrijf uw Dockerfile, die 380 00:22:42,420 --> 00:22:46,750 is puur in tekst, heb je een Docker bouwen en de naam van het beeld. 381 00:22:46,750 --> 00:22:50,000 >> En u wijzen op dat dat waarbij de Dockerfile is. 382 00:22:50,000 --> 00:22:56,570 En u kunt verwachten om mijn afbeelding te zien als een beeld dat je lokaal. 383 00:22:56,570 --> 00:22:59,100 Dus dat is gewoon een visuele voorbeeld van wat er gebeurt. 384 00:22:59,100 --> 00:23:00,820 Je begint het een basis met. 385 00:23:00,820 --> 00:23:05,150 Je loopt die in een container die base beeld zelf het verandert niets. 386 00:23:05,150 --> 00:23:08,310 Maar maken een herschrijven laag op de top van het 387 00:23:08,310 --> 00:23:10,340 waar u de wijzigingen aan te brengen, waar je commit 388 00:23:10,340 --> 00:23:15,050 en je het proces tot herhalen je naar je uiteindelijke afbeelding. 389 00:23:15,050 --> 00:23:20,980 >> En door dit te doen, om de andere build proces kan dezelfde lagen gebruiken 390 00:23:20,980 --> 00:23:23,870 en het principe same-- Docker caches die lagen. 391 00:23:23,870 --> 00:23:30,040 Zodat als ik precies hetzelfde doen proces, maar in plaats van het installeren PHP, 392 00:23:30,040 --> 00:23:31,540 Ik ben het installeren van Python. 393 00:23:31,540 --> 00:23:34,210 Het gaat om Apache en Ubuntu gebruiken. 394 00:23:34,210 --> 00:23:39,570 Zodat op die manier je gebruik te maken van uw harde schijf. 395 00:23:39,570 --> 00:23:42,330 Het gebruik van de cache en de beschikbare beelden daar. 396 00:23:42,330 --> 00:23:45,320 397 00:23:45,320 --> 00:23:48,840 >> Het laatste stuk is Registry, dat Zo kunt u uw foto's te verspreiden. 398 00:23:48,840 --> 00:23:52,710 En, zoals ik al eerder zei, er is een Cloud versie ervan, 399 00:23:52,710 --> 00:23:54,290 dat is Docker Hub. 400 00:23:54,290 --> 00:23:57,550 Je kunt gaan en te verkennen veel, eigenlijk 401 00:23:57,550 --> 00:24:04,900 het publieke SAS product je kunt nog steeds een eigen beelden, 402 00:24:04,900 --> 00:24:06,590 maar er is veel publieke beelden. 403 00:24:06,590 --> 00:24:10,580 Het is eigenlijk onbeperkt, kunt u duwen onbeperkt publiek beelden daar. 404 00:24:10,580 --> 00:24:13,730 En dit is hoe je kunt samen met uw team. 405 00:24:13,730 --> 00:24:17,159 >> Je kunt ze gewoon wijzen op je repo en ze kunnen het of uw afbeelding te downloaden 406 00:24:17,159 --> 00:24:18,200 en ze kunnen downloaden. 407 00:24:18,200 --> 00:24:21,140 408 00:24:21,140 --> 00:24:24,990 Dus genoeg met het gesprek. 409 00:24:24,990 --> 00:24:29,110 Die wil een aantal demo's echt snel zien? 410 00:24:29,110 --> 00:24:31,330 Prima. 411 00:24:31,330 --> 00:24:34,050 Dus hier heb ik. 412 00:24:34,050 --> 00:24:37,480 Ca jullie zien mijn scherm? 413 00:24:37,480 --> 00:24:38,390 Prima. 414 00:24:38,390 --> 00:24:45,810 >> Ik heb zo Docker loopt hier, dus ik kan it's-- Dit controleren is de versie 415 00:24:45,810 --> 00:24:47,510 van Docker die draait. 416 00:24:47,510 --> 00:24:49,320 Kan doen Docker info. 417 00:24:49,320 --> 00:24:55,730 Controleer alle informatie over hoeveel images ze, enzovoort, enzovoort. 418 00:24:55,730 --> 00:24:58,890 Docker PS, er is niets lopen. 419 00:24:58,890 --> 00:25:00,570 Aaneengeschakelde die. 420 00:25:00,570 --> 00:25:06,370 >> Dus het eerste wat ik wil doen is laten zien hoe kun je gemakkelijk een container lopen. 421 00:25:06,370 --> 00:25:09,350 Zodat de schoonheid over Arts lopen, als het werkelijk 422 00:25:09,350 --> 00:25:14,700 geeft een beeld niet lokaal vinden, standaard is praat met Doctor Hub 423 00:25:14,700 --> 00:25:17,240 en probeert om het daar te vinden en downloadt het voor je. 424 00:25:17,240 --> 00:25:22,820 Omvat dus een Docker pull commando, natuurlijk. 425 00:25:22,820 --> 00:25:26,130 >> Dus als ik een Docker run, hello-wereld te doen. 426 00:25:26,130 --> 00:25:28,890 427 00:25:28,890 --> 00:25:31,200 Dus, eerst gaat het om te proberen om het te vinden. 428 00:25:31,200 --> 00:25:36,140 Anders, zoals je hier kunt zien, kon het niet vinden lokaal. 429 00:25:36,140 --> 00:25:41,830 Nu is het net trok twee lagen dat maakte dat imago en ik liep. 430 00:25:41,830 --> 00:25:45,440 De hallo-wereld is gewoon eigenlijk uitgangen, wat je hebt gedaan. 431 00:25:45,440 --> 00:25:47,680 Dus dit is de makkelijkste, men het gemakkelijkst voorbeelden. 432 00:25:47,680 --> 00:25:53,840 Dus eigenlijk heb ik net liep en beëindigde de container echt snel. 433 00:25:53,840 --> 00:25:59,500 >> Als ik wil run-- en door de manier, als Ik wil de tijd dat, net zo u weet, 434 00:25:59,500 --> 00:26:03,572 dit is hoe lang het duurt om eigenlijk draaien en indammen. 435 00:26:03,572 --> 00:26:05,030 We meten in milliseconden. 436 00:26:05,030 --> 00:26:10,600 Zodat je kunt zien hoeveel dit kan daadwerkelijk helpen u niet alleen bij het testen, 437 00:26:10,600 --> 00:26:13,200 maar ook nog implementatie. 438 00:26:13,200 --> 00:26:17,221 Dus dat is een korte opmerking over dat. 439 00:26:17,221 --> 00:26:18,970 Het volgende wat ik ben gaan doen is eigenlijk 440 00:26:18,970 --> 00:26:21,930 uitvoeren van een beeld dat ik heb al voorbereid. 441 00:26:21,930 --> 00:26:24,460 Dus koppelvenster run. 442 00:26:24,460 --> 00:26:27,240 -d is gewoon een vlag te vertellen om te draaien op de achtergrond. 443 00:26:27,240 --> 00:26:30,290 En -p wijst bepaalde poorten. 444 00:26:30,290 --> 00:26:32,670 Omdat standaard, de containers zijn geïsoleerde, 445 00:26:32,670 --> 00:26:36,080 dus je moet precies aangeven hoe het kan hen openen. 446 00:26:36,080 --> 00:26:41,150 En in dit geval, ik zeg Docker om een ​​willekeurige poort kaart op de host 447 00:26:41,150 --> 00:26:44,560 naar een gespecificeerde haven binnen de container zelf. 448 00:26:44,560 --> 00:26:47,130 449 00:26:47,130 --> 00:26:56,460 En dat is eigenlijk waar de image-- hopelijk is dit het juiste is. 450 00:26:56,460 --> 00:27:01,780 >> Dus het doet parallelle downloads per van die lagen zoals je hier kunt zien. 451 00:27:01,780 --> 00:27:06,949 Dat zijn de lagen maken end beeld, dat ik gebouwd. 452 00:27:06,949 --> 00:27:08,115 Het gaat om een ​​tweede te nemen. 453 00:27:08,115 --> 00:27:11,290 454 00:27:11,290 --> 00:27:12,370 En voila. 455 00:27:12,370 --> 00:27:16,590 >> Dus nu als ik een havenarbeider ps, zou ik zie iets dat draait. 456 00:27:16,590 --> 00:27:22,250 Ik moet de ID te zien, het beeld dat dit was gebaseerd off, 457 00:27:22,250 --> 00:27:23,880 en de opdracht die is uitgevoerd. 458 00:27:23,880 --> 00:27:28,720 En hoe de toegang tot het eigenlijk je naar die poort. 459 00:27:28,720 --> 00:27:33,240 Dus ik ga om te gaan to-- deze is Ik stel het op AWS. 460 00:27:33,240 --> 00:27:37,150 Ik ga naar 32.769. 461 00:27:37,150 --> 00:27:37,650 Oeps. 462 00:27:37,650 --> 00:27:40,495 463 00:27:40,495 --> 00:27:41,120 En hier gaan we. 464 00:27:41,120 --> 00:27:44,550 >> Dus dit is eigenlijk alleen een webservice die laat zien 465 00:27:44,550 --> 00:27:46,240 welke container het wordt geserveerd vanaf. 466 00:27:46,240 --> 00:27:50,450 Zodat u kunt zien dat het is vanaf container a9f. 467 00:27:50,450 --> 00:27:52,850 En hier is het naam van de houder. 468 00:27:52,850 --> 00:27:56,550 Dus jullie zien hoe snel het was eigenlijk niet alleen te trekken, maar ook 469 00:27:56,550 --> 00:28:00,440 deze container zetten. 470 00:28:00,440 --> 00:28:05,070 >> Nu is de volgende stap het kijk in Dockerfiles 471 00:28:05,070 --> 00:28:09,430 en hoe kunnen we eigenlijk bouwen van nieuwe beelden. 472 00:28:09,430 --> 00:28:15,250 Ik ga gewoon te gaan halen kloon, een monster Dockerfile op basis van de eerdere 473 00:28:15,250 --> 00:28:17,755 diagram, de een om Apache en PHP. 474 00:28:17,755 --> 00:28:26,740 475 00:28:26,740 --> 00:28:28,140 Hopelijk Ik herinner me mijn repo. 476 00:28:28,140 --> 00:28:36,410 477 00:28:36,410 --> 00:28:38,750 >> Dus heb ik mijn repository nu. 478 00:28:38,750 --> 00:28:43,080 En je gaat zien dit veel eigenlijk. 479 00:28:43,080 --> 00:28:45,110 Ik heb geen boom te installeren. 480 00:28:45,110 --> 00:28:48,700 >> Dus eigenlijk je gaat om te zien hoe uw broncode documentatie rond 481 00:28:48,700 --> 00:28:51,240 , en dan een Dockerfile op hoe je nu eigenlijk verpakken het. 482 00:28:51,240 --> 00:28:57,970 Dus het is slechts een voorbeeld PHP die echo hallo CS50. 483 00:28:57,970 --> 00:29:01,550 >> Dus als ik wil om het uit te voeren, Ik zal havenarbeider build doen. 484 00:29:01,550 --> 00:29:03,370 Ik moet het eerst bouwen. 485 00:29:03,370 --> 00:29:12,420 Ik ga om het te noemen demo_cs50. 486 00:29:12,420 --> 00:29:16,470 En je een tag moet het ook. 487 00:29:16,470 --> 00:29:19,802 Dus laten we noemen het v1 stip. 488 00:29:19,802 --> 00:29:21,760 Dus zoals ik al eerder beschreven, wat ik vandaag doe 489 00:29:21,760 --> 00:29:26,840 is Ik zeg Docker om gebruik te gaan dat-- eigenlijk, sorry, mijn slecht. 490 00:29:26,840 --> 00:29:29,450 491 00:29:29,450 --> 00:29:32,500 We hebben niet een kijkje te nemen het Dockerfile zelf. 492 00:29:32,500 --> 00:29:39,020 Dus de enige dingen zijn hier index.php evenals de readme-bestand 493 00:29:39,020 --> 00:29:39,810 en een Dockerfile. 494 00:29:39,810 --> 00:29:44,600 >> Dus als je een kijkje nemen op de Dockerfile, dus het is 495 00:29:44,600 --> 00:29:47,150 vergelijkbaar met wat Ik eerder beschreef. 496 00:29:47,150 --> 00:29:51,220 Het is gewoon een stelletje stappen die Docker uitvoert 497 00:29:51,220 --> 00:29:56,330 door het creëren en het neerhalen van containers en [? ze te tellen?] in een beeld. 498 00:29:56,330 --> 00:29:59,570 >> En eigenlijk kun je see-- [onverstaanbaar] Het hier-- 499 00:29:59,570 --> 00:30:04,340 maar dit is van de lokale repo. 500 00:30:04,340 --> 00:30:06,410 Het gaat om te gaan en pak index.php. 501 00:30:06,410 --> 00:30:10,970 Dus dat is de enige broncode die zijn eigenlijk een deel van uw aanvraag. 502 00:30:10,970 --> 00:30:16,800 Dit alles is in principe besturingssysteem sanitair, 503 00:30:16,800 --> 00:30:21,460 verkrijgen van de juiste pakketten en Apache en PHP, en wat al niet. 504 00:30:21,460 --> 00:30:26,950 Maar dit is eigenlijk het nemen van index.php en het plegen van het in de container, 505 00:30:26,950 --> 00:30:28,210 in het beeld. 506 00:30:28,210 --> 00:30:33,120 >> Dus als u doorgaat en voer de commando door het doen van de volgende, 507 00:30:33,120 --> 00:30:36,155 het is going-- eigenlijk, dit misschien een beetje te nemen. 508 00:30:36,155 --> 00:30:40,870 509 00:30:40,870 --> 00:30:42,455 Hopelijk is het niet te lang duren. 510 00:30:42,455 --> 00:30:45,129 511 00:30:45,129 --> 00:30:46,170 Zodat u de stappen zien. 512 00:30:46,170 --> 00:30:49,320 En ik moedig u te gaan terug naar huis vandaag en probeer het. 513 00:30:49,320 --> 00:30:51,280 En Mano beschrijft hoe precies je dat doet. 514 00:30:51,280 --> 00:30:57,810 Maar het is echt geweldig om precies te zien wat er gebeurt achter de schermen. 515 00:30:57,810 --> 00:31:02,420 Maar het is belachelijk makkelijk te bouwen afbeeldingen en implementeren ze met behulp van Docker. 516 00:31:02,420 --> 00:31:12,170 517 00:31:12,170 --> 00:31:14,050 >> Het nemen van een beetje langer dan ik had verwacht. 518 00:31:14,050 --> 00:31:29,085 519 00:31:29,085 --> 00:31:32,690 >> Laten we eens kijken wat er gebeurt als u-- koelen. 520 00:31:32,690 --> 00:31:36,260 Dus zoals je kunt zien, elk van die stappen vertegenwoordigen lijnen in de Dockerfile. 521 00:31:36,260 --> 00:31:42,570 En het laat zien dat het hier succes bouwde dit beeld. 522 00:31:42,570 --> 00:31:46,480 >> Dus als ik dat doe dokwerker beelden, ga ik bekijk alle foto's die ik heb lokaal. 523 00:31:46,480 --> 00:31:52,160 En een van hen wordt belde mijn gebruikersnaam en de naam van de afbeelding, 524 00:31:52,160 --> 00:31:56,050 en de tag representing-- vooral het is een versie tag. 525 00:31:56,050 --> 00:31:58,040 >> Dus nu als ik wil lopen het, ik doe havenarbeider run. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 En ik wil gewoon een -d -P doen. Do v1. 528 00:32:14,960 --> 00:32:18,500 Dus ik kan nu zien dat ik twee containers loopt, degene die ik net 529 00:32:18,500 --> 00:32:21,230 gemaakt en de hello Havenarbeider die ik kreeg laatst. 530 00:32:21,230 --> 00:32:24,320 >> En je kunt hier zien dat het toegewezen het een andere poort. 531 00:32:24,320 --> 00:32:30,710 Dus als ik naar het zelfde IP maar toewijzen een andere port-- hopelijk heb ik niet. 532 00:32:30,710 --> 00:32:33,060 Dus nu is dit applicatie dat ik net ingezet. 533 00:32:33,060 --> 00:32:35,980 534 00:32:35,980 --> 00:32:43,900 >> Als ik wil om veranderingen te maken, I kan snel de broncode bewerken 535 00:32:43,900 --> 00:32:49,050 en doe het volgende. 536 00:32:49,050 --> 00:32:55,170 Laten we gedag Harvard. 537 00:32:55,170 --> 00:32:57,989 Dus nu wat er gebeurt te gebeuren is dat ik ben 538 00:32:57,989 --> 00:32:59,905 ga het taggen met een verschillende version-- oh, 539 00:32:59,905 --> 00:33:03,080 dit niet guy-- te taggen een andere versie. 540 00:33:03,080 --> 00:33:05,735 En je gaat see-- doen jullie verwacht 541 00:33:05,735 --> 00:33:11,020 aan dezelfde hoeveelheid tijd om het bouwen van een tweede tijd of niet? 542 00:33:11,020 --> 00:33:14,470 Oké, en iedereen weet waarom? 543 00:33:14,470 --> 00:33:15,020 Spreken. 544 00:33:15,020 --> 00:33:16,350 >> PUBLIEK: [onverstaanbaar] 545 00:33:16,350 --> 00:33:19,830 >> NICOLA Kabar: Het is eigenlijk dat we wijzigen alleen één van de latere stappen. 546 00:33:19,830 --> 00:33:23,110 En daarom gaat het gebruiken cache en gebruik elk van deze lagen. 547 00:33:23,110 --> 00:33:27,080 En dat is echt een deel van de killer features van Docker 548 00:33:27,080 --> 00:33:32,930 is hoe het eigenlijk gebruik en hergebruik overnemen 549 00:33:32,930 --> 00:33:36,950 schijf voor dezelfde exacte stukjes informatie. 550 00:33:36,950 --> 00:33:40,700 >> Dus als we hetzelfde doen, het duurde slechts een paar seconden. 551 00:33:40,700 --> 00:33:48,860 Willen we dus nu redeploy-- Ik heb drie containers. 552 00:33:48,860 --> 00:33:56,160 Maar deze wordt geserveerd op the-- zeven één. 553 00:33:56,160 --> 00:33:58,860 Dus nu is het de derde container. 554 00:33:58,860 --> 00:34:02,580 Iedereen begrijpt wat ik deed hier gewoon? 555 00:34:02,580 --> 00:34:06,320 >> Dus nu als u dit wilt delen container echt snel met je vrienden, 556 00:34:06,320 --> 00:34:14,840 je kan het gewoon doen dokwerker druk op de Naam van de container, hopelijk. 557 00:34:14,840 --> 00:34:20,130 Dus nu het gaat om het duwen to-- Ik ben niet hier ondertekend. 558 00:34:20,130 --> 00:34:33,511 559 00:34:33,511 --> 00:34:34,219 Sorry daarvoor. 560 00:34:34,219 --> 00:34:39,219 Maar ik ben niet van plan op te lossen dit nu. 561 00:34:39,219 --> 00:34:42,780 Maar in feite dat één opdracht is gewoon omhoog duwen. 562 00:34:42,780 --> 00:34:45,670 En je zult in staat zijn om zie het als je naar Docker Hub 563 00:34:45,670 --> 00:34:48,587 En u inlogt, je bent zal in staat zijn om het te zien. 564 00:34:48,587 --> 00:34:50,420 En dan kun je gewoon wijzen wie gaat 565 00:34:50,420 --> 00:34:52,750 dat beeld gebruiken om te gaan en trek. 566 00:34:52,750 --> 00:34:55,460 En ze kunnen gebruiken. 567 00:34:55,460 --> 00:34:57,760 >> Met dat, hopelijk Ik soort aangetoond 568 00:34:57,760 --> 00:35:01,230 hoe gemakkelijk het is om te werken met Docker. 569 00:35:01,230 --> 00:35:06,610 En ik ga gewoon geef het terug naar Mano. 570 00:35:06,610 --> 00:35:11,760 En hij gaat nemen van hier. 571 00:35:11,760 --> 00:35:13,990 >> MANO MERKEN: Oke dank, dank Nico. 572 00:35:13,990 --> 00:35:18,700 573 00:35:18,700 --> 00:35:20,614 Dus? 574 00:35:20,614 --> 00:35:24,410 Dus een van de dingen die ik wilde doen is samen te stellen 575 00:35:24,410 --> 00:35:28,820 waarom is dit een important-- waarom Docker en waarom 576 00:35:28,820 --> 00:35:33,000 containers dergelijke belangrijke nieuwe ontwikkeling, 577 00:35:33,000 --> 00:35:36,890 een nieuwe manier van software daadwerkelijk te doen. 578 00:35:36,890 --> 00:35:41,300 >> En voordat ik dat doe, ik ga slechts introduceren een paar statistieken. 579 00:35:41,300 --> 00:35:42,790 Ik ben niet van plan om al deze te lezen. 580 00:35:42,790 --> 00:35:52,540 Maar dit toont u veel over hoe populair is in de gemeenschap. 581 00:35:52,540 --> 00:35:56,310 De kern Docker technologieën zijn open source. 582 00:35:56,310 --> 00:36:03,560 Dus dat is Docker Motor, Compose, Swarm, een heleboel andere dingen 583 00:36:03,560 --> 00:36:05,210 is allemaal open source. 584 00:36:05,210 --> 00:36:10,590 En we hebben, wat ik deed zeggen, 1300 medewerkers. 585 00:36:10,590 --> 00:36:15,630 Je bent nu zien, als je kijkt naar de aantal vacatures, de laatste keer 586 00:36:15,630 --> 00:36:19,640 we keken, was het ongeveer 43.000 baan openingen specifiek vermelden 587 00:36:19,640 --> 00:36:22,230 vertrouwdheid met Docker. 588 00:36:22,230 --> 00:36:26,450 Honderden miljoenen beelden hebben gedownload van Docker Hub. 589 00:36:26,450 --> 00:36:31,870 En, nou ja, veel meer grote statistieken. 590 00:36:31,870 --> 00:36:34,770 >> Voor degenen die nieuwsgierig zijn, is het werd oorspronkelijk geschreven in Python 591 00:36:34,770 --> 00:36:37,730 en vervolgens herschreven in Go. 592 00:36:37,730 --> 00:36:40,320 En het is nog maar Open source-- het is slechts 593 00:36:40,320 --> 00:36:44,950 vrijgegeven ongeveer 2 en 1/2 jaar, hetgeen betekent dat bij 2 en 1/2 jaar, 594 00:36:44,950 --> 00:36:48,020 We hebben een enorme hoeveelheid gezien groei en betekenis 595 00:36:48,020 --> 00:36:50,190 van deze in de gemeenschap. 596 00:36:50,190 --> 00:36:52,400 En dus ik wil praten een beetje over waarom. 597 00:36:52,400 --> 00:36:54,940 598 00:36:54,940 --> 00:36:59,880 >> Dus gewoon om een ​​aantal van herhalen Nico's belangrijke punten, Docker is snel. 599 00:36:59,880 --> 00:37:00,630 Het is draagbaar. 600 00:37:00,630 --> 00:37:02,500 Het is reproduceerbaar. 601 00:37:02,500 --> 00:37:06,130 En het wordt een standaard omgeving. 602 00:37:06,130 --> 00:37:13,370 >> En what-- dit is mijn crappy roeien monolieten slide-- wat 603 00:37:13,370 --> 00:37:17,990 het is het helpen van mensen te doen, die veel van de software-industrie 604 00:37:17,990 --> 00:37:21,400 begon te doen in de vroege jaren 2000, beweegt 605 00:37:21,400 --> 00:37:24,200 Uit deze monolithische enkele toepassingen 606 00:37:24,200 --> 00:37:28,590 waar elke afhankelijkheid moest getest voordat het gehele app had 607 00:37:28,590 --> 00:37:31,280 worden ingezet, waarbij zou een website betekenen 608 00:37:31,280 --> 00:37:36,240 werd slechts een keer ingezet elke drie maanden of meer, 609 00:37:36,240 --> 00:37:42,650 een veel dienst oriented architecture 610 00:37:42,650 --> 00:37:46,090 of componenten gebaseerde ander type van applicatie-architectuur. 611 00:37:46,090 --> 00:37:48,610 En zo mogelijk deze soort architecturen 612 00:37:48,610 --> 00:37:52,250 die profiteren van Docker te draaien in deze drie 613 00:37:52,250 --> 00:37:58,450 belangrijkste gebieden van ontwikkeling, die is de ontwikkeling van het schrijven van uw eigenlijke code, 614 00:37:58,450 --> 00:38:00,140 het testen van uw code, en het inzetten van het. 615 00:38:00,140 --> 00:38:03,000 616 00:38:03,000 --> 00:38:05,420 >> Dus waarom is dit belangrijk? 617 00:38:05,420 --> 00:38:09,920 Als je a-- Laat me een voorbeeld geven. 618 00:38:09,920 --> 00:38:13,600 Als u een website apparaat ontwikkelaar, je bent 619 00:38:13,600 --> 00:38:19,020 het ontwikkelen van een website die is gebaseerd op de database die David geproduceerd hier. 620 00:38:19,020 --> 00:38:20,490 Sorry David, ik u roepen. 621 00:38:20,490 --> 00:38:22,984 622 00:38:22,984 --> 00:38:24,900 Als je wilde implementeren de hele zaak, zou je 623 00:38:24,900 --> 00:38:28,870 wachten onder een traditionele monolithische software-ontwikkeling 624 00:38:28,870 --> 00:38:32,710 milieu, zou je moeten wachten totdat hij werd gedaan met de database 625 00:38:32,710 --> 00:38:36,030 voordat u daadwerkelijk kon maken eventuele wijzigingen in uw website. 626 00:38:36,030 --> 00:38:40,900 Je zou hebben om het te herschikken gehele applicatie te doen. 627 00:38:40,900 --> 00:38:45,490 >> En wat Docker helpt je doet is elke persoon werk over verschillende onderdelen 628 00:38:45,490 --> 00:38:52,990 en ze werken als ze gaan, alleen het maken van zorgen dat de interfaces blijven hetzelfde. 629 00:38:52,990 --> 00:38:56,350 Dus wat zij heeft gedaan is het is verschoven mensen 630 00:38:56,350 --> 00:39:03,950 van het doen van deze enorme monolithische architected software die 631 00:39:03,950 --> 00:39:07,610 ingezet maandelijks een continue integratie en de continue ontwikkeling 632 00:39:07,610 --> 00:39:08,490 milieu. 633 00:39:08,490 --> 00:39:12,580 >> Nu is dit niet uniek voor Docker, maar Docker maakt het zo veel makkelijker, 634 00:39:12,580 --> 00:39:16,620 wat betekent dat je in principe bent voortdurend de inzet. 635 00:39:16,620 --> 00:39:20,690 We praten met bedrijven die de inzet van publiek gerichte toepassingen 636 00:39:20,690 --> 00:39:30,180 duizenden keren per dag omdat ze zien de waarde in alleen het maken van 637 00:39:30,180 --> 00:39:33,740 kleine veranderingen, en zolang als het door de proeven uitgevoerd, 638 00:39:33,740 --> 00:39:35,900 laten gaan in productie. 639 00:39:35,900 --> 00:39:41,890 Nico was altijd me vertellen eerder dat in veel omgevingen, 640 00:39:41,890 --> 00:39:46,580 de standaard levenscyclus van een container wordt gemeten in seconden, 641 00:39:46,580 --> 00:39:50,460 terwijl een virtuele machine kan worden gemeten in maanden. 642 00:39:50,460 --> 00:39:54,590 643 00:39:54,590 --> 00:39:58,690 >> Ik wilde een lichte nemen draai hier omdat ik ben 644 00:39:58,690 --> 00:40:00,170 bij een onderwijsinstelling. 645 00:40:00,170 --> 00:40:06,670 Ik wilde een voorbeeld van hoe te geven dit werkt in een onderwijsonderzoek 646 00:40:06,670 --> 00:40:07,670 situatie. 647 00:40:07,670 --> 00:40:10,930 Dus er is een organisatie genaamd bioboxen. 648 00:40:10,930 --> 00:40:15,450 Bioboxen doet DNA- analyse voor onderzoekers. 649 00:40:15,450 --> 00:40:22,029 >> Nu, wat ze vonden was dat wanneer een researcher-- en dit is niet 650 00:40:22,029 --> 00:40:24,070 de schuld van een bepaalde researcher-- maar wanneer 651 00:40:24,070 --> 00:40:31,240 onderzoeker ingezet een algoritme te analyseren, 652 00:40:31,240 --> 00:40:36,670 Op een bepaalde manier een DNA monster zouden ze de software te schrijven, 653 00:40:36,670 --> 00:40:39,980 publiceren die, misschien aan GitHub of ergens anders, 654 00:40:39,980 --> 00:40:42,680 en daarna werden ze gedaan. 655 00:40:42,680 --> 00:40:47,440 >> Wel, het probleem was dat het niet noodzakelijkerwijs reproduceerbaar. 656 00:40:47,440 --> 00:40:51,610 Want om begrijpen van de software, 657 00:40:51,610 --> 00:40:54,830 ze zouden worden opgezet voor de exacte ontwikkelomgeving 658 00:40:54,830 --> 00:41:00,460 dat onderzoeker gebruikt, meestal hun laptop of een server, of een data- 659 00:41:00,460 --> 00:41:04,280 centreren, dat ze gebruikten. 660 00:41:04,280 --> 00:41:11,530 En dus was het erg moeilijk onderzoeksresultaten wanneer reproduceren 661 00:41:11,530 --> 00:41:16,910 het analyseren van DNA-monsters om te kijken naar zaken als incidence-- 662 00:41:16,910 --> 00:41:23,830 vergelijken incidentie van hartaanvallen op basis van bepaalde genen aanwezig, 663 00:41:23,830 --> 00:41:28,900 bijvoorbeeld of kankerrisico of een van de andere soort dingen. 664 00:41:28,900 --> 00:41:33,900 >> Dus wat ze deden in plaats was ze begonnen met het maken van containers. 665 00:41:33,900 --> 00:41:39,380 En je kunt naar bioboxes.org, het is een geweldige organisatie. 666 00:41:39,380 --> 00:41:43,900 En wat ze doen is ze produceren containers op basis van onderzoek. 667 00:41:43,900 --> 00:41:46,840 En dan wanneer iemand stuurt in hun steekproef, kunnen ze het uit te voeren. 668 00:41:46,840 --> 00:41:52,770 En het heeft alle milieu nodig dat algoritme werking 669 00:41:52,770 --> 00:41:55,370 en produceren van de resultaten. 670 00:41:55,370 --> 00:41:58,250 En ze vinden dat ze veel waarschijnlijker en nog 671 00:41:58,250 --> 00:42:01,300 sneller kunnen resultaten om mensen terug te keren. 672 00:42:01,300 --> 00:42:06,860 >> En in feite, wat mensen doen draaien hun eigen analyse van DNA, 673 00:42:06,860 --> 00:42:11,220 verzenden die op bioboxen en dan Biobox duurt slechts de gegevens, 674 00:42:11,220 --> 00:42:15,350 beheert tegen het ras verschillende containers 675 00:42:15,350 --> 00:42:19,030 tot verschillende resultaten zien op basis van verschillende onderzoeken. 676 00:42:19,030 --> 00:42:21,860 Dus het is een zeer krachtige manier waarop onderzoekers 677 00:42:21,860 --> 00:42:28,070 kan een enkele instantie die het mogelijk maakt te maken andere mensen om te proberen en te reproduceren 678 00:42:28,070 --> 00:42:28,650 de resultaten. 679 00:42:28,650 --> 00:42:31,710 680 00:42:31,710 --> 00:42:34,360 >> Dus hoe ga je aan de slag? 681 00:42:34,360 --> 00:42:37,950 682 00:42:37,950 --> 00:42:39,800 We zijn goed ondersteund op Linux. 683 00:42:39,800 --> 00:42:43,070 Dus als je wilt installeren iets op Linux, 684 00:42:43,070 --> 00:42:45,620 u uw standaard gebruiken package manager te installeren. 685 00:42:45,620 --> 00:42:47,600 Als u een Debian, het is apt get. 686 00:42:47,600 --> 00:42:50,500 CentOS is yum. 687 00:42:50,500 --> 00:42:53,500 Fedora Red Hat is rpm-- Ik weet het niet meer. 688 00:42:53,500 --> 00:42:56,070 Hoe dan ook, het is er allemaal. 689 00:42:56,070 --> 00:42:59,610 We ondersteunen een grote verscheidenheid Linux-distributies. 690 00:42:59,610 --> 00:43:01,150 U kunt controleren deze out. 691 00:43:01,150 --> 00:43:06,370 >> We hebben ook opties, zodat u kan draaien op Mac of Windows. 692 00:43:06,370 --> 00:43:10,670 Nu Nico eerder vermeld dat het werd alleen ondersteund op Linux. 693 00:43:10,670 --> 00:43:18,180 Dat is waar, omdat het heeft een Linux kernel. 694 00:43:18,180 --> 00:43:20,540 Maar, kun je draaien in een virtuele machine. 695 00:43:20,540 --> 00:43:25,290 En wat de Docker Toolbox doet, die u kunt downloaden, 696 00:43:25,290 --> 00:43:27,610 het geeft je dat de virtuele machine. 697 00:43:27,610 --> 00:43:37,260 >> Dus gewoon een snelle 48 tweede, denk ik, te downloaden. 698 00:43:37,260 --> 00:43:40,670 Je zoekt gewoon op Docker Toolbox, downloaden naar de Mac 699 00:43:40,670 --> 00:43:43,910 en dit deel is Natuurlijk versneld omdat die 700 00:43:43,910 --> 00:43:47,620 wil een download signaal kijken? 701 00:43:47,620 --> 00:43:54,190 Standaard Mac-installatie, en dan ben je 702 00:43:54,190 --> 00:43:59,795 gaan zien Jerome zette in zijn wachtwoord. 703 00:43:59,795 --> 00:44:00,670 Dat is heel spannend. 704 00:44:00,670 --> 00:44:03,510 705 00:44:03,510 --> 00:44:06,230 En dan is het installeert een heleboel gereedschappen. 706 00:44:06,230 --> 00:44:10,010 En in het bijzonder het zal Installeer een opdrachtregel. 707 00:44:10,010 --> 00:44:14,220 En dan je kon zien Jerome testen van zijn beelden. 708 00:44:14,220 --> 00:44:19,050 709 00:44:19,050 --> 00:44:22,640 >> En vervolgens op basis van deze, u kunt dat YouTube te zien 710 00:44:22,640 --> 00:44:27,420 denkt dat Nico is geïnteresseerd in Star Wars, The Jimmy Kimmel show 711 00:44:27,420 --> 00:44:29,020 en ik denk dat Ellen. 712 00:44:29,020 --> 00:44:34,130 Ik denk dat de laatste is een clip van een Ellen Show. 713 00:44:34,130 --> 00:44:37,760 >> Dus Docker Toolbox komt wel met meer dan alleen Docker Machine. 714 00:44:37,760 --> 00:44:39,840 Dus Docker Machine is het ding dat helpt 715 00:44:39,840 --> 00:44:43,710 u het opzetten van een virtuele machine op uw Windows- 716 00:44:43,710 --> 00:44:52,080 of Mac-- uw Windows doos of je Mac box-- en helpt u provisioning doen, 717 00:44:52,080 --> 00:44:54,040 >> Maar het komt ook met Swarm en Compose, 718 00:44:54,040 --> 00:45:00,840 die zijn ontworpen om u te helpen grote doen grootschalige implementaties van uw aanvraag. 719 00:45:00,840 --> 00:45:04,000 Dus als je wilt beheren clusters knooppunten, 720 00:45:04,000 --> 00:45:08,450 clusters van containers, opstellen en Zwerm zijn de manier om te gaan over. 721 00:45:08,450 --> 00:45:11,430 >> En natuurlijk komt het met Docker Motor en Kitematic, 722 00:45:11,430 --> 00:45:13,250 dat is deze desktop GUI. 723 00:45:13,250 --> 00:45:17,060 Ik wil ook vermelden Docker Registry, die niet is opgenomen in de Toolbox, 724 00:45:17,060 --> 00:45:23,150 maar het is een manier voor u om uw eigen lopen registers van Docker afbeeldingen zoals Docker 725 00:45:23,150 --> 00:45:28,970 Hub, maar u kunt ook gewoon gebruik Docker Hub als een manier om dat te doen. 726 00:45:28,970 --> 00:45:32,955 >> En, plot twist, je ziet Het lopen in een container. 727 00:45:32,955 --> 00:45:34,830 En dat is hoe we de distributie van onze glijbanen. 728 00:45:34,830 --> 00:45:38,610 Deze hele presentatie eigenlijk een HTML dia dek. 729 00:45:38,610 --> 00:45:43,170 En het draait in een container, die je kunt krijgen by-- 730 00:45:43,170 --> 00:45:45,596 >> NICOLA Kabar: Ja, dus het is running full time op mijn Max. 731 00:45:45,596 --> 00:45:47,540 En ik ben de presentatie van. 732 00:45:47,540 --> 00:45:50,910 En je gewoon doen Docker na u Toolbox installeren. 733 00:45:50,910 --> 00:45:57,340 Je kunt gewoon een run dokwerker en krijgen, en het gebruik van de dia's. 734 00:45:57,340 --> 00:45:58,830 >> MANO markeert: En dat is het. 735 00:45:58,830 --> 00:46:02,160 Dus danken wij u allen voor uw komst. 736 00:46:02,160 --> 00:46:03,990 En we zijn blij om vragen te beantwoorden. 737 00:46:03,990 --> 00:46:07,810 Ik had voordat iemand te noemen laat er T-shirts daar. 738 00:46:07,810 --> 00:46:10,940 Sorry iedereen die is watching Deze op Livestream of video, 739 00:46:10,940 --> 00:46:12,820 maar we hebben Docker T-shirts daar. 740 00:46:12,820 --> 00:46:16,250 En we weten Docker studenten, en in mijn ervaring, 741 00:46:16,250 --> 00:46:18,940 professoren ook, zoals gratis kleding. 742 00:46:18,940 --> 00:46:22,490 >> Dus dank u allen voor coming out. 743 00:46:22,490 --> 00:46:27,050 En volg ons op Twitter als je wilt of niet. 744 00:46:27,050 --> 00:46:27,910 Kan me niet schelen. 745 00:46:27,910 --> 00:46:29,430 Volg ook Docker op Twitter. 746 00:46:29,430 --> 00:46:31,890 Dat is ook interessant. 747 00:46:31,890 --> 00:46:32,990 En dan dat is het. 748 00:46:32,990 --> 00:46:33,490 Docker.com. 749 00:46:33,490 --> 00:46:35,410 Dank je. 750 00:46:35,410 --> 00:46:39,360 >> [APPLAUS] 751 00:46:39,360 --> 00:46:41,625