[TÓNLIST spila] DAVID Malan: Allt í lagi. Þakka þér svo mikið fyrir að koma. Þetta er CS50 námskeið á Docker, a tækni sem við sjálf og CS50 hafa byrjað að nota í nokkurn tíma núna. Svo er nafn mitt David Malan, ég kenna Harvard Kynning að tölvunarfræði. Fyrir alveg nokkur ár, við höfum verið að gefa nemendum downloadable viðskiptavinur-hlið raunverulegur vél sem þeir gera vandamál setur sitt. Að við höfum nú umbreytt til Cloud umhverfi sem í raun notar þessa tækni kallað Docker, svo að öll CS50 nemendur hafa nú sína eigin Docker ílát að þú munt brátt heyra allt um. Þar að auki, á vefþjóninum CS50 er hlið þyrping, í mörg ár við vorum með ský miðlara Amazon. Við vorum að keyra einstaklingur raunverulegur vél. Það líka, höfum við byrjað að umskipti til þetta kallast Docker ílát þannig að allar umsóknir okkar eru nú fullkomlega aðskildir. Svo fyrir það og meira, leyfa mér að kynna vinum okkar, Nico og Mano, frá Docker sig. NICOLA Kabar: Takk, David. Halló allir. Mitt nafn er Nico og þetta er Mano. Við erum frá Docker. Við erum að fara að tala about-- gefa ykkur kynningu við að Docker, og vonandi, undir lok af þessu máli sem þú getur átta hversu mikið þú getur notað til læknisins til að oxalaL umsókn þróun þína og dreifing. Svo erum við að fara að byrja á alvöru fljótur með nokkra þekkingu. Lýsið hvað Docker er allur óður í. Hvernig virkar það? Hvernig er það architected? Ég ætla að gera nokkrar demo. Og Mano er að fara að vera lýsir því hvernig er hægt að nota Docker og gefa þér ákveðin skref hvernig þú getur byrjað. Ég myndi þakka ef þú krakkar geta haldið burt fyrir spurningum þínum undir lok. Þannig að ég yrði að takast þá spurningar allan kynningu. Þannig að við munum fara nokkurn tíma undir lok fyrir spurningar. Svo bara raunverulegur fljótur, sem hefur í raun alltaf unnið Docker, eins spilað með það? Awesome. Cool. Great. Svo er ég að fara að byrja með nokkrum sögu. Svo aftur í '90s og snemma 2000s, í grundvallaratriðum sem vefur verktaki, app verktaki, þegar þeir fóru að senda inn umsókn það var bundinn við beran málm. Það var einn framreiðslumaður. Það var eitt forrit. Hefð, dæmi væri eins og LAMPI stafla, þar sem þú hafði í raun að koma upp laug af auðlindum. CPU, minni, diskur, net, setja upp stýrikerfi ofan á það. Ef þú ert að þjóna eitthvað, ef þú ert í raun að hafa vefþjón, þú þarft eitthvað eins Apache til að þjóna því. Ef umsókn þín þarf gagnasafn, backhand, þú vildi setja eitthvað eins og MySQL, og svo framvegis. Og ef þú þarft að hlaupa tíma, PHPs og PHP Python vinna var þar. Og svo við þurftum í raun að taka þau skref í því skyni að fá umsókn þína upp og keyra. Ef þú þarf meira reikna orku, þér grundvallaratriðum þurfti að hringja Ops strákur eða gal að fara og rekki upp nýtt stykki af vélbúnaður, tengja hann, og þú þarft að endurtaka þá ferli aftur og aftur. Þannig að þetta ferli var tiltölulega dýr. Var örugglega mjög hægur. Það var óhagkvæmt. Og í fullt af tilvikum, þinn vélbúnaður var underutilized. Svo, í lok '90s og snemma 2000s, vélbúnaður virtualization rakst. Og eins og þú sérð hér í mynd, í grundvallaratriðum það sem þeir gerðu eru nýttir laug af Free Resources vélbúnaður og tegund þjónað þeim við efri lögum, í þessu tilfelli, gestur stýrikerfi. Og allt hugmynd um raunverulegur vél rakst og sem sannarlega hjálpaði Cloud computing eins og við þekkjum það í dag. Svo hvað það þýddi er þú getur keyrt mörg VMS, sem þýddi margar stafla, margar umsókn á sama líkamlega vél. Þetta örugglega hjálpað með hraða umsókn dreifing. Ákveðið með útgjöld. Þú þarft ekki að fara og eyða orku, tíma og fjármagn til rekki fleiri netþjóna til að fá að meiri óendanlegur. Og hraða í raun koma þær auðlindir upp er miklu hraðar. Great. Þannig að við leyst heimsins hungur, ekki satt? Nei, í raun ekki. Svo, virtualization eins mikið og það er reyndar hjálpaði, takast á við vandamál, það kynnt í raun a einhver fjöldi af áskorunum. The Hypervisor örugglega kynnti fullt af margbreytileika, meðhöndlun þeirra undirliggjandi laug af auðlindum. Það er þyngri í þeim skilningi að áður þú haft eitt stýrikerfi sem er eins og þrjú, fjögur gigg á diski. Nú, ef þú ert 10 vélar á einni vélbúnaði þú þarft að margfalda það með fjölda af vélum. Það er örugglega meira dýr í vissum skilningi enn að fá leyfi fyrir virtualization tækni ef það er ekki opinn uppspretta. En við skulum ekki taka allt inneign frá virtualization. Því hvað gerðist er að það er fullt af stafla og fullt af hugbúnaði tækni sem voru virkt eftir því hversu hratt þú værir fær um að fá að auðlindum með Cloud uppsveiflu. Svo, í dag einn app eða þjónusta getur að nota eitthvað af eftirfarandi runtimes eða gagnagrunna. PHP, Python, MySQL, Redis, whatnot. Þannig að það er mikið af flókið á þessu Fjöldi stafla í raun að koma upp einn þjónusta. Og með það, þú hefðir fullt af undirliggjandi auðlindir eða innviði gerðir til að prófa að senda á vettvang og í rauninni taka til framleiðslu þessar umsóknir sem þú ert að þróa. Sérstaklega þar sem liðin hafa vaxið að vinna á þessum forritum, það er mikið af flókið og áskoranir sem bornir voru til að tryggja að sem cycle-- grundvallaratriðum umsókn þróun hringrás, er reyndar vel. Svo sú staðreynd að umsóknin er að vinna á staðnum á staðbundnum VM þinni ábyrgist ekki að kollega þína er að fara að búast við sömu niðurstöður. Og þegar rekstur liðið er með því að taka það sem þú ert og beita henni í framleiðslu mælikvarða, einnig er það engin trygging fyrir sem það er í raun að fara að gerast. Svo fer þetta okkur mjög big-- mikið af spurningarmerkjum, a einhver fjöldi af áskorunum í raun frammi álíka aftur á dögum. Og það minnti okkur á siglinga iðnaður. Svo skipasmíðaiðnaði hafði mikið af vörum, eins og þú sérð á vinstri hönd. Og á hægri hönd hlið, það er mikið af, í grundvallaratriðum, leiðir til að skip þeim vörum. Og hvað gerist þau núna fólk kom saman og sagði: við þurfum að staðla hvernig við skip í raun þeim vörum. Og búmm, hefur þú samþætta skipum gámur. Þeir voru sammála um mest Algengustu stærðir f flátið. Hvernig á að meðhöndla þá. Hvað nákvæmlega aðferð sem þú þarft að hlaða þá og afferma þeim. Og þess vegna, sem sannarlega hjálpaði skipum iðnaður. Núna meira en 90% áhersla flutt heimsvísu eru að nota þessar umbúðir. Og það örugglega lækkar útgjöld sem og tjón vegna siglinga. Svo við tökum sömu gerð og við beita tveggja app þróun hugbúnaðar arkitektúr, í skilningi sem containerization tók virtualization upp eitt stig. Svo í stað þess að gera það á vélbúnaði stigi, það varð meira af rekstri kerfi láréttur flötur virtualization. Og við gerum það með því að veita hver umsókn í eigin léttur hennar, einangrað, runnable og flytjanlegur, síðast en ekki síst, a vegur til raunverulega pakka allt sem það þarf að hlaupa. Hvar það er hægt að keyra. Svo, án tillits til hvort þú ert að keyra það á sveitarfélaga dev umhverfi, framleiðslu þína umhverfi, sviðsetning eða próf. Sama hvað undirliggjandi uppbygging er, þú hefðir hagnýtur vinna app. Svo er það einmitt það sem í grundvallaratriðum ílát gera á þessu vandamáli. Þeir takast það með umbúðir það á þann hátt að það er hægt að tryggja að það er sent tókst sama hvar það býr. Svo ef þú ert að fara eins, Bob það er samt allt í lagi. Ef þú ert að rugla saman við það sem ég er að segja, Ég ætla að vera útfæra á það. Svo er Docker sjálft hvernig passa á þessari mynd? Svo er Docker opinn vettvangur til auðveldlega, leggja áherslu auðveldlega, að byggja skip, hlaupa, léttur flytjanlegur sjálf nægilega app ílát hvar sem er. Svo ef þú tekur eitthvað af þessu tala, vinsamlegast taka eftirfarandi. Ef þú ert app í gangi staðnum og þú þróað hana með því að nota Docker vettvang, búast það að vera giftusamlega vettvangi. Sama hvað er undirliggjandi innviði. Þannig að ef þú ert með Docker ílát og það er að vinna, þá svo lengi sem það er Docker vél á hinni side-- ef rekstur innviði þína er að nota hvaða Cloud, hvort sem það er AWS eða Google eða Microsoft, eða af opinberum Clouds, eða eigin Cloud, eða opinn stafla þinn Cloud, eða á umhverfi þitt. Ef þú ert með vél gangi, sem þýðir það er að fara að vera tekist á vettvangi þar. Það er að fara að vera í gangi nákvæmlega sama hegðun eins og þú architected það að vera. Þannig að ef við lítum at-- ég að fara að fara í gegnum það í raun eru í helstu þætti Docker. Svo er Engine kjarninn í Docker. Það er heilinn er. Það orchestrates bygging, skipum, og beita og stjórna gámarnir sjálfir. Ég grafa í það Engine gerir nánar í sekúndu. Í grundvallaratriðum, því Doctor var byggð kringum viðskiptavinur framreiðslumaður arkitektúr, svo í því skyni að hafa samskipti við Vél þú þarft einhvers konar viðskiptavinur. Myndir eru sniðmát í sem gámar eru byggð úr. Svo myndir eru í grundvallaratriðum bara truflanir skrá. Sniðmát og ílát er í raun er það er í gangi á afturkreistingur að er að þjóna umsókn þína eða gera eitthvað með þeim gögnum. Registry er beint sem vandamál af hvernig þú dreifa í raun myndir. Svo ef þú þarft að deila mynd sem þú unnið á kollega þína eða til rekstrarlegs lið, þú nota það með Registry. Þú getur sótt opinn uppspretta útgáfa af henni sem Docker unnið og opinn uppspretta. Eða þú getur notað Docker hjálp, sem er Cloud útgáfa að ýta og draga myndir þarna úti. Það er a gríðarstór hlutur. Vegna þess að það er a gríðarstór Vistkerfi í kringum Docker og það er virkilega þungt nýta svæðinu. Svo að draga hér, þetta er hvernig lægstur Docker workflow viðskiptavinur. Þú samskipti við her, í þetta mál sem það er Docker daemons. Það er það sama og vél. Þú gera skipanir eins Docker byggja, rífa, hlaupa. Og Engine sjálft fer og gerir þá hluti. Svo annað hvort það hefur áhrif á Registry að draga þær myndir og lögin af myndunum. Hvort ef þú vilt senda, hlaupa ílát, drepa þá, henda þeim niður, whatnot. Svo er samantekt á þessu workflow af öllum þessum hlutum. Svo ef þú tekur á hverjum hluti af sjálfu sér. Svo Engine, það er bara púkinn. Það verður eins konar spila það að styðja það á Linux vegna þess að það er krafist þess að tilteknar Linux kjarnanum aðgerðir. En Windows er að vinna á að gera það sama. Það er ætlast til að styðja af Windows Server 2016. Svo aftur, ábyrgð með því vél er að, eða eru að, búa til myndir. Draga myndir frá Docker Hub eða eigin Registry þinn. Ef þú ert búinn með þessum myndum eða þú búa til nýjar myndir, þú getur ýta þeim aftur til skrásetning að dreifa þeim til annarra liða. Og reyna að koma það á staðnum og stjórna ílát líftíma á staðnum. Það er byggt í kringum HTTP REST API. Svo tæknilega þú getur skrifa eigin þinn viðskiptavinur svo lengi sem það notar http, sem er mjög staðall vélbúnaður til að tala við Engine og fullt af öðrum þjónustu. Og þú getur séð hér að óháð af hvaða innviði er, svo lengi sem þú can-- allt þú þarft er rekstrarleiga kerfi, Linux sérstaklega. Og þú getur sett Docker Engine ofan á það og hafa það í gangi og það orchestrates, í grundvallaratriðum, öll þessi App einn, tveir, og þrír eru raunveruleg ílát. Svo er það Engine. Eins og ég nefndi áðan því þú þarft að hafa samskipti við Engine, það er viðskiptavinurinn. En í raun þegar þú setur Docker, það skip með það. Svo það verður sett upp, svo það er einn tvöfaldur. Og þú getur gert innanlandssímtöl að Docker vél. Eða fjarlægur símtöl til fjarlægur vél. Það þýðir að nota HTTP, eins og Ég nefndi áðan. Það er GUI viðskiptavinur heitir Kitematic frá Docker. Og það eru örugglega a einhver fjöldi af öðrum fólkinu sem eru að byggja upp mikið af GUIs sem í grundvallaratriðum framkvæma sumir HTTP kallar að tala við Engine. Bara nokkur sýnishorn skipanir. Ef þú gerir Docker útgáfa, myndi það sýna þér viðskiptavinur útgáfa eins og heilbrigður eins og þjóninn útgáfu. Ef þú gerir Docker upplýsingar mun það segja þér allar upplýsingar um hversu margir gámar eru í gangi eða búið til, hversu margar myndir sem þú hefur, og svo framvegis og svo framvegis. Hér hef ég í næsta að síðasta kassi, ég hef Doctor hlaupa. Svo er það hvernig ég er í raun búa ílát. Og ég ætla að gefa það til echo Halló heimur og sofa fyrir annað og whatnot. Og þú getur séð úrslit. Svo það er í gangi. Og svipað Linux ps, getur þú séð öll ferli og, í þessu tilfelli, allt gangi ílát. Vísa til baka þessa manns til að gámur ég búin bara. Svo, þetta er mjög mikilvægt vegna þess, eins, það geta vera a hluti ruglingslegur. Svo myndir eru lesa aðeins safn skráa, ekki satt? Þeir eru það sem gámur okkar byggist á. En þeir eru aðeins að lesa-eini. Svo þú byrjar með grunn mynd. Það hefur tilhneigingu til að líkja OS-eins, svo Ubuntu, CentOS, whatnot stöð mynd. Og þá byrja að byggja ofan á að ákveðin lög, sem mun gera upp enda myndin, niðurstaðan hér. Og hver af þeim lögum ætti að hafa foreldri mynd að það tilvísanir þegar það reyndar vill skapa. Þeir eru immutable, í skilningi að vegna þess að þeir eru að lesa-eini, þú getur í raun ekki gera breytingar á þeim. Þú getur notað þau til að búa til ílát úr myndinni, sem kalla allar síðari tilskilin myndir undir það. Þú getur gert breytingar í annan lag, það er umrita lag ég ætla tala um í öðrum. En hver af þeim lögum eru aldrei breytt. Í grundvallaratriðum myndir nota eitthvað heitir Union File System, UFS. Og það eru mismunandi geymslu bakendi sem nýta þessa tækni. Og hvað það þýðir að það koma saman mismunandi skráakerfi að gera þær líta út eins og einn. Svo þú getur í raun, frá umsókn sjónarhorni, þú ert með efst í huga sem sýnir allt öðruvísi skrá kerfi þörf fyrir að umsókn að keyra. En þeir eru í raun á þessum, þeir eru í raun á sitthvorum og notaðar eru af önnur ílát eins og heilbrigður. Svo eins og þú sérð hér að ef við byrjum með púkinn mynd sem grunn mynd, og þá við förum í og ​​bæta [? emacs?] og þá er það annað lag. Og þá bæta Apache. Það er annað lag. Og þá erum við eyða ílát úr því. Hver af þessum myndum, hver af þeim lögum, er greinilegur og getur verið endurnýta með öðrum umbúðum. Ef þú horfir á gámum sjálfra, þeir eru einhvern veginn eins og VM-eins, en ekki meðhöndluð á sama tíma. Svo, þeir gera ekki, tæknilega, fullur stýrikerfi undir þeim. Þeir nota einn kjarna hýsilsins stýrikerfi. Og þeir byggja ofan á það. Þeir líkja því hvernig þeir líta út. Þeir líkja rót skrá þeirra kerfi stýrikerfi. En þeir í raun eru ekki afrit. Svo í stað þess að hafa immutable lögum, síðasta lag, sem er ílátið sjálft, það er a lesa-skrifa lag. Sem rekur ferli umsókn þína. Og það ræðst af undirliggjandi lögum. Sérhver gámur er búin til úr mynd. Og þessi mynd getur verið einn lag eða marglaga mynd. Og ég vil að hafa í huga hér sem Docker notar mikið, eða er byggt á Copy-On-Skrifa vélbúnaður. Svo að, reyndar, ef þú ert ekki að gera breytingar á ílátinu, það er ekki að fara að taka auka pláss. Svo er það í grundvallaratriðum hvernig þér draga afrit-on-Write. Það er að fara að ákveðið flýta stígvél tími fyrir ílát. Því ef þú ert ekki að gera breytingar á ílátinu, það er að nýta það sem er þar nú þegar. Svo, hvernig það virkar í raun. Hluti af því er eins, núna, það nýtir amk tvo takka kjarna lögun. Og það er í rauninni það búin að stigi einangrun fyrir gáma sig. Þessir eiginleikar eru Nafnsvið og cgroups. Svo Nafnrými eru leið til að búa einangruð auðlindir, þannig að innan á sjálfu ílátinu, Aðeins er hægt að sjá ákveðnar auðlindir. Svo sem net tengi eða að tilteknir notendur eða whatnot. Og þeir eru aðeins sýnileg og aðgengileg í flátinu. Cgroup á aðrar takmarkanir hlið hvernig þú notar þessar auðlindir. CPU, minni, og diskur. Þegar þú getur farið í, ég meina þeir eru í raun aðgerðir sem voru þróuð by-- þeir eru hluti af Linux kjarnanum. Svo þeir voru ekki reinvented með eða endurskapa með Docker. Docker notar þá. Hvað Doctor raunverulega gerði hér er í raun það Útfærðar Stofnun Nafnsvið fyrir hvert ílát og skapa cgroups þannig að það er hlægilegur auðvelt að búa til ílát nota þessar aðgerðir. Auðvitað, eins og ég lýsti áðan, Union Skrá Systems og Copy-On-Skrifa sannarlega hjálpa hraða og diskur nýtingu gámum. Og þegar þú fá þinn hendur um Docker, þú ert að fara að sjá hversu hratt það er að reyndar snúast upp gáma og tár þá niður. Svo, ef þú gætir spurt, hvernig getur þú byggja í raun myndir? Við byggjum myndir af ferli að búa ílát og gera breytingar, breytinga þá, og fremja þá í að verða mynd. Svo það er kjúklingur og egg tilvísun hér, vegna þess að öll ílátin komist frá myndir og myndir koma frá framið gáma, að mestu leyti. Það eru þrír möguleikar að búa til myndir. Ég ætla að lýsa fyrst og síðast. Þú getur annað hvort handvirkt fara og keyra gáminn og gera þær breytingar, eins og þú myndir gera á hvaða VM eða stýrikerfi, svo og að setja upp nýja tvöfaldur, bæta skráakerfum og whatnot. Og þá þú hættir, eins og þú getur séð það allt. Ég er spennandi ílát mína. Og þá er ég að gera Docker fremja. Og ég er að fremja það. Þú getur séð að fjöldi hér er bara UUID eða fyrsta 12 bita af UUID. Eða bæti UUID. Og þá er ég að kalla það líkneski mitt. Svo nú Docker annast upptöku allt sem ég gerði það og skapa nýja mynd byggist á því. Ég ætla ekki að tala um tarball, en það er leið sem þú getur fengið einn, búa til einn, eða gera einn lag mynd með tarballs. Það sem ég ætla að tala um þetta og hvað er að mestu leyti notuð í dag, er Dockerfile. Sem er tæknilega fyrsta skref sjálfvirkt Docker sig. Svo Dockerfiles eru hlutir sem þú ert fara að sjá í fullt af github endurhverfum viðskiptum í dag. Það er í rauninni bara textaskrá lýsa nákvæmlega hvernig á að byggja upp ímynd. Og fyrir hverja línu, skapar það í raun gámur, keyrir þessi lína, skuldbindur þessi ílát í a ný mynd, og þú, í grundvallaratriðum, nota það fyrir öllum síðari aðgerðum þar til þú færð að síðasta myndin. Sem er í grundvallaratriðum enda markmið hér, enda. Og eftir að þú exec-- eftir þér skrifa Dockerfile þinn, sem er eingöngu í texta, gera þér Docker byggja og nafn myndarinnar. Og þú bendir á að það sé þar sem Dockerfile er. Og þú getur búist við að sjá myndina mína sem mynd sem þú hefur á staðnum. Svo er það bara sjón Dæmi um það sem fram fer á. Þú byrjar með grunn mynd. Þú keyrir að í ílát sem breytir ekki grunn mynd sjálft. Heldur skapar umrita lag ofan á það þar sem þú gerir breytingar, þar sem þú fremja og þú endurtaka ferlið þar til þú færð að endanlegri mynd þinni. Og með því að gera það, annað hvert byggja ferli getur notað sömu lög og same-- grundvallaratriðum Docker felustaður þeim lögum. Þannig að ef ég er að gera það sama nákvæmlega ferli, en í stað þess að setja PHP, Ég er að setja upp Python. Það er að fara að nota Apache og Ubuntu. Svo þannig að þú ert að nýta diskinn. Það er að nýta skyndiminnið og í boði myndir þar. Endanleg stykki er Registry, sem er hvernig þú dreifa myndum. Og, eins og ég nefndi áðan, það er Cloud útgáfa af henni, sem er Docker Hub. Þú getur farið og skoðað a einhver fjöldi af, í grundvallaratriðum það er opinber SAS vara sem þú getur samt hafa sér myndir, en það er mikið af opinberum myndum. Það er í raun ótakmarkaður, þú getur ýta ótakmarkaða opinberum myndum þar. Og þetta er hvernig þú getur vinna með lið þitt. Þú getur bara benda þeim á að endurhverfum og þeir geta sótt það eða mynd og þeir geta sótt það. Svo nóg með að tala. Hver vill sjá nokkrar demo raunverulegur fljótur? Allt í lagi. Svo hér er ég með. Ca þið sjá skjáinn minn? Allt í lagi. Þannig að ég hef Docker gangi hér, svo ég getur athugað it's-- Þetta er útgáfa af Docker sem er í gangi. Getur gert Docker upplýsingar. Athugaðu allar upplýsingar um hversu margir myndir sem þeir hafa, og svo framvegis og svo framvegis. Docker PS, það er ekkert í gangi. Concatenated þeim. Svo það fyrsta sem ég vil gera er að sýna þú hvernig þú getur auðveldlega keyrt gám. Svo fegurð um Doctor hlaupa, ef það er í raun er ekki að finna mynd á staðnum, við vanræksla það talar við lækninn Hub og reynir að finna hana þar og niðurhal það fyrir þig. Svo það inniheldur Docker draga stjórn, náttúrulega. Svo ef ég er Docker hlaupa, halló-heiminum. Svo, fyrst það er að fara til að reyna að finna það. Annars, eins og þú getur séð hér, það gæti ekki fundið það á staðnum. Núna er það dró bara tvö lög sem gerði þessi mynd og ég hljóp það. The halló-heimur er bara í rauninni framleiðsla, hvað þú hefur gert. Þannig að þetta er auðveldasta, einn auðveldasta dæmi. Svo í raun ég hljóp bara og sagt gámur raunverulegur fljótur. Ef ég vil að run-- og við the vegur, ef Ég vil tíma sem, bara svo þú veist, þetta er hversu lengi það tekur að reyndar snúast upp og geyma það. Við erum að mæla það í millisekúndum. Svo þú getur séð hversu mikið þetta getur í raun að hjálpa þér ekki aðeins í prófunum, en einnig jafnvel dreifing. Svo er það a fljótur í huga á það. Það næsta sem ég hef að fara að gera er í raun hlaupa mynd sem ég hef nú þegar tilbúinn. Svo Docker hlaupa. -d er bara fáni að segja það að keyra í bakgrunni. Og p gefur ákveðnar hafnir. Því sjálfgefið, að ílát eru einangruð, þannig að þú þarft að tilgreina nákvæmlega hvernig það getur nálgast þær. Og í þessu tilfelli, er ég að segja Docker að kortleggja handahófi höfn á the gestgjafi að tiltekinn hafnar í á sjálfu ílátinu. Og það er í rauninni þar sem image-- vonandi er þetta réttur. Þannig að það skiptir samhliða niðurhal hver af þeim lögum sem þú getur séð hér. Þeir eru af lögunum innihalda að gera enda mynd sem ég byggði. Það er að fara að taka annað. Og voila. Svo nú ef ég gera Docker ps, ætti ég sjá eitthvað sem er í gangi. Ég ætti að sjá á kennið myndina að þetta var byggt af, og stjórn sem var tekinn af lífi. Og hvernig á að nálgast það er grundvallaratriðum þú fara til hafnar. Þannig að ég ætla að fara to-- þetta er ég er að keyra það á AWS. Ég ætla að fara til 32769. Oops. Og hér erum við að fara. Svo þetta er í raun bara a vefur þjónusta sem sýnir sem ílátið það er verið þjónað frá. Svo þú getur séð að það er frá gámur a9f. Og hér er þetta Heiti ílátinu. Svo þú krakkar geta séð hversu hratt það var að í raun ekki aðeins draga heldur einnig senda umbúðir. Nú er næsta skref að líta inn Dockerfiles og hvernig við getum í raun byggja nýjar myndir. Ég ætla bara að fara að fara að fá klón, a Dæmi um Dockerfile miðað fyrr skýringarmynd, einn að Apache og PHP. Vonandi Ég man endurhverfum minn. Þannig að ég hef geymsla mína núna. Og þú ert að fara að sjá þetta mikið í raun. Ég vissi ekki að setja tré. Svo í rauninni þú ert að fara að sjá hvernig Kóðinn gögn í kring það, og þá Dockerfile á hvernig til raunverulega pakka því. Svo það er bara sýnishorn PHP sem bergmál halló CS50. Þannig að ef ég vil keyra það, Ég skal gera Docker byggja. Ég verð að byggja það fyrst. Ég ætla að nefna það demo_cs50. Og þú þarft merki við það líka. Svo skulum kalla það V1 punktur. Svo eins og ég áður var lýst, hvað ég er að gera í dag er ég að segja Docker að fara að nota that-- raun, því miður, slæmt minn. Við vildum ekki að líta á Dockerfile sig. Svo bara í hér index.php auk README skrá og Dockerfile. Þannig að ef þú taka a líta á sem Dockerfile, svo það er mjög svipað og það Ég lýsti áðan. Það er bara fullt af skref sem Docker keyrir með því að skapa og rífa niður gáma og [? telja?] þá inn mynd. Og í rauninni þú getur see-- [inaudible] það here-- en þetta er frá the heimamaður endurhverfum. Það er að fara að fara og grípa index.php. Svo er það eina kóðinn sem eru í raun hluti af umsókn þína. Allt þetta er í grundvallaratriðum stýrikerfi pípulagnir, fá rétt pakka og Apache, og PHP, og whatnot. En þetta er í raun að taka index.php og færa hana í ílát, í myndinni. Þannig að ef þú ferð á undan og keyra stjórn með því að gera eftirfarandi, það er going-- raun, þetta gæti tekið smá. Vonandi er það ekki taka of langan tíma. Svo er hægt að sjá skref. Og ég hvet þig til að fara heim í dag og reyna það. Og Mano mun lýsa hvernig nákvæmlega þú gerir það. En það er mjög gaman að sjá nákvæmlega hvað er að gerast á bak við tjöldin. En það er fáranlega auðvelt að byggja myndir og dreifa þeim með Docker. Það tekur smá lengri tíma en ég bjóst við. Við skulum sjá hvað gerist þegar you-- kólna. Svo eins og þú geta sjá, hvor af þeim skrefum tákna línur í Dockerfile. Og það sýnir hér að það tekist að byggja þessa mynd. Svo ef ég Docker myndir, ég ætla að sjá allar myndirnar sem ég hef á staðnum. Og einn af þeim er kallaður minn notandanafn og nafn myndarinnar, og tag representing-- aðallega er það útgáfa tag. Svo nú ef ég vil keyra það, ég Docker hlaupa. Og ég vil bara að gera -D -P. Gera V1. Svo ég get séð núna að ég hef tvo ílát gangi, sá sem ég bara búin og halló Docker eitt sem ég fékk síðasta. Og þú getur séð hér að það úthlutað það annað tengi. Svo ef ég fer til sömu IP en tengja það annað port-- vonandi gerði ég ekki. Svo nú er þetta forrit að ég sent bara. Ef ég vil gera breytingar, ég geta fljótt breyta kóðann og gera eftirfarandi. Gerum halló Harvard. Svo nú hvað er að gerast að gerast er að ég er fara að merkja það með mismunandi version-- ó, þetta ekki guy-- merkja það með aðra útgáfu. Og þú ert að fara að see-- gera þú krakkar búast það að taka sama magn af tíma að byggja það aftur eða ekki? Allt í lagi, og einhver veit hvers vegna? Talaðu hærra. Áhorfendur: [inaudible] NICOLA Kabar: Það er í grundvallaratriðum við aðeins að breyta einn af síðari skrefum. Og því það er að fara að nota skyndiminni og nota hvert þessara laga. Og það er sannarlega sumir af the Killer lögun af Docker er hvernig það nýtir í raun og endurnotkun taka yfir diskur fyrir sama nákvæmlega stykki af upplýsingar. Þannig að ef við gerum það sama, það tók bara nokkrar sekúndur. Ef við viljum að redeploy-- svo nú Ég ætti að hafa þrjú ílát. En þetta er að vera setið í the-- sjö einn. Svo nú er það þriðja ílátið. Allir skilja það sem ég gerði bara hér? Svo nú ef þú vilt deila þessu gámur raunverulegur fljótur með vinum þínum, þú getur bara gert docker ýta Heiti ílátinu, vonandi. Svo nú er að fara að ýta því to-- Ég er ekki skráð hér. Fyrirgefðu þetta. En ég ætla ekki að fara að leysa þetta núna. En í grundvallaratriðum að einn stjórn er bara að fara upp ýta því. Og þú ert að fara að vera fær um að sjá það ef þú ferð til Docker Hub Og þú skráir þig inn, þú ert að fara að vera fær um að sjá það. Og þá getur þú bara benda hver er að fara að nota þessi mynd til að fara og rífa það. Og þeir geta notað það. Með það, vonandi Ég svona fram hversu auðvelt það er að vinna með Docker. Og ég ætla bara að fara að gefa það aftur til Mano. Og hann er að fara að taka það hér. MANO MARKS: Allt í lagi takk, takk Nico. Hvað með það? Svo einn af þeim hlutum sem ég langaði til að gera er að setja saman hvers vegna þetta er important-- hvers vegna Docker og hvers vegna ílát eru svo Mikilvægt ný þróun, ný leið til að í raun að gera hugbúnað. Og áður en ég geri, ég ætla að bara taka nokkrar tölfræði. Ég ætla ekki að lesa allt. En þetta sýnir þér mikið um hvernig Vinsælast þetta er í samfélaginu. Kjarni Docker tækni eru opinn uppspretta. Svo er það Docker Engine, semja, Kvik, fullt af öðrum hlutum er allt opinn uppspretta. Og við höfum, það gerði ég segja, 1.300 þátttakendur. Þú ert að sjá núna, ef þú horfir á Fjöldi laus störf, í síðasta skipti við skoðuðum, það var um 43.000 starf op sérstaklega nefna þekkingu Docker. Hundruð milljóna myndum hafa verið hlaðið niður af Docker Hub. Og, vel, miklu fleiri stór stats. Fyrir þá sem eru forvitnir, það var upphaflega skrifað í Python og þá endurskrifa í Áfram. Og það er aðeins verið opna source-- það er bara verið gefin út í um 2 og 1/2 ár, sem þýðir að í 2 og 1/2 ár, við höfum séð gríðarlegt magn vexti og mikilvægi um þetta í samfélaginu. Og svo ég vil tala svolítið um hvers vegna. Svo bara til að ítreka nokkrar af Lykilatriði Nico, Docker er fljótur. Það er flytjanlegur. Það er hægt að fjölfalda. Og það setur upp staðlað umhverfi. Og what-- þetta er vitleysa minn Stimpill út Monoliths slide-- hvað það er að hjálpa fólki að gera, sem a einhver fjöldi af the hugbúnaður iðnaður byrjaði að gera í snemma 2000s, er að flytja frá þessum monolithic einn umsókn þar sem hvert ánauðar þurfti að vera prófa áður en allt app hafði að dreifa, sem gæti þýtt vefsíðu aðeins fékk sent einu sinni á þriggja mánaða fresti, eða meira, til mun meiri þjónustu stilla af arkitektúr eða componentized mismunandi gerð af umsókn arkitektúr. Og svo leyfa þessir konar arkitektúr að nýta Docker að keyra í þessum þremur Helstu sviðum þróunar, sem er þróun skrifa raunverulegan númerið þitt, prófa númerið þitt, og beita henni. Svo hvers vegna er þetta mikilvægt? Ef þú ert a-- láta mig gefa dæmi. Ef þú ert a website tæki verktaki, þú ert þróa vefsíðu sem er byggt á gagnagrunni sem David framleitt hérna. Því miður David, ég kalla þig út. Ef þú vildir senda the heild hlutur, að þú vilt að bíða undir hefðbundinn monolithic hugbúnaðarþróun umhverfi, vilt þú að bíða þar til hann var búinn með gagnagrunninum áður en þú getur raunverulega gera neinar breytingar á vefsvæðið þitt. Þú vilt að redeploy á Öllu forrit til að gera það. Og hvað Docker hjálpar þér að gera er hver maður vinna á mismunandi hluti og uppfæra þá eins og þeir fara, bara að gera úr skugga um að tengi vera sú sama. Svo hvað það hefur gert er það færst fólk frá að gera þetta miklu monolithic architected hugbúnaður sem sent í hverjum mánuði til að stöðugt sameining og samfelld þróun umhverfi. Nú er þetta ekki einstakt að Docker, en Docker gerir það svo miklu auðveldara, sem þýðir að þú ert í rauninni stöðugt að beita. Við tölum til fyrirtækja sem eru beita opinberum forrit frammi þúsund sinnum á dag vegna þess að þeir sjá verðmæti í bara að gera litlar breytingar, og svo lengi eins og það liggur í gegnum próf, láta það fara út í framleiðslu. Nico var alltaf að segja mér áðan að í mörgum umhverfi, staðall líftíma ílátið er mældur í sekúndum, en raunverulegur vél gæti verið mælt í mánuði. Mig langaði til að taka smá snúa hér því ég er í skólastofnun. Mig langaði til að gefa dæmi um hvernig þetta virkar í menntarannsókna Ástandið. Svo er það stofnun kallast bioboxes. Bioboxes er DNA greiningu fyrir vísindamenn. Nú hvað þeir fundu var að þegar a researcher-- og þetta er ekki að kenna einhverju tilteknu researcher-- en þegar rannsóknir á vettvangi reiknirit til greina, Á ákveðinn hátt, DNA sýni sem, þeir myndu skrifa hugbúnað, birta það, kannski að GitHub eða annars staðar, og þá voru þeir að gera. Jæja vandamálið var að það var ekki endilega að fjölfalda. Vegna þess að í því skyni að skilja hugbúnaður, þeir yrði sett upp fyrir Nákvæm þróun umhverfi að það var notast yfirleitt þeirra laptop, eða miðlara, eða gögn miðstöð sem þeir voru að nota. Og þar af leiðandi, það var mjög erfitt að endurskapa niðurstöður rannsókna þegar greina DNA sýni til að leita á hlutina eins incidence-- bera saman tíðni hjartaáfalla byggt á ákveðnum genum að vera til staðar, til dæmis, eða krabbameini eða einhverju öðru konar hlutum. Svo það sem þeir gerðu í staðinn var þau byrjuðu að búa gámum. Og þú getur farið til bioboxes.org, það er frábær stofnun. Og hvað þeir gera er að þeir framleiða ílát byggt á rannsóknum. Og þá þegar einhver sendir í sýni þeirra, þeir geta keyrt það. Og það hefur allt umhverfið þarf til að keyra þessi reiknirit og framleiða niðurstöður. Og þeir eru að finna að þeir eru mun líklegri og mikið hraðar geta skila niðurstöðum til fólks. Og í raun, hvað fólk er að gera ert að keyra eigin greiningu þeirra á DNA, senda það í að bioboxes og þá biobox tekur bara gögnin, rekur það gegn ýmsum af mismunandi gáma að sjá mismunandi niðurstöður byggt á mismunandi rannsóknum. Svo það er mjög öflugur leið sem vísindamenn er hægt að gera eitt eintak sem gerir annað fólk til að reyna að endurskapa niðurstöðurnar. Svo hvernig gera þú byrja? Við erum vel studd á Linux. Svo ef þú vilt setja nokkuð á Linux, þú notar staðall þinn pakki framkvæmdastjóri að setja upp. Ef þú ert að nota Debian, það er íbúð fá. CentOS er Yum. Fedora Red Hat er rpm-- Ég man það ekki. Engu að síður, það er allt þarna. Við styðjum mikið úrval af Linux. Þú getur athugað þá út. Við höfum einnig möguleika þannig að þú gæti keyrt á Mac eða Windows. Nú Nico fyrr að það var bara stutt á Linux. Það er satt vegna þess að það þarf Linux kjarnanum. En er hægt að keyra í a raunverulegur vél. Og hvað Docker Verkfæri er, sem þú getur hlaðið niður, það gefur þér að raunverulegur vél. Svo bara fljótur 48 annað, ég held, að sækja. Þú leitar bara á Docker Verkfæri, sækja það til Mac, og þessi hluti er Auðvitað ferð upp því hver vill horfa á sækja merki? Standard Mac uppsetningu, og þá þú ert fara að sjá Jerome setja í lykilorð hans. Það er mjög spennandi. Og þá setur það allt fullt af verkfærum. Og sérstaklega mun það setja a stjórn lína. Og þá gætir þú séð Jerome prófa myndir hans. Og þá byggt á þessu, þú getur séð að YouTube telur að Nico hefur áhuga á Star Wars, The Jimmy Kimmel Show, og ég held að Ellen. Ég held að síðasta er bút úr Ellen sýningunni. Svo Docker Verkfæri kemur þó með meira en bara Docker Machine. Svo er Docker Machine Það sem hjálpar þú setur upp a raunverulegur vél á þinn Gluggakista eða Mac-- Windows kassi eða Mac box-- og hjálpar þér að gera búnaðinn En það kemur líka með Kvik og semja, sem eru hönnuð til að hjálpa þér að gera stór mælikvarði dreifing á umsókn þinni. Svo ef þú vilt að stjórna klasa af hnúður, klasa af ílátum, Semja og Swarm eru leið til að fara um það. Og auðvitað kemur það með Docker Engine og Kitematic, sem er þetta skrifborð GUI. Ég ætti líka að nefna Docker Registry, sem er ekki innifalinn í Verkfæri, en það er leið fyrir þig til að keyra eigin spýtur hlutaskrám af Docker myndum eins Docker Hub, en þú getur líka bara notað Docker Hub sem leið til að gera það. Og samsæri snúa, þú ert að sjá það gangi í gám. Og það er hvernig við erum dreifa skyggnur okkar. Allt Þessi kynning er í raun HTML renna þilfari. Og það er í gangi í gámur, sem þú getur fengið by-- NICOLA Kabar: Já, svo er það hlaupandi í fullu starfi á Max minn. Og ég er að kynna af því. Og þú bara Docker eftir þú setur Verkfæri þitt. Þú getur bara gert Docker hlaupa og fá það, og nota glærur. MANO MARKS: Og það er það. Þannig að við þökkum ykkur öllum fyrir komuna. Og við erum fús til að svara spurningum. Ég ætti að nefna áður en einhver skilur það er T-shirts þarna. Því miður hver sem er að horfa á þetta á Livestream eða vídeó, en við höfum Docker Bolir þarna. Og við vitum Docker nemendur, og í minni reynslu, prófessorar líka, eins og ókeypis föt. Svo þakka ykkur öllum fyrir að koma út. Og fylgja okkur á Twitter ef þú vilt, eða ekki. Mér er alveg sama. Einnig fylgja Docker á Twitter. Það er líka áhugavert. Og þá er það það. Docker.com. Þakka þér fyrir. [Applause]