[Prehrávanie hudby] DAVID Malan: Dobre. Mockrát vám ďakujem za účasť. To je CS50 seminár na Docker, A technológie, že my sami a CS50 začali používať dlhšiu dobu. Takže moje meno je David Malan, ja vyučovať Harvarde Úvod do informatiky. Pre docela niekoľko rokov, sme sa dáva študentom k stiahnutiu na strane klienta virtuálne stroje na ktorom oni robia svoje problémy sety. To, že sme teraz prešli do prostredia Cloud že v skutočnosti používa túto technológiu volal Docker, tak, že všetky CS50 Študenti majú teraz vlastné Docker kontajnery že budete čoskoro budete počuť všetko okolo. Navyše, na serveri CS50 je side klastra, po mnoho rokov sme používali cloud serveru Amazon. Bežali sme individuálne virtuálne stroje. Aj to, že sme začali prechod na tieto veci tzv Docker kontajnery tak, aby všetky z našich aplikácií sú teraz dokonale oddeliť jedna od druhej. Takže pre a ešte oveľa viac, dovoľte mi, aby som predstaviť našich priateľov, Nico a Mano, z Docker samotnej. NICOLA Kabar: Vďaka, David. Ahojte všetci. Volám sa Nico a to je Mano. Sme z Docker. Budeme hovoriť about-- ktorá vám chlapci intro k Docker, a dúfajme, že ku koncu tohto rozhovoru si môžete uvedomiť, koľko si môžete pomocou lekára, oxalát svoju vývoj aplikácií a nasadenie. Takže, budeme začať real rýchla s nejakou informácií o pozadí. Popíšte, čo Docker je všetko okolo. Ako to funguje? Ako je to architected? Budem robiť nejaké demá. A Mano bude popisuje, ako môžete použiť Docker a dáva vám konkrétne kroky ako môžete začať. Ocenil by som, ak vy môžete držať off pre vaše otázky ku koncu. Tak by som mohol riešiť tie, Otázky v celej prezentácii. Takže necháme nejaký čas ku koncu pre otázky. Takže stačí naozaj rýchlo, ktorý má vlastne nikdy pracoval na Docker, rád hral s ním? Úžasné. Super. Skvelé. Takže, idem na začiatok s nejakou históriou. Takže späť v 90. rokoch a ranom 2000s, v podstate ako webové vývojárov, app vývojári, keď išli nasadiť aplikácie to bolo viazané na holé železo. Bol to jeden server. Bola to jedna aplikácia. Tradične, príklad by to ako LAMP, kde ste vlastne mali k vyvolajte bazéna zdrojov. CPU, pamäť, disk, sieť, inštalácia operačný systém na vrchole to. Ak budeme podávať niečo, ak je ste skutočne mať webový server, budete potrebovať niečo ako Apache ju slúžiť. Ak vaše aplikácie potrebuje databázy, bekhend, by ste nainštalovať niečo ako je MySQL, a tak ďalej. A ak budete potrebovať čas behu, PHPs PHP a Python pracovať tam boli. A tak sme vlastne museli aby tieto kroky v poradí dostať svoje aplikácie a beží. Ak máte potrebné viac výpočtový výkon vás, v podstate musel zavolať svojej Ops chlap alebo gal ísť a dať dohromady nový kus hardvéru, pripojte ho, a vy budete musieť opakovať tým procesy znovu a znovu. Tak bol tento proces relatívne drahé. Bol určite veľmi pomalé. To bolo neefektívne. A v mnohých prípadoch, vaše hardvér bol nevyužité. Takže, na konci 90. rokov a čoskoro 2000s, virtualizácie hardvéru narazil. A ako môžete vidieť tu v obrázok, v podstate to, čo urobili je získavaná kaluž voľné hardvérové ​​prostriedky a druh slúžil tých, do vyšších vrstiev, v tomto prípade, hosť operačný systém. A celá myšlienka virtuálne stroje narazil a že skutočne pomohol Cloud computing, ako ju poznáme dnes. Takže, čo to znamená je, môže bežať viac VM, ktorý znamenalo viac komíny, viac aplikácie na rovnakom fyzickom stroji. To rozhodne pomohlo s rýchlosť nasadenia aplikácií. Rozhodne s nákladmi. Nemusíte ísť a stráviť energie, času a prostriedkov do racku viac serverov sa dostať do ďalšej vypočítajte. A rýchlosť skutočne prinášať Tieto zdroje up je oveľa rýchlejší. Skvelé. Tak sme vyriešili hlad vo svete, nie? Nie, fakt nie. Takže, virtualizácie, rovnako ako je to vlastne pomohol, riešenie problému, v skutočnosti zavedený veľa problémov. Hypervisor rozhodne predstavil veľa zložitosti, manipuláciu sú základom pool zdrojov. Je to ťažšie v tom zmysle, že pred si mal jediný operačný systém, ktorý je ako tri, štyri koncerty na disku. Teraz, ak máte 10 strojov na jednom hardvéru musíte násobiť, že počtom strojov. Je to určite viac drahé v istom zmysle stále sa dostať na licencovanie virtualizačné technológie ak to nie je open source. Ale poďme neberie všetky úver od virtualizácie. Vzhľadom k tomu, čo sa stalo, je tu Mnoho stohov a veľa softvéru technológie, ktoré boli povolené podľa toho, ako rýchlo ste schopní sa dostať k zdrojom s Cloud boom. Takže, dnes jediná aplikácia alebo služba môže používať niektorú z nasledujúcich runtimes alebo databázy. PHP, Python, MySQL, Redis, čo ja viem. Takže je tu veľa zložitosti na túto tému počet kôpok skutočne vychovávať jediná služba. A spolu s tým, ste mali veľa podkladové zdroje alebo infraštruktúra typy otestovať Deploy av podstate trvať na produkciu tieto aplikácie že ste rozvíja. Najmä, ako vaše tímy majú pestované pracuje na tých aplikácií, tam je veľa zložitosť a výzvy , Ktoré boli uvedené, aby zabezpečili, že cycle-- v podstate aplikácie vývojový cyklus, je v skutočnosti úspešný. Takže skutočnosť, že vaše aplikácie pracuje lokálne na vašom miestnom VM nezaručuje, že váš kolega bude očakávať rovnaké výsledky. A keď operácia tím podieľajú na prijímanie, čo máte a nasadenie vo výrobe stupnice, tiež neexistuje záruka, že to vlastne bude diať. Takže to nám zostáva naozaj big-- veľa otáznikov, veľa problémov v skutočnosti čelil podobne v dobách. A že nám pripomenul lodný priemysel. Takže sektore námornej dopravy mal veľa tovaru, ako môžete vidieť na ľavej strane. A na pravej strane, je tu veľa, v podstate, spôsoby, ako dopraviť tento tovar. A čo sa stane za pár ľudia zišli, povedal: Musíme štandardizovať ako sme vlastne loď tohto tovaru. A bum, máte intermodálne prepravný kontajner. Takže sa dohodli na najviac obyčajné veľkosti na obale. Ako s nimi pracovať. Čo Presný spôsob budete potrebovať ich nakládku a vykládku je. A preto, že skutočne pomohol sektore námornej dopravy. Teraz viac ako 90% zameranie prepravovať globálne sa pomocou týchto kontajnerov. A to rozhodne znižuje náklady, ako aj škody spôsobené prepravou. Takže budeme mať rovnaký model a my aplikovať dvoch app vývoja software architektúru, v tom zmysle, že kontajnerizácie vzal virtualizácia o jednu úroveň vyššie. Takže namiesto toho, robiť to na úrovni hardvéru, to stalo sa viac na prevádzkové Virtualizácia na úrovni systému. A my sme to urobiť tým, že poskytuje každý aplikácie v jeho vlastnej ľahký, izolovaný, spustiteľný, a prenosný, čo je najdôležitejšie, spôsob, ako skutočne balenie všetko, čo potrebuje na spustenie. Kdekoľvek to môže byť spustený. Takže, bez ohľadu na to, či vediete ju miestnej dev prostredie, vaše produkcie životné prostredie, váš staging alebo testovanie. Bez ohľadu na to, čo je základom infraštruktúra je tam, ste mali funkčné pracovné aplikácie. Tak to je presne to, čo v podstate kontajnery urobiť, aby sa týmto problémom. Oslovujú ju balenie to takým spôsobom, že môže zaručiť, že je to rozmiestnené úspešne bez ohľadu na to kde to žije. Takže ak sa chystáte ako Bob je stále v poriadku. Ak ste zmätení, čo hovorím, Budem sa rozvádza, že. Tak ako sa Docker sám fit na tomto obrázku? Takže Docker je otvorená platforma ľahko, ľahko zdôrazniť, postaviť loď, bežať, ľahký prenosný seba dostatočné app kontajnery kdekoľvek. Takže ak budete mať niečo z toho rozprávať, berte nasledujúce. Ak máte vaše aplikácie beží lokálne a ty to vyvinula pri použití platformy prístavný robotník, očakávajte to, aby bol úspešne nasadený. Bez ohľadu na to, čo je základnej infraštruktúry. Takže ak máte Docker kontajner a to funguje, potom ako dlho ako tam je Docker motor na druhej side-- Ak váš prevádzku infraštruktúry je pomocou ľubovoľného Cloud, či to je AWS, alebo spoločnosti Google, alebo Microsoft, alebo niektorý z verejných cloudov, alebo vlastné Cloud, alebo Váš otvorený stack Cloud, alebo na miestne prostredie. Ak máte motor beh, to znamená to bude Úspešne tam nasadený. Bude to byť spustený presne rovnaké správanie ako ste ju architektúrou byť. Takže ak sa pozrieme at-- Jedu prejsť tým, čím v skutočnosti sú v hlavných zložiek Docker. Takže motor je jadrom Docker. Je to v mozgu. To inštrumentom budova, prepravu, a nasadenie a správu samotné kontajnery. Budem kopať do toho, čo robí Engine v ďalšie podrobnosti v druhom. V podstate, pretože doktor bol postavený okolo architektúry klient-server, tak, aby sa vzájomne ovplyvňovať s Engine budete potrebovať nejaký klienta. Snímky sú šablóny vo , Ktoré sú postavené z nádoby. Takže obrazy sú v zásade len statické súbory. Šablóny a kontajnery je vlastne to, čo je beží za behu, ktoré slúži svoju aplikáciu alebo robiť niečo s dátami. Registre je určené ako problém Ako ste vlastne distribuovať obrázky. Takže ak potrebujete zdieľať snímku že ste pracovali na vašom kolegovi alebo k ops tím, budete použiť ho pomocou registra. Tu si môžete stiahnuť open source Verzia to, aby pracoval na Docker a otvorte zdrojov. Alebo môžete použiť prístavný robotník pomôcť, čo je verzia Cloud tlačiť a tam vytiahnuť obrazy von. To je obrovská vec. Pretože tam je obrovská ekosystém okolo Docker a to je naozaj ťažko využitím húb. Takže zhrnúť tu, je to, ako sa Minimalistický Docker workflow klienta. Komunikovať s hostiteľa, v v tomto prípade sú to démonmi prístavný robotník. Je to to isté ako Engine. Robíte príkazy, ako je Docker stavať, zatiahnite, beh. A motor sám ide a robí tie veci. Takže buď to ovplyvňuje sa s Registre vytiahnuť tie obrazy a vrstvy z obrázkov. Nech ak chcete nasadiť, spustite kontajnery, zabiť ich, hádzať ich dole, ktovie čo ešte. Takže to zhŕňa pracovný postup všetkých týchto zložiek. Takže ak budete mať každý zložka sama o sebe. Takže Engine, je to len démon. Bude to trochu zahrať na podporu to na Linuxe, pretože to robí vyžadujú určité funkcie jadra systému Linux. Ale Windows pracuje o robí to isté. Je to má byť podporovaná Windows Server 2016. Takže, znovu, zodpovednosti s motor, alebo sú, budovať obraz. Vytiahnite snímok z Docker Húb alebo vlastný register. Ak ste urobil s tými obrazmi alebo si vytvoriť nové obrázky, môžete tlačiť, späť do registra je distribuovať do iných tímov. A snaží sa ho obsahujú lokálne a riadiť kontajnery životný cyklus lokálne. Je postavený okolo HTTP REST API. Takže technicky môžete napísať svoj vlastný klient tak dlho, ako to používa HTTP, čo je veľmi štandardný mechanizmus, hovoriť s Engine a mnoho ďalších služieb. A môžete vidieť z tu, že bez ohľadu toho, čo infraštruktúry je, ako dlho budete can-- všetky čo potrebujete, je prevádzková systém, Linux konkrétne. A môžete nainštalovať Docker Engine Na vrchole, že a majú to beží a to inštrumentom, v podstate, všetky tieto app jeden, dva, a tri sú skutočné kontajnery. Tak to je motor. Ako som už spomenul, pretože budete musieť komunikovať s motorom, tam je klient. Ale v skutočnosti pri inštalácii Docker, to dopraví s ním. Tak to sa inštaluje, tak je to jediné binárny. A vy môžete urobiť miestne hovory do svojho Docker Engine. Alebo na diaľkovom volania do vzdialených motorov. To používajú HTTP, as Som sa zmienil skôr. Je tu GUI klient nazvaný Kitematic z Docker. A tam sú určite kopa ďalších ľudí ktorí budujú veľa GUI, ktoré v podstate implementujú niektorí HTTP volanie hovoriť Engine. Len niektoré príkazy vzorky. Ak tak urobíte prístavný robotník verzii, bolo by to ukáže verziu klienta, rovnako ako verzia servera. Ak tak urobíte Docker informácie, že bude oznámiť všetky informácie, o tom, koľko kontajnerov beží alebo vytvorené, koľko obrázkov ste, a tak ďalej a tak ďalej. Tu mám, v vedľa posledné krabice, mám doktor beh. Tak to je, ako som vlastne vytvorenie kontajnera. A ja dávam do echo Hello World a spať druhej a ktovie čo ešte. A môžete vidieť výsledok. Takže je to prebieha. A podobne ako Linux ps, môžete vidieť všetky procesy a v tomto prípade, všetky bežiace kontajnery. Tahle sa odkazuje späť do kontajner som práve vytvorili. Takže, je to preto, že naozaj dôležité, ako je, to môže byť trochu mätúce. Takže obrázky sú len pre čítanie kolekcia súborov, že jo? Sú to, čo naše nádoba je založený na. Ale oni len pre čítanie len. Takže vám začať sa základný obraz. Má tendenciu napodobňovať OS-like, tak Ubuntu CentOS, čo ja viem základný obraz. A potom začnete stavať na vrchole že niektoré vrstvy, ktoré budú tvoriť váš koniec obraz, konečný výsledok tu. A každá z týchto vrstiev by mali mať materský image že odkazuje ak to v skutočnosti chce vytvoriť. Oni sú nemenné, v tom zmysle, že preto, že sú len pre čítanie, nemôžete vlastne v nich vykonávať zmeny. Môžete ich použiť na vytvorenie Nádoba z obrazu, ktorý zavolá všetky následné Požadované obrázky pod ním. Môžete vykonať zmeny do inej vrstvy, to je prepísanie vrstvy budem hovorí o v druhom. Avšak každý z týchto vrstiev sa nikdy nezmení. V podstate obrazy používať niečo volal Union súborový systém UFS. A tam sú rôzne skladovanie backends, ktoré využívajú túto technológiu. A čo to znamená, je to tak združuje rôzne systémy súborov , Aby vyzerali ako jeden. Takže môžete v skutočnosti, z hľadiska aplikácie, máte horný okraj pohľadu, ktorý ukazuje, Všetky rôzne súborový systém potrebný pre danú aplikáciu spustiť. Ale sú to v skutočnosti, na to, oni sú vlastne v oddelených miestach a sú využívané ostatné kontajnery rovnako. Takže ako môžete vidieť tu, že ak začneme s démon image ako základný obrázok a potom ideme a pridať [? emacs?] a potom je to ďalšia vrstva. A potom pridať Apache. To je ďalšia vrstva. A potom strávime Nádoba z toho. Každá z týchto obrazov, každej z týchto vrstiev, je odlišné a môže byť opätovne použiť iné nádoby. Keď sa pozriete na nádobách samotných, sú to nejako ako VM-like, ale nezachádza v rovnakom čase. Takže, nemajú, technicky, plná operačný systém pod nimi. Používajú jediné jadro hostiteľského operačného systému. A stavať na vrchole toho. Oni napodobniť v tom, ako vyzerajú. Oni napodobniť ich koreňový súbor Systém operačného systému. Ale v skutočnosti nie sú replikácie. Takže namiesto toho, že nemenné vrstiev, posledné vrstvy, čo je nádoba sám, je to čítanie a zápis vrstva. To tiež prevádzkuje procesy vašej žiadosti. A záleží na podkladových vrstiev. Každý kontajner vytvorený z obrazu. A to obraz môže byť jeden vrstva alebo viacvrstvové obrazu. A ja chcem poznamenať, že Docker silne využíva, alebo je založené na Copy-on-write mechanizmu. Tak, že v skutočnosti, ak si nie ste vykonávaním zmien v kontajneri, nie je to bude trvať viac priestoru. Tak to je v podstate, ako vás zhrnúť copy-on-write. Bude to určite urýchli čas topánka pre kontajner. Vzhľadom k tomu, ak si nie ste robiť zmeny v kontajneri, je to s využitím toho, čo už tam je. Tak, ako to vlastne funguje. Časť z toho je ako práve teraz, to využíva aspoň dvoch kľúčových jadro Vlastnosti. A to je to, čo v podstate vytvoril, že úroveň izolácie pre samotné nádoby. Tieto funkcie sú menné priestory a cgroups. Takže menné priestory sú spôsob, ako vytvárať izolované prostriedky, tak, že v rámci samotného kontajnera, len vy môžete vidieť niektoré zdroje. Ako napríklad sieťové rozhranie alebo sú niektorí užívatelia alebo ktovie čo ešte. A tie, ktoré sú viditeľné iba a len prístupné v rámci kontajnera. Cgroup na druhej strane limity ako používať tieto prostriedky. CPU, pamäť a disk. Kedy môžete ísť, myslím, znamenať, tie sú vlastne funkcie, ktoré boli vyvinuté by-- oni sú súčasťou linuxového jadra. Takže oni neboli znovuobjavil ani znovu podľa Docker. Docker je používa. To, čo doktor naozaj tu je vlastne to Orchestrated vytváranie menné priestory pre každej nádoby a vytvorenie cgroups tak, že je smiešne ľahké vytvoriť kontajnery používaním týchto funkcií. Samozrejme, ako som opísal vyššie, Union Súborové systémy a Copy-on-write opravdivo pomôcť rýchlosť a disk využitie kontajnerov. A akonáhle sa dostanete svoj ruky okolo Docker, budete vidieť, ako rýchlo to je vlastne roztočení nádoby a slzu je dole. Takže, ak ste sa pýtať, ako môže ste skutočne stavať obrázkov? Staviame snímok pomocou procesu vytvárania kontajnery a vykonávanie zmien, pozmeňovanie je, a jeho spáchanie aby sa stal obraz. Takže je to kura a referencie tu vajcia, pretože všetky kontajnery neprišli od obrazy a obrázky pochádzajú od spáchaných nádob, z väčšej časti. Existujú tri možnosti vytvárať obrazy. Budem popisovať prvý a posledný. Môžete buď ručne ísť a spustiť kontajner a aby tieto zmeny, ako by ste urobili na akomkoľvek VM alebo akýkoľvek operačný systém, ako je napríklad inštalácia novej binárky, pridávanie súborové systémy, a ktovie čo ešte. A potom ukončenie, as vidíte tam. Som ukončenie svoju nádobu. A potom robím Docker spáchať. A ja, že spáchať. Môžete vidieť, že číslo tu je len UUID, alebo prvý 12 bity UUID. Alebo bytov UUID. A potom som volať to môj obraz. Takže teraz Docker stará o nahrávanie všetko, čo som to urobil a vytvorenie nového obraz založený na tom. Nebudem hovoriť o archíve, ale existuje spôsob, ako môžete získať jeden, vytvoriť jednotný, alebo si jeden vrstva obrazu pomocou tarbally. To, čo budem o tom hovoriť a čo je väčšinou používaný dnes, je Dockerfile. Čo je technicky prvý krok automatizovaný Docker sám. Takže Dockerfiles sú veci, ktoré vám nablízku uvidí v mnohých GitHub repo operácie dnes. Je to v podstate len textový súbor popisujúci presne tak, ako vybudovať image. A pre každú linku, je v skutočnosti vytvára nádoba, spustí tento riadok, zaväzuje, že kontajner na A Nový list, a tie, v podstate, ju použiť pre všetky následné operácie až sa dostanete na poslednú snímku. Čo je v podstate konečný cieľ tu, koniec. A potom, čo ste exec-- po vás napísať svoj Dockerfile, ktorý je čisto v texte, robíte Docker budovať a názov obrazu. A ukážete na to, že je kde Dockerfile je. A môžete očakávať, že môj obraz ako obrázok, že máte lokálne. Tak to je len vizuálne príkladom toho, čo sa deje. Začnete sa základná obraz. Spustením že do kontajnera, ktorý nemení základné obraz sám. Ale namiesto toho vytvorí prepísať vrstvy na vrchole toho kde vykonať zmeny, v ktorom sa zaviazať a proces opakovať, kým sa dostanete do konečného obrazu. A tým, že robí tak, každý druhý build proces môže používať rovnaké vrstvy a v podstate same-- Docker ukladá tie vrstvy. Takže, keď robím to isté presný proces, ale namiesto inštalácie PHP, Som inštalovať Python. Bude to používať Apache a Ubuntu. Takže týmto spôsobom ste s využitím disku. Je to s využitím cache a dostupné obrazy tam. Posledným kúskom je register, ktorý je, ako si distribuovať obrázky. A ako som už spomenul, je tu Cloud verziu toho, čo je Docker Hub. Môžete ísť a preskúmať veľa, v podstate je to verejná výrobok, ktorý SAS môžete stále majú vlastné obrazy, ale je tu veľa verejných snímok. Je to vlastne neobmedzené, môžete tlačiť tam neobmedzené verejnej snímok. A to je to, ako môžete spolupracovať so svojím tímom. Stačí si len nasmerovať ich na vás repo a oni si ho stiahnuť alebo na disk a oni si ho stiahnuť. Tak dosť s hovoriť. Kto chce vidieť nejaké demá naozaj rýchlo? Dobre. Tak tu mám. Ca vy vidieť mojej obrazovke? Dobre. Takže mám Docker beží tu, tak som sa môžete zistiť it's-- Toto je verzia z Docker, že beží. Môže robiť Docker info. Skontrolujte, či všetky informácie o tom, koľko obrázky majú, a tak ďalej a tak ďalej. Docker PS, nič beh. Zreťazené ty. Takže prvá vec, ktorú chcem urobiť, je ukázať vám, ako si môžete ľahko spustiť kontajner. Takže o krásu Doktor spustiť, ak je to vlastne nenájde obraz lokálne, V predvolenom nastavení sa hovorí s doktorom Hub a snaží sa ju tam nájsť a sťahovanie za vás. Takže to zahŕňa prístavný robotník vytiahnuť príkaz, prirodzene. Takže keď som urobiť Docker run, ahoj-svet. Takže, najprv to ide pokúsiť sa nájsť. Inak, ako si môžete pozrieť tu, nemohol ho nájsť na mieste. Práve teraz to len vytiahol dve vrstvy že urobil ten obraz a bežal som to. Hello-svet je v podstate len výstupy, čo ste urobili. Tak to je najjednoduchšie, jeden najjednoduchšie príklady. Takže vlastne som len bežal a ukončené kontajner naozaj rýchlo. Ak chcem run-- a mimochodom, ak je Chcem času, že rovnako tak viete, To je, ako dlho trvá skutočne roztočí a obsahujú ju. Sme merania ju v milisekundách. Takže môžete vidieť, ako veľmi to môže skutočne pomôže nielen pri testovaní, ale tiež aj nasadenie. Takže to je krátka poznámka na to. Ďalšia vec, ktorú som si chystá urobiť, je vlastne spustiť obraz už som pripravený. Takže Ukotviteľné panelu beh. -d je len príznak povedať to bežať na pozadí. A -p ukladá určité porty. Pretože v predvolenom nastavení, Kontajnery sú izolované, takže budete musieť presne špecifikovať ako sa k nim mali prístup. A v tomto prípade, hovorím Docker mapovať náhodné portu na hostiteľskom do určeného prístavu v nádoba sama o sebe. A to je v podstate, kde sa image-- dúfajme, že to je ten pravý. Tak to robí každý paralelných sťahovaní z týchto vrstiev, ako môžete vidieť tu. Tí, ktorí sú z vrstvy tvorby Koniec obraz, ktorý som postavil. Bude to trvať chvíľu. A ajhľa. Takže teraz, keď mám robiť prístavný robotník ps, mal by som vidieť niečo, čo je spustený. Mal by som vidieť identifikátor, obraz že toto bol založený preč, a príkaz, ktorý bol popravený. A ako sa k nim dostať, je v podstate idete k tomuto portu. Takže ja idem to-- to je Bežím to na AWS. Chystám sa ísť do 32769. Oops. A je to tu. Takže to je vlastne len webová služba, ktorá ukazuje, ktorý kontajner je to sa podáva od. Takže môžete vidieť, že to je z kontajnera a9f. A tu to je názov kontajnera. Takže vy môžete vidieť, ako rýchlo bolo v skutočnosti nielen ťahať, ale tiež nasadiť tento kontajner. Teraz je ďalším krokom k pozrite sa do Dockerfiles a ako môžeme vlastne stavať nové obrázky. Ja som jednoducho ísť dostať klon, je výberovým Dockerfile na základe skôr diagram, tým, kto Apache a PHP. Dúfajme, že si pamätám svoju repo. Takže mám repozitár práve teraz. A vy budete vidieť to veľa skutočne. Nechcel som nainštalovať strom. Takže v podstate budete vidieť, ako dokumentácia zdrojového kódu okolo to, a potom na Dockerfile ako sa vlastne zabaliť. Takže je to len ukážka PHP že odráža ahoj CS50. Takže ak chcem, aby ho spustiť, Urobím Docker zostavenie. Musím ju najprv vytvoriť. Chystám sa volať to demo_cs50. A budete potrebovať tag to taky. Takže hovorme ju V1 dot. Tak ako som opísal vyššie, čo robím dnes Je hovorím Docker ísť využívanie that-- skutočnosti, sorry, my bad. Nechceli sme sa pozrieť na samotnom Dockerfile. Takže jediné, čo v tú sú index.php, ako aj súboru readme a Dockerfile. Takže ak ste sa pozrieť na Dockerfile, takže je to veľmi podobné tomu, čo Som opísal vyššie. Je to len banda kroky, ktoré vykonáva Docker vytvorením a strhávať kontajnery a [? počítanie?] je do obrazu. A v podstate môžete see-- [nepočuteľný] ju here-- ale to je z miestneho repo. Bude to ísť a urvat index.php. Tak to je jediný zdrojový kód, ktorý sú vlastne súčasťou vašej žiadosti. To všetko sú v podstate systém inštalatérske prevádzkové, Získanie správnej balíčky a Apache, PHP a, a ktovie čo ešte. Ale to je vlastne brať index.php a spáchanie ju do nádoby, do obrazu. Takže ak budete pokračovať a spustite Príkaz pomocou nasledujúceho postupu, to je vlastne going--, to môže trvať trochu. Dúfajme, že to nebude trvať príliš dlho. Takže môžete vidieť kroky. A ja Odporúčame vám ísť domov dnes a skúste to. A Mano bude popisovať ako presne to urobiť. Ale je to naozaj skvelé vidieť presne čo sa deje v zákulisí. Ale je to smiešne jednoduché vybudovať obrazy a nasadiť pomocou prístavný robotník. Je to brať trochu dlhšie, než som čakal. Pozrime sa, čo sa stane, keď vás-- vychladnúť. Takže ako vidíte, každý z týchto krokov predstavujú riadky v Dockerfile. A je to tu, že to ukazuje, úspešne postavený tento obrázok. Takže keď to urobím prístavný robotník obrázky, budem zobraziť všetky obrázky, ktoré mám na mieste. A jeden z nich sa volá môj užívateľské meno a názov obrázku, a tag representing-- hlavne je to tag verzia. Takže teraz, keď chcem spustiť to, robím prístavný robotník beh. A chcem urobiť -d -P. Urob v1. Tak vidím, že teraz mám dva kontajnery beh, ten, ktorý som práve vytvorená a ahoj Docker ten, ktorý som dostal ako posledný. A môžete vidieť tu, že to pridelený to iný port. Takže keď som sa ísť na rovnakej IP, ale priradiť iný port-- dúfam, že som to neurobil. Takže teraz je to aplikácia že som práve nasadený. Ak chcem, aby sa zmeny, ja môže rýchlo upraviť zdrojový kód a vykonajte nasledujúce. Poďme robiť ahoj Harvarde. Takže teraz, čo sa deje sa stane je, že som bude tag to s iný version-- oh, Nie je to guy-- označiť ho s inou verziou. A vy budete see-- si chlapci očakávať to, aby sa rovnaké množstvo času vybudovať z neho druhýkrát, alebo nie? Dobre, a kto vie, prečo? Hovoriť nahlas. Divákov: [Nepočuteľné] NICOLA Kabar: Je to v podstate sme zmeniť len jeden z ďalších krokoch. A preto, že to bude používať vyrovnávacia pamäť a použitie každej z týchto vrstiev. A to je skutočne niektoré z killer rysy Docker je, ako je to v skutočnosti využíva a znovu použije prevzatia váš disk pre rovnaký Presné kusy informácií. Takže ak budeme robiť to isté, to trvalo len pár sekúnd. Ak chceme, aby redeploy-- takže teraz Mal som tri kontajnery. Ale tento je byť podávané na the-- Seven One. Takže teraz je to tretí kontajner. Všetci pochopili to, čo som tu práve urobil? Takže teraz, ak chcete zdieľať tento kontajner naozaj rýchlo so svojimi priateľmi, môžete len urobiť prístavný robotník tlačiť názov kontajnera, dúfajme. Tak teraz to bude tlačiť to-- Nie som podpísal tu. Ospravedlňujem sa za to. Ale ja nebudem riešiť to teraz. Ale v podstate, že jeden príkaz je jednoducho ísť hore tlačiť ju. A vy budete mať možnosť vidieť, že ak idete na Docker Hub A sa prihlásite, budete Bude možné ju vidieť. A potom stačí bod ten, kto sa chystá používať tento záber, ktorý chcete ísť a vytiahnite ju. A môžu používať. S tým, dúfajme Tak nejako som demonštroval ako ľahké je pracovať s Docker. A ja som jednoducho ísť vráti ho Mano. A že to bude trvať ho odtiaľto. MANO ZNAČKY: Dobre vďaka, vďaka Nico. No a čo? Takže jedna z vecí, ktoré som chcel urobiť, je dať dohromady Prečo je to DÔLEŽITÉ Prečo Docker a prečo nádoby sú také dôležitý nový vývoj, nový spôsob, ako skutočne robí softvér. A skôr než ja, budem len predstaviť niekoľko štatistiky. Nebudem čítať všetky z nich. Ale to vám ukáže veľa o tom, ako Populárny je to v komunite. Medzi kľúčové technológie Docker sú open source. Tak to je Docker Engine, komponovať, Swarm, veľa ďalších vecí všetko je open source. A my máme, čo som hovoria, 1300 prispievateľov. Vidíte teraz, keď sa pozriete na Počet voľných pracovných miest, v poslednej dobe sme sa pozreli, to bolo asi 43.000 pracovných miest otvory výslovné zmienky oboznámenosť s Docker. Stovky miliónov snímok majú bol stiahnutý z Docker Hub. A, no, oveľa viac veľkých štatistiky. Pre tých, ktorí sú zvedaví, to bol pôvodne napísaný v Pythone a potom prepísať do Go. A je to len otvoriť source-- je to len bolo prepustených asi 2 a 1/2 roky, čo znamená, že v 2 a 1/2 roky, sme videli obrovské množstvo rastu a významu z toho v komunite. A tak chcem hovoriť trochu o tom, prečo. Takže len zopakovať niektoré z Kľúčové body Nico je, Docker je veľmi jednoduché. Je to prenosný. Je reprodukovateľné. A to nastaví štandardné prostredie. A what-- toto je môj mizerný vykoreniť monolity slide-- čo to pomáha ľuďom robiť, čo veľa softvérového priemyslu začal robiť v čoskoro 2000s, sa sťahuje od týchto monolitické jednotlivé aplikácie kde každý závislosť musel byť testované pred celá app mal ktoré majú byť použité, čo by mohlo znamenať webové stránky dostal len raz nasadený každé tri mesiace, alebo viac, na oveľa viac služieb orientovaná architektúra alebo komponentizované iný typ z aplikačnej architektúry. A tak vďaka týmto druh architektúry že využiť Docker spustiť v týchto troch Hlavné oblasti rozvoja, ktoré je vývoj písanie skutočný kód, testovanie kódu, a jej zavedenie. Tak prečo je to dôležité? Ak ste je-- dovoľte mi uviesť príklad. Ste-li webovej stránky zariadení vývojár, že ste vyvíjať webové stránky, ktoré je založené na databázy, ktorá David vyrobených cez tu. Sorry David, ja volám vás. Ak by ste chceli nasadiť celá tá vec, mali by ste čakať v tradičnej monolitické vývoj software prostredie, by ste museli počkať než bol hotový s databázou než by ste mohli skutočne urobiť všetky zmeny na vašich webových stránkach. Musel by ste znovu nasadiť Celá aplikácia, aby tak urobili. A čo Docker vám pomôže urobiť, je každý osoba pracovať na rôznych komponentov a aktualizovať je, ako idú, len robiť istí, že rozhranie zostanú rovnaké. Takže to, čo to urobil Je to posunutý ľudí od toho, tieto masívne monolitické architected softvér, ktorý nasadené každý mesiac pre kontinuálne integrácie a neustály vývoj prostredie. Teraz to nie je jedinečné Docker, ale Docker robí to tak oveľa jednoduchšie, čo znamená, že ste v podstate Neustále nasadenie. Hovoríme s podnikmi, ktoré sú nasadenie aplikácií verejných čelí tisíce krát denne, pretože vidí hodnotu len robiť malé zmeny, a tak dlho, ako to prejde test, nechať to ísť von do výroby. Nico sa mi vždy hovoril skôr, že v mnohých prostrediach, štandardný životný cyklus Nádoba sa meria v sekundách, vzhľadom k tomu, virtuálny stroj môže byť meraná v mesiacoch. Chcel som, aby sa mierne obrátiť tu preto, že som vo vzdelávacej inštitúcii. Chcel som dať príklad toho, ako to funguje v pedagogickom výskume situácie. Takže je tu organizácia tzv bioboxes. Bioboxes robí DNA Analýza pre výskumných pracovníkov. A teraz, čo zistili, bolo, že keď researcher-- a to nie je chyba niektoré konkrétne researcher-- ale keď výskumník nasadený algoritmus pre analýzu, V konkrétnom spôsobom, vzorku DNA, by písať softvér, zverejňujeme, že možno na GitHub alebo niekde inde, a potom skončili. No problém bol, že to nemusel byť reprodukovateľné. Vzhľadom k tomu, aby sa pochopiť softvér, oni by byť zriadený pre Presný vývojové prostredie že výskumný pracovník používa, zvyčajne ich notebook, alebo server, alebo dátový centrum, ktoré oni používali. A v dôsledku toho bolo veľmi ťažké reprodukovať výsledkov výskumu, kedy analýzy vzoriek DNA sa pozrieť na veci, ako je incidence-- porovnať výskyt infarktov na základe určitých génov, k čomu napríklad, alebo riziko rakoviny, alebo ktorúkoľvek ďalšie druhy vecí. Takže to, čo oni robili namiesto toho bol začali vytvárať kontajnery. A môžete ísť na bioboxes.org, je to skvelá organizácia. A to, čo robia, je, že produkujú kontajnery na základe výskumu. A potom, keď niekto pošle v ich vzorke, môžu spustiť. A to má všetky životné prostredie potrebné na spustenie tohto algoritmu a produkovať výsledky. A oni sú zistenia, že sú oveľa pravdepodobnejšie a veľa rýchlejšie schopný vráti výsledky pre ľudí. A v skutočnosti to, čo ľudia robia beží vlastnú analýzu DNA, posielanie, že k bioboxes, a potom biobox jednoducho trvá dáta, spustí ho proti odrody z rôznych kontajnerov vidieť rôzne výsledky na základe rozdielneho výskumu. Takže je to veľmi silný spôsob, v ktorom sa vedci môže urobiť jednu inštanciu, ktorá umožňuje iní ľudia, aby sa pokúsila reprodukovať výsledky. Tak ako sa vám začať? Sme si dobre podporované na Linuxe. Takže ak chcete nainštalovať čokoľvek na Linuxe, budete používať štandardné správca balíkov na inštaláciu. Ak používate Debian, je to apt get. CentOS je yum. Fedora Red Hat je rpm-- Nespomínam si. Každopádne je to všetko tam. Podporujeme širokú škálu linuxových distribúcií. Môžete skontrolovať tie von. Máme tiež možnosti, aby vás mohol bežať na Mac alebo Windows. Teraz Nico zmienil, že to bolo podporované len v systéme Linux. To je pravda, pretože to potrebuje linuxové jadro. Ale, môžete spustiť vo virtuálnom stroji. A čo Docker Toolbox áno, ktorý si môžete stiahnuť, to vám dáva ten virtuálny stroj. Takže len rýchly 48 Druhá, myslím, stiahnuť. Práve ste hľadať na Docker Toolbox, stiahnite si ho do počítača Mac, a táto časť je z Samozrejme zrýchlil pretože kto chce sa pozerať na sťahovanie signál? Štandardná inštalácia Mac, a potom ste uvidí Jerome dať svojim heslom. To je veľmi vzrušujúce. A potom sa to nainštaluje celý rad nástrojov. A práve to bude Inštalácia z príkazového riadku. A potom ste mohli vidieť Jerome testovanie jeho obrazy. A potom sa na základe toho, môžete vidieť, že YouTube si myslí, že Nico je záujem Star Wars, Jimmy Kimmel show, a myslím, že Ellen. Myslím, že to posledné je klip z Ellen show. Takže keď príde Docker Toolbox s viac než len Docker Machine. Takže Docker Machine vec, ktorá pomáha môžete nastaviť virtuálnu Stroj na systéme Windows alebo Mac-- účtu Windows schránku alebo váš Mac box-- a pomáha vám robiť opravných položiek, Ale je to tiež prichádza s Swarm a Compose, ktoré sú navrhnuté tak, aby vám pomôže urobiť veľký meradle nasadenie vašej aplikácie. Takže ak chcete spravovať zhluky uzlov, zhluky kontajnerov, komponovať a Swarm sú spôsob, ako ísť o tom. A samozrejme, že prichádza s Docker Motor a Kitematic, čo je to desktop GUI. Mal by som tiež spomenúť prístavný robotník registra, ktorá nie je zahrnutá do panelu, ale je to spôsob, ako môžete spustiť svoj vlastný registrov Docker obrázky ako Docker Húb, ale môžete tiež stačí použiť Docker Hub ako spôsob, ako to urobiť. A, sprisahanecké krútenie, vidíte to beží v kontajneri. A to je, ako sme distribúciu našich snímok. Celá táto prezentácia je vlastne HTML slide deck. A to je spustená v kontajner, ktorý môžete získať by-- NICOLA Kabar: Áno, tak to je beží na plný úväzok na mojom Max. A ja prezentáciu z nej. A to práve urobil Docker po inštalujete Toolbox. Stačí si len urobiť prístavný robotník beh a dostať to, a používať snímky. MANO ZNAČKY: A to je všetko. Tak sme vám všetkým poďakovať za účasť. A my sme radi, aby odpovedali na otázky. Mal by som spomenúť, ako ktokoľvek listy sú tričká tam. Ospravedlňujeme sa niekto, kto sa pozerá to na Livestream alebo video, ale máme Docker tričká tam. A my vieme, prístavný robotník študenti, a podľa mojich skúseností, profesori tiež, rovnako ako voľné oblečenie. Takže ďakujem vám všetkým za coming out. A Sledujte nás na Twitteri ak chcete, alebo nie. Nezaujíma ma. Tiež sledovať Docker na Twitteri. To je tiež zaujímavé. A potom to je všetko. Docker.com. Ďakujem. [APPLAUSE]