[Přehrávání hudby] DAVID Malan: Dobře. Mockrát vám děkuji za účast. To je CS50 seminář na Docker, A technologie, že my sami a CS50 začali používat delší dobu. Takže moje jméno je David Malan, já vyučovat Harvardu Úvod do informatiky. Pro docela několik let, jsme se dává studentům ke stažení na straně klienta virtuální stroje na kterém oni dělají své problémy sety. To, že jsme nyní přešli do prostředí Cloud že ve skutečnosti používá tuto technologii volal Docker, tak, že všechny CS50 Studenti mají nyní vlastní Docker kontejnery že budete brzy uslyšíte vše kolem. Navíc, na serveru CS50 je side clusteru, po mnoho let jsme používali cloud serveru Amazon. Běželi jsme individuální virtuální stroje. I to, že jsme začali přechod na tyto věci tzv Docker kontejnery tak, aby všechny z našich aplikací jsou nyní dokonale oddělit jedna od druhé. Takže pro a ještě mnohem víc, dovolte mi, abych představit naše přátele, Nico a Mano, z Docker samotné. NICOLA Kabar: Díky, David. Ahoj všichni. Jmenuji se Nico a to je Mano. Jsme z Docker. Budeme mluvit about-- která vám kluci intro k Docker, a doufejme, že ke konci tohoto rozhovoru si můžete uvědomit, kolik si můžete pomocí lékaře, oxalát svou vývoj aplikací a nasazení. Takže, budeme začít real rychlá s nějakou informací o pozadí. Popište, co Docker je vše kolem. Jak to funguje? Jak je to architected? Budu dělat nějaké dema. A Mano bude popisuje, jak můžete použít Docker a dává vám konkrétní kroky jak můžete začít. Ocenil bych, pokud vy můžete držet off pro vaše dotazy ke konci. Tak bych mohl řešit ty, Otázky v celé prezentaci. Takže necháme nějaký čas ke konci pro dotazy. Takže stačí opravdu rychle, který má vlastně nikdy pracoval na Docker, rád hrál s ním? Skvělý. Bezva. Skvělý. Takže, jdu na začátek s nějakou historií. Takže zpátky v 90. letech a časném 2000s, v podstatě jak webové vývojáře, app vývojáři, když šli nasadit aplikace to bylo vázáno na holé železo. Byl to jeden server. Byla to jedna aplikace. Tradičně, příklad by to jako LAMP, kde jste vlastně měli k vyvolejte bazénu zdrojů. CPU, paměť, disk, síť, instalace operační systém na vrcholu to. Pokud budeme podávat něco, je-li jste skutečně mít webový server, budete potřebovat něco jako Apache ji sloužit. Pokud vaše aplikace potřebuje databáze, bekhend, byste nainstalovat něco jako je MySQL, a tak dále. A pokud budete potřebovat čas běhu, PHPs PHP a Python pracovat tam byli. A tak jsme vlastně museli aby tyto kroky v pořadí dostat své aplikace a běží. Máte-li zapotřebí více výpočetní výkon vás, v podstatě musel zavolat své Ops chlap nebo gal jít a dát dohromady nový kus hardwaru, připojte jej, a vy budete muset opakovat těm procesy znovu a znovu. Tak byl tento proces relativně drahé. Byl určitě velmi pomalé. To bylo neefektivní. A v mnoha případech, vaše hardware byl nevyužité. Takže, na konci 90. let a brzy 2000s, virtualizace hardwaru narazil. A jak můžete vidět zde v obrázek, v podstatě to, co udělali je získávána kaluž volné hardwarové prostředky a druh sloužil těch, do vyšších vrstev, v tomto případě, host operační systém. A celá myšlenka virtuální stroje narazil a že skutečně pomohl Cloud computing, jak ji známe dnes. Takže, co to znamená je, může běžet více VM, který znamenalo více komíny, více aplikace na stejném fyzickém stroji. To rozhodně pomohlo s rychlost nasazení aplikací. Rozhodně s náklady. Nemusíte jít a strávit energie, času a prostředků do racku více serverů se dostat do další vypočtěte. A rychlost skutečně přinášet Tyto zdroje up je mnohem rychlejší. Skvělý. Tak jsme vyřešili hlad ve světě, ne? Ne, fakt ne. Takže, virtualizace, stejně jako je to vlastně pomohl, řešení problému, ve skutečnosti zaveden hodně problémů. Hypervisor rozhodně představil hodně složitosti, manipulaci jsou základem pool zdrojů. Je to těžší v tom smyslu, že před jsi měl jediný operační systém, který je jako tři, čtyři koncerty na disku. Nyní, pokud máte 10 strojů na jednom hardwaru musíte násobit, že počtem strojů. Je to určitě více drahé v jistém smyslu stále se dostat na licencování virtualizační technologie pokud to není open source. Ale pojďme nebere všechny úvěr od virtualizace. Vzhledem k tomu, co se stalo, je tu Mnoho stohů a spoustu softwaru technologie, které byly povoleny podle toho, jak rychle jste schopni se dostat ke zdrojům s Cloud boom. Takže, dnes jediná aplikace nebo služba může používat některou z následujících runtimes nebo databáze. PHP, Python, MySQL, Redis, co já vím. Takže je tu spousta složitosti na toto téma počet hromádek skutečně vychovávat jediná služba. A spolu s tím, jste měli hodně podkladové zdroje nebo infrastruktura typy otestovat Deploy av podstatě trvat na produkci tyto aplikace že jste rozvíjí. Zejména, jak vaše týmy mají pěstované pracuje na těch aplikací, tam je hodně složitost a výzvy , které byly uvedeny, aby zajistily, že cycle-- v podstatě aplikace vývojový cyklus, je ve skutečnosti úspěšný. Takže skutečnost, že vaše aplikace pracuje lokálně na vašem místním VM nezaručuje, že váš kolega bude očekávat stejné výsledky. A když operace tým podílejí na přijímání, co máte a nasazení ve výrobě stupnice, také neexistuje záruka, že to vlastně bude dít. Takže to nám zbývá opravdu big-- spoustu otazníků, hodně problémů ve skutečnosti čelil podobně v dobách. A že nám připomněl lodní průmysl. Takže odvětví námořní dopravy měl hodně zboží, jak můžete vidět na levé straně. A na pravé straně, je tu spousta, v podstatě, způsoby, jak dopravit toto zboží. A co se stane za pár lidé sešli, řekl: Musíme standardizovat jak jsme vlastně loď tohoto zboží. A bum, máte intermodální přepravní kontejner. Takže se dohodli na nejvíce obyčejné velikosti na obalu. Jak s nimi pracovat. Co Přesný způsob budete potřebovat jejich nakládku a vykládku je. A proto, že skutečně pomohl odvětví námořní dopravy. Nyní více než 90% zaměření přepravovat globálně se pomocí těchto kontejnerů. A to rozhodně snižuje náklady, jakož i škody způsobené přepravou. Takže budeme mít stejný model a my aplikovat dvou app vývoje software architekturu, v tom smyslu, že kontejnerizace vzal virtualizace o jednu úroveň výše. Takže místo toho, dělat to na úrovni hardwaru, to stalo se více na provozní Virtualizace na úrovni systému. A my jsme to udělat tím, že poskytuje každý aplikace v jeho vlastní lehký, izolovaný, spustitelný, a přenosný, což je nejdůležitější, způsob, jak skutečně balení vše, co potřebuje ke spuštění. Kdekoliv to může být spuštěn. Takže, bez ohledu na to, zda vedete ji místní dev prostředí, vaše produkce životní prostředí, váš staging nebo testování. Bez ohledu na to, co je základem infrastruktura je tam, jste měli funkční pracovní aplikace. Tak to je přesně to, co v podstatě kontejnery udělat, aby se tímto problémem. Oslovují ji balení to takovým způsobem, že může zaručit, že je to rozmístěny úspěšně bez ohledu na to kde to žije. Takže pokud se chystáte jako Bob je stále v pořádku. Pokud jste zmateni, co říkám, Budu se rozvádí, že. Tak jak se Docker sám fit na tomto obrázku? Takže Docker je otevřená platforma snadno, lehce zdůraznit, postavit loď, běžet, lehký přenosný sebe dostatečné app kontejnery kdekoliv. Takže pokud budete mít něco z toho povídat, berte následující. Máte-li vaše aplikace běží místně a ty to vyvinula při použití platformy přístavní dělník, očekávejte to, aby byl úspěšně nasazen. Bez ohledu na to, co je základní infrastruktury. Takže pokud máte Docker kontejner a to funguje, pak jak dlouho jak tam je Docker motor na druhé side-- Pokud váš provoz infrastruktury je pomocí libovolného Cloud, zda to je AWS, nebo společnosti Google, nebo Microsoft, nebo některý z veřejných cloudů, nebo vlastní Cloud, nebo Váš otevřený stack Cloud, nebo na místní prostředí. Pokud máte motor běh, to znamená to bude Úspěšně tam nasazen. Bude to být spuštěn přesně stejné chování jak jste ji architekturou být. Takže pokud se podíváme at-- Jedu projít tím, čím ve skutečnosti jsou v hlavních složek Docker. Takže motor je jádrem Docker. Je to v mozku. To instrumentuje budova, přepravu, a nasazení a správu samotné kontejnery. Budu kopat do toho, co dělá Engine v další podrobnosti v druhém. V podstatě, protože doktor byl postaven kolem architektury klient-server, tak, aby se vzájemně ovlivňovat s Engine budete potřebovat nějaký klienta. Snímky jsou šablony ve , které jsou postaveny z nádoby. Takže obrazy jsou v zásadě jen statické soubory. Šablony a kontejnery je vlastně to, co je běží za běhu, které slouží svou aplikaci nebo dělat něco s daty. Registry je určeno jako problém Jak jste vlastně distribuovat obrázky. Takže pokud potřebujete sdílet snímek že jste pracovali na vašem kolegovi nebo k ops tým, budete použít jej pomocí registru. Zde si můžete stáhnout open source Verze to, aby pracoval na Docker a otevřete zdrojů. Nebo můžete použít přístavní dělník pomoci, což je verze Cloud tlačit a tam vytáhnout obrazy ven. To je obrovská věc. Protože tam je obrovská ekosystém kolem Docker a to je opravdu těžce využitím hub. Takže shrnout tady, je to, jak se Minimalistický Docker workflow klienta. Komunikovat s hostitele, v v tomto případě jsou to démony přístavní dělník. Je to totéž jako Engine. Děláte příkazy, jako je Docker stavět, zatáhněte, běh. A motor sám jde a dělá ty věci. Takže buď to ovlivňuje se s Registry vytáhnout ty obrazy a vrstvy z obrázků. Ať pokud chcete nasadit, spusťte kontejnery, zabít je, házet je dolů, kdoví co ještě. Takže to shrnuje pracovní postup všech těchto složek. Takže pokud budete mít každý složka sama o sobě. Takže Engine, je to jen démon. Bude to trochu zahrát na podporu to na Linuxu, protože to dělá vyžadují určité funkce jádra systému Linux. Ale Windows pracuje o dělá to samé. Je to má být podporována Windows Server 2016. Takže, znovu, odpovědnosti s motor, nebo jsou, budovat obraz. Vytáhněte snímků z Docker Hub nebo vlastní registr. Pokud jste udělal s těmi obrazy nebo si vytvořit nové obrázky, můžete tlačit, zpátky do registru je distribuovat do jiných týmů. A snaží se jej obsahují místně a řídit kontejnery životní cyklus lokálně. Je postaven kolem HTTP REST API. Takže technicky můžete napsat svůj vlastní klient tak dlouho, jak to používá HTTP, což je velmi standardní mechanismus, mluvit s Engine a mnoho dalších služeb. A můžete vidět z zde, že bez ohledu toho, co infrastruktury je, jak dlouho budete can-- všechny co potřebujete, je provozní systém, Linux konkrétně. A můžete nainstalovat Docker Engine Na vrcholu, že a mají to běží a to instrumentuje, v podstatě, všechny tyto app jeden, dva, a tři jsou skutečné kontejnery. Tak to je motor. Jak jsem již zmínil, protože budete muset komunikovat s motorem, tam je klient. Ale ve skutečnosti při instalaci Docker, to dopraví s ním. Tak to se instaluje, tak je to jediné binární. A vy můžete udělat místní hovory do svého Docker Engine. Nebo na dálkovém volání do vzdálených motorů. To používají HTTP, as Jsem se zmínil dříve. Je tu GUI klient nazvaný Kitematic z Docker. A tam jsou určitě spousta dalších lidí kteří budují hodně GUI, které v podstatě implementují někteří HTTP volání mluvit Engine. Jen některé příkazy vzorku. Pokud tak učiníte přístavní dělník verzi, bylo by to ukáže verzi klienta, stejně jako verze serveru. Pokud tak učiníte Docker informace, že bude sdělit všechny informace, o tom, kolik kontejnerů běží nebo vytvořené, kolik obrázků jste, a tak dále a tak dále. Tady mám, v vedle poslední krabice, mám doktor běh. Tak to je, jak jsem vlastně vytvoření kontejneru. A já dávám do echo Hello World a spát druhé a kdoví co ještě. A můžete vidět výsledek. Takže je to probíhá. A podobně jako Linux ps, můžete vidět všechny procesy a v tomto případě, všechny běžící kontejnery. Tahle se odkazuje zpět do kontejner jsem právě vytvořili. Takže, je to proto, že opravdu důležité, jako je, to může být trochu matoucí. Takže obrázky jsou jen pro čtení kolekce souborů, že jo? Jsou to, co naše nádoba je založen na. Ale oni jen pro čtení pouze. Takže vám začít se základní obraz. Má tendenci napodobovat OS-like, tak Ubuntu CentOS, co já vím základní obraz. A pak začnete stavět na vrcholu že některé vrstvy, které budou tvořit váš konec obraz, konečný výsledek tady. A každá z těchto vrstev by měli mít mateřský image že odkazuje-li to ve skutečnosti chce vytvořit. Oni jsou neměnné, v tom smyslu, že proto, že jsou jen pro čtení, nemůžete vlastně v nich provádět změny. Můžete je použít k vytvoření Nádoba z obrazu, který zavolá všechny následné Požadované obrázky pod ním. Můžete provést změny do jiné vrstvy, to je přepsání vrstvy budu mluví o v druhém. Avšak každý z těchto vrstev se nikdy nezmění. V podstatě obrazy používat něco volal Union souborový systém UFS. A tam jsou různé skladování backends, které využívají tuto technologii. A co to znamená, je to tak sdružuje různé systémy souborů , aby vypadaly jako jeden. Takže můžete ve skutečnosti, z hlediska aplikace, máte horní okraj pohledu, který ukazuje, Všechny různé souborový systém potřebný pro danou aplikaci spustit. Ale jsou to ve skutečnosti, na to, oni jsou vlastně v oddělených místech a jsou využívány ostatní kontejnery stejně. Takže jak můžete vidět zde, že pokud začneme s démon image jako základní obrázek a potom jdeme a přidat [? emacs?] a pak je to další vrstva. A pak přidat Apache. To je další vrstva. A pak strávíme Nádoba z toho. Každá z těchto obrazů, každé z těchto vrstev, je odlišné a může být opětovně použít jiné nádoby. Když se podíváte na nádobách samotných, jsou to nějak jako VM-like, ale nezachází ve stejnou dobu. Takže, nemají, technicky, plná operační systém pod nimi. Používají jediné jádro hostitelského operačního systému. A stavět na vrcholu toho. Oni napodobit v tom, jak vypadají. Oni napodobit jejich kořenový soubor Systém operačního systému. Ale ve skutečnosti nejsou replikace. Takže namísto toho, že neměnné vrstev, poslední vrstvy, což je nádoba sám, je to čtení a zápis vrstva. To také provozuje procesy vaší žádosti. A záleží na podkladových vrstev. Každý kontejner vytvořen z obrazu. A to obraz může být jeden vrstva nebo vícevrstvé obrazu. A já chci poznamenat, že Docker silně využívá, nebo je založeno na Copy-on-write mechanismu. Tak, že ve skutečnosti, pokud si nejste prováděním změn v kontejneru, není to bude trvat více prostoru. Tak to je v podstatě, jak vás shrnout copy-on-write. Bude to určitě urychlí čas bota pro kontejner. Vzhledem k tomu, pokud si nejste dělat změny v kontejneru, je to s využitím toho, co už tam je. Tak, jak to vlastně funguje. Část z toho je jako právě teď, to využívá alespoň dvou klíčových jádro funkce. A to je to, co v podstatě vytvořil, že úroveň izolace pro samotné nádoby. Tyto funkce jsou jmenné prostory a cgroups. Takže jmenné prostory jsou způsob, jak vytvářet izolované prostředky, tak, že v rámci samotného kontejneru, jen vy můžete vidět některé zdroje. Jako například síťové rozhraní nebo jsou někteří uživatelé nebo kdoví co ještě. A ty, které jsou viditelné pouze a jen přístupné v rámci kontejneru. Cgroup na druhé straně limity jak používat tyto prostředky. CPU, paměť a disk. Kdy můžete jít, myslím, znamenat, ty jsou vlastně funkce, které byly vyvinuty by-- oni jsou součástí linuxového jádra. Takže oni nebyli znovuobjevil ani znovu podle Docker. Docker je používá. To, co doktor opravdu tady je vlastně to Orchestrated vytváření jmenné prostory pro každé nádoby a vytvoření cgroups tak, že je směšně snadné vytvořit kontejnery používáním těchto funkcí. Samozřejmě, jak jsem popsal výše, Union Souborové systémy a Copy-on-write opravdově pomoci rychlost a disk využití kontejnerů. A jakmile se dostanete svůj ruce kolem Docker, budete vidět, jak rychle to je vlastně roztočení nádoby a slzu je dolů. Takže, pokud jste se ptát, jak může jste skutečně stavět obrázků? Stavíme snímků pomocí procesu vytváření kontejnery a provádění změn, pozměňování je, a jeho spáchání aby se stal obraz. Takže je to kuře a reference zde vejce, protože všechny nádoby nepřijdou od obrazy a obrázky pocházejí od spáchaných nádob, z větší části. Existují tři možnosti vytvářet obrazy. Budu popisovat první a poslední. Můžete buď ručně jít a spustit kontejner a aby tyto změny, jako byste udělali na jakémkoliv VM nebo jakýkoliv operační systém, jako je například instalace nové binárky, přidávání souborové systémy, a kdoví co ještě. A pak ukončení, as vidíte tam. Jsem ukončení svou nádobu. A pak dělám Docker spáchat. A já, že spáchat. Můžete vidět, že číslo zde je jen UUID, nebo první 12 bity UUID. Nebo bytů UUID. A pak jsem volat to můj obraz. Takže teď Docker stará o nahrávání všechno, co jsem to udělal a vytvoření nového obraz založený na tom. Nebudu mluvit o archivu, ale existuje způsob, jak můžete získat jeden, vytvořit jednotný, nebo si jeden vrstva obrazu pomocí tarbally. To, co budu o tom mluvit a co je většinou používán dnes, je Dockerfile. Což je technicky první krok automatizován Docker sám. Takže Dockerfiles jsou věci, které vám nablízku uvidí v mnoha GitHub repo operace dnes. Je to v podstatě jen textový soubor popisující přesně tak, jak vybudovat image. A pro každou linku, je ve skutečnosti vytváří nádoba, spustí tento řádek, zavazuje, že kontejner na A Nový snímek, a ty, v podstatě, ji použít pro všechny následné operace až se dostanete na poslední snímek. Což je v podstatě konečný cíl tady, konec. A poté, co jste exec-- po vás napsat svůj Dockerfile, který je čistě v textu, děláte Docker budovat a název obrazu. A ukážete na to, že je kde Dockerfile je. A můžete očekávat, že můj obraz jako obrázek, že máte lokálně. Tak to je jen vizuální příkladem toho, co se děje. Začnete se základní obraz. Spuštěním že do kontejneru, který nemění základní obraz sám. Ale místo toho vytvoří přepsat vrstvy na vrcholu toho kde provést změny, ve kterém se zavázat a proces opakovat, dokud se dostanete do konečného obrazu. A tím, že dělá tak, každý druhý build proces může používat stejné vrstvy a v podstatě same-- Docker ukládá ty vrstvy. Takže, když dělám totéž přesný proces, ale namísto instalace PHP, Jsem instalovat Python. Bude to používat Apache a Ubuntu. Takže tímto způsobem jste s využitím disku. Je to s využitím cache a dostupné obrazy tam. Posledním kouskem je registr, který je, jak si distribuovat obrázky. A jak jsem již zmínil, je tu Cloud verzi toho, což je Docker Hub. Můžete jít a prozkoumat hodně, v podstatě je to veřejná výrobek, který SAS můžete stále mají vlastní obrazy, ale je tu spousta veřejných snímků. Je to vlastně neomezené, můžete tlačit tam neomezené veřejné snímků. A to je to, jak můžete spolupracovat se svým týmem. Stačí si jen nasměrovat je na vás repo a oni si jej stáhnout nebo na disk a oni si jej stáhnout. Tak dost s mluvit. Kdo chce vidět nějaká dema opravdu rychle? Dobře. Tak tady mám. Ca vy vidět mé obrazovce? Dobře. Takže mám Docker běží tady, tak jsem se můžete zjistit it's-- Toto je verze z Docker, že běží. Může dělat Docker info. Zkontrolujte, zda všechny informace o tom, kolik obrázky mají, a tak dále a tak dále. Docker PS, nic běh. Zřetězené ty. Takže první věc, kterou chci udělat, je ukázat vám, jak si můžete snadno spustit kontejner. Takže o krásu Doktor spustit, pokud je to vlastně nenajde obraz lokálně, Ve výchozím nastavení se hovoří s doktorem Hub a snaží se ji tam najít a stahování za vás. Takže to zahrnuje přístavní dělník vytáhnout příkaz, přirozeně. Takže když jsem udělat Docker run, ahoj-svět. Takže, nejprve to jde pokusit se najít. Jinak, jak si můžete prohlédnout zde, nemohl ho najít na místě. Právě teď to jen vytáhl dvě vrstvy že udělal ten obraz a běžel jsem to. Hello-svět je v podstatě jen výstupy, co jste udělali. Tak to je nejjednodušší, jeden nejjednodušší příklady. Takže vlastně jsem jen běžel a ukončeno kontejner opravdu rychle. Pokud chci run-- a mimochodem, je-li Chci času, že stejně tak víte, To je, jak dlouho trvá skutečně roztočí a obsahují ji. Jsme měření ji v milisekundách. Takže můžete vidět, jak moc to může skutečně pomůže nejen při testování, ale také i nasazení. Takže to je krátká poznámka na to. Další věc, kterou jsem si chystá udělat, je vlastně spustit obraz už jsem připravený. Takže ukotvitelném panelu běh. -d je jen příznak říct to běžet na pozadí. A -p ukládá určité porty. Protože ve výchozím nastavení, Kontejnery jsou izolovány, takže budete muset přesně specifikovat jak se k nim měli přístup. A v tomto případě, říkám Docker mapovat náhodné portu na hostitelském do určeného přístavu v nádoba sama o sobě. A to je v podstatě, kde se image-- doufejme, že to je ten pravý. Tak to dělá každý paralelních stahování z těchto vrstev, jak můžete vidět zde. Ti, kteří jsou z vrstvy tvorby Konec obraz, který jsem postavil. Bude to trvat chvíli. A ejhle. Takže teď, když mám dělat přístavní dělník ps, měl bych vidět něco, co je spuštěn. Měl bych vidět identifikátor, obraz že toto byl založen pryč, a příkaz, který byl popraven. A jak se k nim dostat, je v podstatě jdete k tomuto portu. Takže já jdu to-- to je Běžím to na AWS. Chystám se jít do 32769. Chybička se vloudila. A je to tady. Takže to je vlastně jen webová služba, která ukazuje, který kontejner je to se podává od. Takže můžete vidět, že to je z kontejneru a9f. A tady to je název kontejneru. Takže vy můžete vidět, jak rychle bylo ve skutečnosti nejen tahat, ale také nasadit tento kontejner. Nyní je dalším krokem k podívejte se do Dockerfiles a jak můžeme vlastně stavět nové obrázky. Já jsem prostě jít dostat klon, je výběrovým Dockerfile na základě dříve diagram, tím, kdo Apache a PHP. Doufejme, že si pamatuji svou repo. Takže mám repozitář právě teď. A vy budete vidět to hodně skutečně. Nechtěl jsem nainstalovat strom. Takže v podstatě budete vidět, jak dokumentace zdrojového kódu kolem to, a pak na Dockerfile jak se vlastně zabalit. Takže je to jen ukázka PHP že odráží ahoj CS50. Takže pokud chci, aby jej spustit, Udělám Docker sestavení. Musím ji nejprve vytvořit. Chystám se jmenovat to demo_cs50. A budete potřebovat tag to taky. Takže říkejme ji V1 dot. Tak jak jsem popsal výše, co dělám dnes Je říkám Docker jít využívání that-- skutečnosti, sorry, my bad. Nechtěli jsme se podívat na samotném Dockerfile. Takže jediné, co v tu jsou index.php, jakož i souboru readme a Dockerfile. Takže pokud jste se podívat na Dockerfile, takže je to velmi podobné tomu, co Jsem popsal výše. Je to jen banda kroky, které provádí Docker vytvořením a strhávat kontejnery a [? počítání?] je do obrazu. A v podstatě můžete see-- [neslyšitelný] ji here-- ale to je z místního repo. Bude to jít a urvat index.php. Tak to je jediný zdrojový kód, který jsou vlastně součástí vaší žádosti. To vše jsou v podstatě systém instalatérské provozní, Získání správné balíčky a Apache, PHP a, a kdoví co ještě. Ale to je vlastně brát index.php a spáchání ji do nádoby, do obrazu. Takže pokud budete pokračovat a spusťte Příkaz pomocí následujícího postupu, to je vlastně going--, to může trvat trochu. Doufejme, že to nebude trvat příliš dlouho. Takže můžete vidět kroky. A já Doporučujeme vám jít domů dnes a zkuste to. A Mano bude popisovat jak přesně to udělat. Ale je to opravdu skvělé vidět přesně co se děje v zákulisí. Ale je to směšně snadné vybudovat obrazy a nasadit pomocí přístavní dělník. Je to brát trochu déle, než jsem čekal. Podívejme se, co se stane, když vás-- vychladnout. Takže jak vidíte, každý z těchto kroků představují řádky v Dockerfile. A je to tady, že to ukazuje, úspěšně postaven tento obrázek. Takže když to udělám přístavní dělník obrázky, budu zobrazit všechny obrázky, které mám na místě. A jeden z nich se jmenuje můj uživatelské jméno a název obrázku, a tag representing-- hlavně je to tag verze. Takže teď, když chci spustit to, dělám přístavní dělník běh. A chci udělat -d -P. Udělej v1. Tak vidím, že teď mám dva kontejnery běh, ten, který jsem právě vytvořena a ahoj Docker ten, který jsem dostal jako poslední. A můžete vidět zde, že to přidělen to jiný port. Takže když jsem se jít na stejné IP, ale přiřadit jiný port-- doufám, že jsem to neudělal. Takže teď je to aplikace že jsem právě nasazen. Pokud chci, aby se změny, já může rychle upravit zdrojový kód a proveďte následující. Pojďme dělat ahoj Harvardu. Takže teď, co se děje se stane je, že jsem bude tag to s jiný version-- oh, Není to guy-- označit ho s jinou verzí. A vy budete see-- si kluci očekávat to, aby se stejné množství času vybudovat z něho podruhé, nebo ne? Dobře, a kdo ví, proč? Mluvit. Diváků: [Neslyšitelné] NICOLA Kabar: Je to v podstatě jsme změnit jen jeden z dalších krocích. A proto, že to bude používat vyrovnávací paměť a použití každé z těchto vrstev. A to je skutečně některé z killer rysy Docker je, jak je to ve skutečnosti využívá a znovu použije převzetí váš disk pro stejný Přesné kusy informací. Takže pokud budeme dělat totéž, to trvalo jen pár vteřin. Pokud chceme, aby redeploy-- takže nyní Měl jsem tři kontejnery. Ale tenhle je být podávané na the-- Seven One. Takže teď je to třetí kontejner. Všichni pochopili to, co jsem tu právě udělal? Takže teď, pokud chcete sdílet tento kontejner opravdu rychle se svými přáteli, můžete jen udělat přístavní dělník tlačit název kontejneru, doufejme. Tak teď to bude tlačit to-- Nejsem podepsal tady. Omlouvám se za to. Ale já nebudu řešit to teď. Ale v podstatě, že jeden příkaz je prostě jít nahoru tlačit ji. A vy budete mít možnost vidět, že pokud jdete na Docker Hub A se přihlásíte, budete Bude možné ji vidět. A pak stačí bod ten, kdo se chystá používat tento snímek, který chcete jít a vytáhněte ji. A mohou používat. S tím, doufejme Tak nějak jsem demonstroval jak snadné je pracovat s Docker. A já jsem prostě jít vrátí jej Mano. A že to bude trvat ho odsud. MANO ZNAČKY: Dobře díky, díky Nico. Tak co? Takže jedna z věcí, které jsem chtěl udělat, je dát dohromady Proč je to DŮLEŽITÉ Proč Docker a proč nádoby jsou takové důležitý nový vývoj, nový způsob, jak skutečně dělá software. A dřív než já, budu jen představit několik statistiky. Nebudu číst všechny z nich. Ale to vám ukáže hodně o tom, jak Populární je to v komunitě. Mezi klíčové technologie Docker jsou open source. Tak to je Docker Engine, komponovat, Swarm, spoustu dalších věcí vše je open source. A my máme, co jsem říkají, 1300 přispěvatelů. Vidíte teď, když se podíváte na Počet volných pracovních míst, v poslední době jsme se podívali, to bylo asi 43.000 pracovních míst otvory výslovné zmínky obeznámenost s Docker. Stovky milionů snímků mají byl stažen z Docker Hub. A, no, mnohem více velkých statistiky. Pro ty, kteří jsou zvědaví, to byl původně napsán v Pythonu a pak přepsat do Go. A je to jen otevřít source-- je to jen bylo propuštěno asi 2 a 1/2 roky, což znamená, že v 2 a 1/2 roky, jsme viděli obrovské množství růstu a významu z toho v komunitě. A tak chci mluvit trochu o tom, proč. Takže jen zopakovat některé z Klíčové body Nico je, Docker je velmi jednoduché. Je to přenosný. Je reprodukovatelné. A to nastaví standardní prostředí. A what-- tohle je můj mizerný vymýtit monolity slide-- co to pomáhá lidem dělat, což hodně softwarového průmyslu začal dělat v brzy 2000s, se stěhuje od těchto monolitické jednotlivé aplikace kde každý závislost musel být testovány před celá app měl které mají být použity, což by mohlo znamenat webové stránky dostal jen jednou nasazen každé tři měsíce, nebo více, na mnohem více služeb orientovaná architektura nebo komponentizované jiný typ z aplikační architektury. A tak díky těmto druh architektury že využít Docker spustit v těchto třech Hlavní oblasti rozvoje, které je vývoj psaní skutečný kód, testování kódu, a její zavedení. Tak proč je to důležité? Pokud jste je-- dovolte mi uvést příklad. Jste-li webové stránky zařízení vývojář, že jste vyvíjet webové stránky, které je založené na databáze, která David vyrobeno přes zde. Sorry David, já volám vás. Pokud byste chtěli nasadit celá ta věc, měli byste čekat v tradiční monolitické vývoj software prostředí, byste museli počkat než byl hotov s databází než byste mohli skutečně udělat všechny změny na vašich webových stránkách. Musel byste znovu nasadit Celá aplikace, aby tak učinily. A co Docker vám pomůže udělat, je každý osoba pracovat na různých komponentů a aktualizovat je, jak jdou, jen dělat jisti, že rozhraní zůstanou stejné. Takže to, co to udělal Je to posunut lidí od toho, tyto masivní monolitické architected software, který nasazeny každý měsíc pro kontinuální integrace a neustálý vývoj Prostředí. Teď to není jedinečné Docker, ale Docker dělá to tak mnohem jednodušší, což znamená, že jste v podstatě Neustále nasazení. Mluvíme s podniky, které jsou nasazení aplikací veřejných čelí tisíce krát denně, protože vidí hodnotu jen dělat malé změny, a tak dlouho, jak to projde testy, nechat to jít ven do výroby. Nico se mi vždycky říkal dříve, že v mnoha prostředích, standardní životní cyklus Nádoba se měří v sekundách, vzhledem k tomu, virtuální stroj může být měřena v měsících. Chtěl jsem, aby se mírné obrátit tady proto, že jsem ve vzdělávací instituci. Chtěl jsem dát příklad toho, jak to funguje v pedagogickém výzkumu situace. Takže je tu organizace tzv bioboxes. Bioboxes dělá DNA Analýza pro výzkumné pracovníky. A teď, co zjistili, bylo, že když researcher-- a to není chyba některé konkrétní researcher-- ale když výzkumník nasazen algoritmus pro analýzu, V konkrétním způsobem, vzorek DNA, by psát software, zveřejňujeme, že možná na GitHub nebo někde jinde, a pak skončili. No problém byl, že to nemusel být reprodukovatelné. Vzhledem k tomu, aby se pochopit software, oni by být zřízen pro Přesný vývojové prostředí že výzkumný pracovník používá, obvykle jejich notebook, nebo server, nebo datový centrum, které oni používali. A v důsledku toho bylo velmi obtížné reprodukovat výsledků výzkumu, kdy analýzy vzorků DNA se podívat na věci, jako je incidence-- porovnat výskyt infarktů na základě určitých genů, k čemuž například, nebo riziko rakoviny, nebo kteroukoli další druhy věcí. Takže to, co oni dělali místo toho byl začali vytvářet kontejnery. A můžete jít na bioboxes.org, je to skvělá organizace. A to, co dělají, je, že produkují kontejnery na základě výzkumu. A pak, když někdo pošle v jejich vzorku, mohou spustit. A to má všechny životní prostředí potřebné ke spuštění tohoto algoritmu a produkovat výsledky. A oni jsou zjištění, že jsou mnohem pravděpodobnější a hodně rychleji schopen vrátí výsledky pro lidi. A ve skutečnosti to, co lidé dělají běží vlastní analýzu DNA, posílání, že k bioboxes, a pak biobox prostě trvá data, spustí jej proti odrůdy z různých kontejnerů vidět různé výsledky na základě rozdílného výzkumu. Takže je to velmi silný způsob, ve kterém se vědci může udělat jednu instanci, která umožňuje jiní lidé, aby se pokusila reprodukovat výsledky. Tak jak se vám začít? Jsme si dobře podporované na Linuxu. Takže pokud chcete nainstalovat cokoliv na Linuxu, budete používat standardní správce balíků k instalaci. Pokud používáte Debian, je to apt get. CentOS je yum. Fedora Red Hat je rpm-- Nevzpomínám si. Každopádně je to všechno tam. Podporujeme širokou škálu linuxových distribucí. Můžete zkontrolovat ty ven. Máme také možnosti, aby vás mohl běžet na Mac nebo Windows. Nyní Nico zmínil, že to bylo podporováno pouze v systému Linux. To je pravda, protože to potřebuje linuxové jádro. Ale, můžete spustit ve virtuálním stroji. A co Docker Toolbox ano, který si můžete stáhnout, to vám dává ten virtuální stroj. Takže jen rychlý 48 Druhá, myslím, stáhnout. Právě jste hledat na Docker Toolbox, stáhněte si jej do počítače Mac, a tato část je z Samozřejmě zrychlil protože kdo chce se dívat na stahování signál? Standardní instalace Mac, a pak jste uvidí Jerome dát svým heslem. To je velmi vzrušující. A pak se to nainstaluje celá řada nástrojů. A právě to bude Instalace z příkazového řádku. A pak jste mohli vidět Jerome testování jeho obrazy. A pak se na základě toho, můžete vidět, že YouTube si myslí, že Nico je zájem Star Wars, Jimmy Kimmel show, a myslím, že Ellen. Myslím, že to poslední je klip z Ellen show. Takže když přijde Docker Toolbox s více než jen Docker Machine. Takže Docker Machine věc, která pomáhá můžete nastavit virtuální Stroj na systému Windows nebo Mac-- účtu Windows schránku nebo váš Mac box-- a pomáhá vám dělat opravných položek, Ale je to také přichází s Swarm a Compose, které jsou navrženy tak, aby vám pomůže udělat velký měřítku nasazení vaší aplikace. Takže pokud chcete spravovat shluky uzlů, shluky kontejnerů, komponovat a Swarm jsou způsob, jak jít o tom. A samozřejmě, že přichází s Docker Motor a Kitematic, což je to desktop GUI. Měl bych také zmínit přístavní dělník registru, která není zahrnuta do panelu, ale je to způsob, jak můžete spustit svůj vlastní registrů Docker obrázky jako Docker Hub, ale můžete také stačí použít Docker Hub jako způsob, jak to udělat. A, spiklenecké kroucení, vidíte to běží v kontejneru. A to je, jak jsme distribuci našich snímků. Celá tato prezentace je vlastně HTML slide deck. A to je spuštěna v kontejner, který můžete získat by-- NICOLA Kabar: Ano, tak to je běží na plný úvazek na mém Max. A já prezentaci z ní. A to právě udělal Docker po instalujete Toolbox. Stačí si jen udělat přístavní dělník běh a dostat to, a používat snímky. MANO ZNAČKY: A to je vše. Tak jsme vám všem poděkovat za účast. A my jsme rádi, aby odpověděli na otázky. Měl bych zmínit, než kdokoli listy jsou trička tam. Omlouváme se někdo, kdo se dívá to na Livestream nebo video, ale máme Docker trička tam. A my víme, přístavní dělník studenti, a podle mých zkušeností, profesoři také, stejně jako volné oblečení. Takže děkuji vám všem za coming out. A Sledujte nás na Twitteru pokud chcete, nebo ne. Nezajímá mě. Také sledovat Docker na Twitteru. To je také zajímavé. A pak to je vše. Docker.com. Děkuji. [POTLESK]