[Glazbom] DAVID Malan: U redu. Hvala vam toliko što ste došli. Ovo je CS50 seminar o lučki radnik, a tehnologija koja sebe i CS50 smo prisutni su počeli koristiti za neko vrijeme sada. Dakle, moje ime je David Malan, ja učiti Harvard Uvod Computer Science. Već nekoliko godina, smo dati studentima preuzeti na strani klijenta virtualni strojevi na kojima oni svoje probleme seta. Da sada smo prešli u Cloud okruženje koji zapravo koristi ovu tehnologiju zove Docker, tako da svi CS50 studenti sada imaju vlastiti lučki radnik posude da ćete uskoro čuti sve o tome. Osim toga, na CS50 poslužitelju strana klastera, već dugi niz godina smo koristili Amazon Cloud poslužitelj. Mi smo bili trčanje pojedinca virtualnih strojeva. I to smo počeli prijeći na te stvari nazivaju lučki radnik posude tako da sve naše aplikacije sada savršeno izoliran jedan od drugog. Tako je za to i još više, dopustite mi da predstaviti naše prijatelje, Nico i Mano, od samog lučki radnik. NICOLA Kabar: Hvala, David. Pozdrav svima. Moje ime je Nico i to je Mano. Mi smo od lučki radnik. Ćemo govoriti about-- dajući vam dečki uvod za lučki radnik, i nadamo se, prema kraju ovog razgovora možete ostvariti koliko možete koristiti liječnika da oksalat svoj razvoj aplikacija i implementacije. Dakle, mi ćemo krenuti u stvarnom brzi sa neke osnovne informacije. Opišite što Docker je sve o tome. Kako radi? Kako je projektiran? Ja ću biti događaj neki demo. A Mano će biti opisuje kako možete koristiti lučki radnik i daje vam konkretne korake kako možete početi. Ja bih zahvalan ako ti dečki mogu držati off za vaša pitanja pred kraj. Na taj način, mogao bih se baviti onima Pitanja tijekom prezentacije. Tako ćemo ostaviti neko vrijeme prema kraju za pitanja. Dakle, samo jako brzo, tko ima zapravo nikad radio na lučki radnik, kao što je igrao s njim? Odlično. Cool. Veliki. Dakle, ja ću početi s nekim povijesti. Dakle, natrag u 90-ih i početkom 2000-ih, u osnovi kao web programeri, aplikacija programeri, kad su otišli za implementaciju aplikacije je vezan za goli metal. To je bio jedan poslužitelj. To je bio jedan zahtjev. Tradicionalno, primjer će biti kao LAMP stack, gdje se zapravo morali dovesti do bazen resursa. CPU, memorija, disk, mrežni, instaliranje operativni sustav na vrhu toga. Ako ste posluživanje nešto, ako se ti zapravo imaju web poslužitelj, trebate nešto poput Apache ga poslužiti. Ako je Vaš zahtjev treba baze podataka, backhand, ti bi instalirati nešto kao MySQL, i tako dalje. A ako vam treba vremena run, PHPs i PHP Python radovi su bili tamo. I tako smo zapravo morali poduzeti one korake kako bi dobiti vaš zahtjev gore i trčanje. Ako je potrebno više računalnu snagu te, osnovi morala nazvati svog momka Ops ili gal ići i polica do novog komad hardvera, spojite ga, i morate ponoviti one procesi i opet. Dakle, ovaj proces je relativno skupo. Je definitivno vrlo sporo. To je bio neučinkovit. I u puno slučajeva, vaš hardver je nedovoljno. Dakle, u kasnim 90-ih i početkom 2000-ih, virtualizaciju hardvera naišli. I kao što možete vidjeti ovdje u slika, zapravo ono što su učinili crpi bazen besplatno hardverskih resursa i vrsta služio onima na gornjim slojevima, u ovom slučaju, gost operativni sustav. A cijela ideja virtualni strojevi naišli i da doista pomogao Cloud računalstvo kao mi danas poznajemo. Dakle, što to znači je li može izvoditi višestruke VM, koji znači više hrpe, višestruki prijava na istom fizičkom računalu. To svakako pomogao s Brzina razvoja aplikacije. Definitivno s troškovima. Ne morate ići i provesti energije, vremena i sredstava da se polica više poslužitelja doći do više računati. A brzina je zapravo donosi ti resursi se puno brže. Veliki. Tako smo riješiti glad u svijetu, zar ne? Ne, ne stvarno. Dakle, virtualizacija koliko je to zapravo pomogla, rješavanje problema, to je zapravo uveden puno izazova. Hipervizor svakako uveo puno složenosti, rukovanje one temeljne bazen resursa. To je teže u smislu da prije ste imali samo jedan operacijski sustav koji je kao tri, četiri nastupa na disku. Sada, ako imate 10 strojeva na jednom hardvera morate pomnožite to od broja strojeva. To je definitivno više skupo u smislu dalje morati dobiti licenciranje za virtualizacijske tehnologije ako to nije open source. No, nemojmo poduzeti sve Kreditna od virtualizacije. Jer ono što se dogodilo je da postoji Puno hrpe i puno softvera tehnologije koje su omogućene koliko brzo ste bili u mogućnosti da biste dobili resursima s Cloud bum. Dakle, danas jedan app ili uslugu mogu se pomoću bilo koje od sljedećih trajanjima ili baze podataka. PHP, Python, MySQL, Redis, sitnica. Dakle, postoji puno složenosti na to broj dimnjaka zapravo odgajati jedan servis. A uz to, imali puno temeljni resursi ili infrastrukture Vrste testirati implementaciju i osnovi odvesti u proizvodnji te aplikacije da ste u razvoju. Pogotovo što vaši timovi imaju odrasli koji rade na tim aplikacijama, postoji puno složenosti i izazovi koje su donijeli kako bi se osiguralo da cycle-- osnovi prijava razvojni ciklus, je zapravo uspješna. Dakle, činjenica da je Vaša prijava radi lokalno na vašem lokalnom VM ne jamči da je vaš kolega će očekivati ​​iste rezultate. A kada je operacija tim koji su uključeni u uzimanje ono što imate i uvođenje u proizvodnju razmjera, i ne postoji jamstvo da je to zapravo će se dogoditi. Dakle, to nam ostavlja jako big-- puno upitnika, puno izazova zapravo suočio slično natrag u dane. I to nas je podsjetio na brodarstva. Dakle brodarstva imali puno robe, kao što možete vidjeti na lijevoj strani. A na desnoj strani, postoji puno, zapravo, načina na brod te robe. A što se događa kao par ljudi došli zajedno i rekao: moramo standardizirati kako mi zapravo brod te robe. I bum, imate intermodalni transportni kontejner. Tako su se dogovorili najveći uobičajene veličine za posudu. Kako ih nositi. Što točno način što vam je potrebno ih učitati i rasteretiti ih. I zato, da doista pomogao brodarstva. Sada više od 90% fokus prevezli globalno se pomoću tih kontejnera. A to svakako smanjuje troškovi, kao i štete zbog utovar. Tako smo uzeti isti model, a mi primijeniti razvoj softvera dva app arhitektura, u smislu koji kontejnerima uzeo virtualizaciju jednu razinu. Dakle, umjesto da radi na razini hardvera, je postao više od poslovanja razini sustava virtualizacije. I mi to pružanjem svaki primjena u vlastitu lagan, izolirani, Runnable i prijenosni, što je najvažnije, način da zapravo paket sve što je potrebno za pokretanje. Svugdje se može pokrenuti. Dakle, bez obzira da li ste ga izvodi na Lokalni dev okruženju, vaš proizvodnja okolina, vaš inscenacije ili testiranje. Bez obzira na podlozi infrastruktura je tu, ste imali funkcionalnih radnih aplikaciju. Dakle, to je upravo ono osnovi spremnici učiniti za ovaj problem. Oni to Obraćanje to pakiranje na takav način da se može jamčiti da se to raspoređeno Uspješno bez obzira gdje živi. Dakle, ako idete kao, Bob je još uvijek u redu. Ako ste zbunjeni s onim što sam rekao, Idem se razrade na to. Pa kako se Docker sama stati na ovoj slici? Dakle Docker je otvorena platforma lako, lako istaknuti, izgraditi brod, trčanje, lagan prijenosni sebe dovoljno spremnici app gdje. Dakle, ako se nešto od toga Razgovor, poduzmite sljedeće. Ako imate svoj app trčanje lokalno i što ga je razvio u korištenju lučki radnik platformu, očekujem da se uspješno razmještene. Bez obzira što je Temeljni infrastruktura. Dakle, ako imate Docker kontejner i to radi, onda dok god postoji Docker motor s druge side-- ako vaš rad infrastrukture koristi bilo oblak, je li to je AWS, ili Google-a, ili Microsoft, ili bilo koji od javnih oblaka, ili svoj vlastiti oblak, ili vaš otvoreni stog Oblak, ili lokalnom okruženju. Ako imate motor trčanje, to znači to će biti Uspješno razmještene ondje. To će biti pokrenut isti ponašanje kao što je projektiran da bude. Dakle, ako gledamo at-- idem proći kroz ono što je zapravo su u glavnim komponentama lučki radnik. Dakle Motor je u srži lučki radnik. To je mozak-a. To orkestrira zgrade, utovar, i uvođenje i upravljanje sami spremnici. Ja ću kopati u ono što radi motora detaljnije u drugoj. U osnovi, jer doktor je sagrađena oko klijent poslužitelj arhitekture, tako da bi se u interakciji s Motor trebate nekakvu klijenta. Slike su predlošci u koji kontejneri su građene od. Dakle, slike su u osnovi Samo statičkih slika. Predlošci i posude je zapravo ono što je je pokrenut u runtime da izdržava prijavu ili radi nešto s podacima. Registar se obratio kao problem kako se zapravo distribuirati slike. Dakle, ako trebate dijeliti slike da ste radili na vašem kolegi ili na ops tima, što koristite ga koristite Registry. Možete preuzeti open source verzija to da Docker radio i otvorite izvor. Ili možete koristiti lučki radnik pomoć, što je oblak verzija gurati i povucite slike vani. To je ogromna stvar. Budući da je ogroman ekosustav oko lučki radnik, a to je stvarno jako koriste koncentrator. Dakle da rezimiram ovdje, to je kako minimalistički Docker tijek klijenta. Možete komunicirati s domaćinom, u ovom slučaju to je lučki radnik demone. To je ista stvar kao motor. Vi ne naredbe poput Lučki radnik graditi, povući, trčanje. I sama motora prolazi a ne te stvari. Dakle, bilo je to u interakciju s Registar povući one slike i slojevi slike. Bilo ako želite implementirati, pokrenuti kontejneri, ubiti ih, baciti ih, sitnica. Dakle, ovo sažima tijek rada od sve ove komponente. Dakle, ako se svaki komponenta sama po sebi. Dakle motora, to je samo demon. To će vrsta igrati za podršku to na Linux jer se zahtijevaju određene Linux kernel značajke. Ali Windowsi radi raditi istu stvar. To bi trebao biti podržan Windows Server 2016. Dakle, opet, odgovornost s motor, ili su se, graditi slike. Povucite slika iz lučki radnik Hub ili vlastiti registar. Ako ste učinili s onim slikama ili stvoriti nove slike, možete gurnuti natrag onima registra ih distribuirati u druge timove. I pokušavam ga sadrže lokalno i upravljati spremnici životni ciklus lokalno. To je izgrađen oko HTTP REST API. Dakle, tehnički možete napisati vlastiti klijent sve dok ga koristi HTTP, što je vrlo standardni mehanizam razgovarati s motora i mnogo drugih usluga. A što možete vidjeti iz da se ovdje, bez obzira onoga što infrastrukturu je, kao čeznuti kao te can-- sve što trebate je operativni sustava, Linux posebno. A možete instalirati lučki radnik Engine na vrhu da su to trčanje i i to orkestrira, u osnovi, sve to app jedan, dva, a tri su stvarne posude. Dakle, to je motor. Kao što sam spomenuo ranije, jer morate komunicirati s motora, postoji klijent. Ali zapravo kada instalirate Lučki radnik, to se isporučuje s njom. Tako da dobiva instaliran, tako da je jedan binarni. A vi možete učiniti lokalni pozivi na svoj Docker Engine. Ili daljinskom pozivi na udaljenim motora. To ne koristi HTTP, kao Sam spomenuo ranije. Postoji GUI klijent zove Kitematic od lučki radnik. A tu su svakako puno drugih ljudi koji gradi puno GUI da je u osnovi provode Neki HTTP pozive na razgovor s motora. Samo neki uzorak naredbe. Ako to ne učinite lučki radnik verziju, to bi pokazati vam inačicu klijenta, kao i verzija poslužitelja. Ako to ne učinite lučki radnik info hoće kažem vam sve informacije o tome koliko su spremnici trčanje ili stvorili, koliko slika imaš, i tako dalje i tako dalje. Ovdje sam, u blizini Posljednji kutija, imam doktora trčanje. Dakle, to je kako sam zapravo stvaranje kontejner. I ja sam ga dati jeka Hello World i spavati za drugi i sitnica. A možete vidjeti proizlaziti. Tako da je u tijeku. A slična Linux ps, možete vidjeti svi procesi i, u ovom slučaju, svi trčanje posude. Ova je pozivajući natrag spremnik Upravo sam stvorio. Dakle, to je jako važno, jer, kao, to može biti malo zbunjujuće. Dakle, slike su samo za čitanje zbirka datoteka, zar ne? Oni su ono što naša posuda temelji se na. Ali oni su samo za čitanje. Tako da počnete sa osnovnim slici. Ona teži da oponašaju OS-poput, tako Ubuntu, CentOS, sitnica baze slika. I onda početi graditi na vrhu da, neki slojevi, koje će nadoknaditi Vaš krajnji sliku, krajnji rezultat ovdje. I svaki od tih slojeva treba imati sliku roditelja da upućuje kada ga zapravo želi stvoriti. Oni su nepromjenjivi, u smislu jer oni samo za čitanje, ne mogu zapravo napraviti izmjene na njih. Možete ih koristiti za stvaranje Spremnik iz slike, koje će pozvati sve naknadne potrebne slike ispod nje. Možete napraviti promjene na drugi sloj, to prepisati sloj ću govoriti o u sekundi. Ali svaka od tih slojeva se nikada ne mijenjaju. Uglavnom Slike koristiti nešto zove unija datotečni sustav, UFS. A tu su i različite pohranu backends koje koriste ovu tehnologiju. I što to znači da je to okuplja različite datotečne sustave kako bi ih gledati kao jedan. Dakle, možete zapravo, od aplikacija perspektiva, imate vrh pogledom koji pokazuje sve različite datotečni sustav potrebno za to zahtjev za pokretanje. Ali oni su zapravo, na ovaj, oni su zapravo u odvojenim mjestima a koji se koristi od strane ostali spremnici, kao dobro. Dakle, kao što možete vidjeti ovdje da ako ćemo početi s demon slike kao baza slika, a zatim idemo i dodavati [? Emacs?] a onda je to još jedan sloj. A zatim dodajte Apache. To je još jedan sloj. A onda ćemo provesti Spremnik od toga. Svaka od tih slika, svaki od tih slojeva, se razlikuje i može biti ponovno upotrijebiti druge spremnike. Ako pogledate sami kontejnera, oni su nekako kao VM-poput, ali se ne tretira isto vrijeme. Dakle, oni nemaju, tehnički, puna operacijski sustav ispod njih. Oni koriste jedan kernel o glavnom operacijskom sustavu. I oni graditi na vrhu toga. Oni oponašaju u tome kako oni izgledaju. Oni oponašaju njihov korijen datoteku sustav operativnog sustava. Ali oni zapravo nisu replicira. Dakle, umjesto da nepromjenjiva slojeva, zadnji sloj, što je spremnik sama, to je čitanje-pisati sloj. To također vodi procese Vaše prijave. A to ovisi o slojeva temeljne. Svaki spremnik izrađen od slike. I to slika može biti jedan ili višeslojnog sliku. I želim napomenuti ovdje da Docker jako koristi, ili se temelji na copy-on-write mehanizam. Tako da, zapravo, ako niste promjene na spremnik, to neće uzeti dodatni prostor. Dakle, to je zapravo kako vas sažeti u copy-on-write. To će svakako ubrzati čizma vrijeme za spremnik. Jer ako ne radite promjene spremnika, to koriste ono što je već tamo. Dakle, kako se to zapravo radi. Dio je to, upravo sada, to koristi najmanje dva ključna kernel značajke. I to je u osnovi ono što stvorio tu razinu izolacije za same spremnike. Te značajke su imenskom prostoru i cgroups. Dakle imenskom prostoru su način da se stvoriti izolirane resurse, tako da se unutar samog spremnika, samo vi možete vidjeti određene resurse. Kao što je umrežavanje sučelja ili određenim korisnicima ili sitnica. A oni su samo vidljivi i jedini dostupni u spremniku. Cgroup na drugoj strani granice kako koristite te resurse. CPU, memorija, i disk. Kada možete otići, ja znači oni su zapravo značajke koje su razvijene by-- oni su dio Linux kernela. Dakle, oni nisu bili nanovo strane ili ponovno po lučki radnik. Lučki radnik koristi ih. Što je doktor doista Ovdje je zapravo ona orkestrirane stvaranje imenskom prostoru za svaki spremnik i stvaranje cgroups tako da je smiješno lako stvoriti kontejnera pomoću tih značajki. Naravno, kao što sam opisao ranije, Unija File sustavi i copy-on-write doista pomoći brzinu i disk korištenje kontejnera. A nakon što se Vaše Ruke oko lučki radnik, ti ćeš vidjeti kako brzo ga je zapravo zavrti posude i suza ih dolje. Dakle, ako mogu pitati, kako mogu što zapravo graditi slike? Gradimo slike po procesu stvaranja kontejneri i stvaranje promjene, mijenjajući ih, te ih je počinio da postanu slika. Dakle, to je piletina i jaja referenca ovdje jer su svi kontejneri dolaze iz slike i slike dolaze od počinjenih spremnika, najvećim dijelom. Postoje tri opcije za stvaranje slike. Idem opisati prvi i posljednji. Možete ručno ići i pokrenuti posudu i da te promjene, kao što će učiniti na bilo VM ili bilo koji operativni sustav, kao što instaliranje novih binaries, dodajući datotečnim sustavima, i sitnica. A onda izađete, kao možete vidjeti tamo. Ja sam izlaska moj kontejner. A onda radim Docker počine. A ja sam počinio to. Možete vidjeti da je broj je samo UUID ili prva 12 bitovi UUID. Ili bajta UUID. A onda Zovem ga moja slika. Tako sada Docker brine snimanje sve što sam to učinio i stvaranje nove Slika na temelju toga. Neću govoriti o tarball, ali postoji način možete dobiti jedan, stvoriti jedan, ili napraviti jedan sloj slike pomoću tarballs. Ono što ću govoriti o tome a što se uglavnom koristi i danas, je Dockerfile. Koji je tehnički prvi korak automatiziran lučki radnik sama. Dakle Dockerfiles su stvari koje ste ćemo vidjeti u puno GitHub Repos danas. To je u osnovi samo tekstualna datoteka koja opisuje točno kako izgraditi sliku. A za svaku liniju, što zapravo stvara spremnik, izvršava tu liniju, obvezuje da spremnik u Nova slika, a vi, zapravo, ga koristiti za sve naknadne operacije dok ne dođete do posljednjeg slici. Koja je u osnovi završiti cilj ovdje, kraj. I nakon što exec-- poslije tebe napisati vaš Dockerfile, koji je čisto u tekstu, što učiniti lučki radnik graditi i naziv slike. A ti ukazati na to da je gdje Dockerfile je na. A možete očekivati ​​da će vidjeti moju sliku što je slika koja imate na lokalnoj razini. Dakle, to je samo vizualna primjer onoga što se događa. Možete početi s osnovnom slici. Vi pokrenuti to u posudu koja ne mijenja osnovni samu sliku. No, umjesto da stvara prepisati sloj na vrhu u kojoj morate napraviti promjene, u kojem ste počiniti i ponovite postupak dok dođete do vašeg konačnog slici. I na taj način, svaki drugi graditi Proces može koristiti iste slojeve a same-- osnovi Lučki radnik sprema one slojeve. Tako da ako ja radim isto točno proces, ali umjesto instalacije PHP, Ja instalacija Python. To će koristiti Apache i Ubuntu. Dakle taj način ste pomoću diska. To je korištenje cache i dostupne slike tamo. Završni dio je registra, koji je, kako se distribuirati svoje slike. I, kao što sam spomenuo ranije, tu je oblak verzija njega, što je Docker Hub. Možete ići i istražiti puno, zapravo to je javna SAS proizvod koji još uvijek možete imati privatne slike, ali ima puno javnih slika. To je zapravo neograničen, možete gurati neograničen javne slike tamo. A to je, kako možete surađuju sa svojim timom. Vi samo možete ih pokažite na vas repo i oni mogu ili sliku preuzimanje a mogu ga skinuti. Dakle, dosta s razgovora. Tko želi vidjeti neke demo jako brzo? U redu. Dakle ovdje sam. Ca vi vidjeti svoj ekran? U redu. Dakle, imam Docker trčanje ovdje, tako da možete provjeriti it's-- Ovo je verzija od lučki radnik koji je pokrenut. Može li se lučki radnik info. Provjerite sve informacije o tome koliko Slike su, i tako dalje i tako dalje. Lučki radnik PS, nema ništa trčanja. Ulančani one. Dakle, prva stvar koju želim učiniti je pokazati vam kako možete jednostavno pokrenuti spremnik. Tako ljepotu oko Liječnik pokrenuti, ako je to zapravo ne nalaze slike na lokalnoj razini, po defaultu to govori da Doctor Hub i pokušava ga pronaći tamo i preuzimanja za Vas. Dakle, to uključuje lučki radnik povući naredbu, naravno. Dakle, ako ja to Docker run, HELLO-svijet. Dakle, prvo što se događa pokušati ga pronaći. Inače, kao što možete vidjeti ovdje, ne mogu naći na lokalnoj razini. Sada to samo izvukao dva sloja koji je napravio tu sliku i ja sam ga vodio. Hello-svijet je samo u osnovi izlaza, što ste učinili. Dakle, ovo je najlakši, jedan najlakši primjeri. Pa zapravo sam samo trčao i prestaje spremnik jako brzo. Ako želim run-- i usput, ako se Želim vremena da, samo da znaš, to koliko je vremena potrebno da se zapravo spin gore i sadrže ga. Mi smo to mjerenje u milisekundama. Na taj način možete vidjeti koliko to može zapravo vam pomoći ne samo u ispitivanju, ali čak i implementacije. Tako da je brzo bilješku o tome. Sljedeća stvar sam učiniti je zapravo pokrenuti sliku sam već pripremio. Dakle, lučki radnik trčanje. D je samo zastava reći njen rad u pozadini. I -p dodjeljuje određene portove. Jer po defaultu, Spremnici su izolirani, tako da ćete morati odrediti točno kako im pristupiti. I u ovom slučaju, ja govorim lučki radnik mapirati slučajan port na domaćina na određeni port u samog spremnika. I to je zapravo gdje image-- nadamo se da je pravo jedan. Tako to radi paralelne downloads svaki tih slojeva, kao što možete vidjeti ovdje. Oni su slojevi izradu kraj slika koju sam sagradio. To će potrajati sekundu. I voila. Pa sad, ako ja to lučki radnik PS, sam trebao vidjeti nešto što radi. Trebao bih vidjeti ID, slike da je to što je temelji off, a naredba koja je izvršena. A kako pristupiti je u osnovi idete na to pristaje. Tako ću ići to-- ovo je sam to trčanje na AWS. Ja ću ići na 32769. Ups. I ovdje mi ići. Dakle, ovo je zapravo samo web servis koji pokazuje koji spremnik to se poslužuje od. Dakle, možete vidjeti da je to je iz spremnika a9f. I ovdje je to naziv spremnika. Dakle, vi možete vidjeti kako brzo bio je zapravo povući ne samo, nego i rasporediti ovaj spremnik. Sada je sljedeći korak je da gledati u Dockerfiles i kako možemo zapravo graditi nove slike. Samo ću ići dobiti klon, A Uzorak Dockerfile temelju ranije dijagram, ona se Apache i PHP. Nadam se sjećam moj repo. Dakle, imam repozitorij sada. I ti ćeš vidjeti to je puno stvari. Nisam instalirati stablo. Tako je u osnovi ti si idući u vidjeti kako Vaš izvorni kod dokumentacije oko je, a zatim Dockerfile na kako zapravo paket. Dakle, to je samo uzorak PHP koji odjekuje Hello CS50. Dakle, ako želim ga pokrenuti, Učinit ću lučki radnik graditi. Moram ga graditi prvi. Idem to ime demo_cs50. I morate oznaku na njega previše. Tako ćemo nazvati V1 točke. Dakle, kao što sam opisao ranije, što radim i danas je sam govorio lučki radnik ići korištenja that-- zapravo, ispričavam se, moja loša. Nismo se pogledati u samom Dockerfile. Dakle, jedino što u ovdje index.php kao datoteci readme i Dockerfile. Dakle, ako pogledamo Dockerfile, tako da je vrlo slično onome što Sam ranije opisao. To je samo hrpa koraka koje Docker izvršava stvaranjem i rušenje kontejnera i [? računajući?] ih u sliku. A zapravo možete see-- [nečujan] to here-- ali ovo je iz lokalne repo. To će ići i zgrabite index.php. Tako da je jedini izvorni kod koji su zapravo dio vašeg zahtjeva. Sve to su u osnovi operativni sustav vodovod, uzimajući pravo pakete i Apache, PHP, i sitnica. No, to je zapravo uzimanje index.php i izvršenje u spremnik, u sliku. Dakle, ako ste ići naprijed i pokrenuti naredbe na sljedeći način, to je going-- zapravo, to bi moglo potrajati malo. Nadam se da ne traje predugo. Tako možete vidjeti korake. I ja Vam savjetujemo da ide natrag kući danas i to probati. A Mano će opisati kako točno to učiniti. Ali to je stvarno lijepo vidjeti točno što se događa iza kulisa. No, to je smiješno jednostavan za izgradnju slike te ih implementirati pomoću lučki radnik. To je uzimanje malo više nego što sam očekivao. Idemo vidjeti što se događa kada you-- ohladi. Dakle, kao što možete vidjeti, svaki od tih koraka predstavlja linije u Dockerfile. I to pokazuje da se ovdje to Uspješno izgrađena ovu sliku. Dakle, ako ja lučki radnik slike, idem vidjeti sve slike koje imam na lokalnoj razini. A jedan od njih se zove moj korisničko ime i naziv slike, a oznaka representing-- uglavnom to je verzija oznaka. Pa sad ako želim pokrenuti da, ja lučki radnik trčanje. A ja samo želim napraviti D -P. Učinite v1. Dakle, vidim sada da imam dva spremnici trčanje, onaj koji sam upravo stvorio i pozdravi Lučki radnik onaj koji sam dobio posljednja. A ovdje možete vidjeti da je to je drugačiji luka dodijeljena. Dakle, ako idem na isti IP, ali dodijeliti drugačiji port-- nadamo nisam. Dakle, sada je to prijava da sam samo rasporedila. Ako želim napraviti promjene, sam može se brzo urediti izvorni kod i učinite sljedeće. Učinimo Hello Harvarda. Pa sad što se događa dogoditi je da sam će ga označiti s različite version-- oh, Nije to guy-- ga označiti s različitim verziju. I ti ćeš see-- učinite vi očekujete to uzeti istu količinu vremena ga graditi drugi put ili ne? Dobro, a tko zna zašto? Govori. PUBLIKA: [nečujan] NICOLA Kabar: To je u osnovi smo promijeniti samo jedan od kasnijih koraka. I zato što će se koristiti Cache i koristiti svaku od tih slojeva. I to je doista neke od značajke ubojica lučki radnik kako je to zapravo koristi i ponovno koristi preuzimanju Vaš diska za iste Točni komada informacija. Dakle, ako mi se ista stvar, to je samo par sekundi. Ako želimo redeploy-- tako da sada Ja bi trebao imati tri kontejnera. Ali ovo je bio služio na the-- sedam jednom. Dakle, sada je treći kontejner. Svatko razumije ono što sam upravo učinio ovdje? Pa sad, ako želite podijeliti Spremnik jako brzo sa svojim prijateljima, možete jednostavno napraviti lučki radnik gurnite naziv spremnika, nadam se. Dakle, sada će ga gurnuti to-- nisam potpisao ovdje. Ispričavam se zbog toga. Ali neću otkloniti ovo sada. Ali zapravo to je jedan naredba samo ide gore gurati. I vi ćete biti u mogućnosti da vidi ga, ako idete na Docker Hub A što se prijavite, ti si će ga moći vidjeti. I onda možete jednostavno pokažite tko ide koristiti tu sliku da ide i izvucite ga. I oni mogu koristiti. Uz to, nadamo se Nekako sam pokazao kako je lako raditi s lučki radnik. A ja sam samo ide dati ga natrag Mano. I on će ga uzeti od ovdje. MANO OZNAKE: U redu hvala, hvala Nico. Pa što? Dakle, jedna od stvari koje sam htjela napraviti je staviti zajedno Zašto je to important-- zašto Docker i zašto spremnici su takva važan novi razvoj, novi način zapravo radi softver. I prije nego što mi je činiti, ja ću Samo predstaviti nekoliko statistiku. Neću čitati sve to. No, to pokazuje puno o tome popularni je to u zajednici. Jezgra lučki radnik tehnologije su open source. Dakle, to je Docker motora, sastaviti, Roj, gomila drugih stvari je sve open source. I mi smo, što sam učinio kažu, 1.300 suradnika. Vi vidite sada, ako pogledate na broj radnih mjesta, u posljednje vrijeme smo gledali, bilo je oko 43.000 radnih mjesta otvori posebno spomenuti poznavanje lučki radnik. Stotine milijuna slika ima preuzeto iz Docker Hub. A, dobro, puno velikih statistika. Za one koji su znatiželjni, to je izvorno napisan u Pythonu a onda prepisivati ​​u pokretu. A to je tek otvori source-- to je samo bio objavljen za oko 2 i 1/2 godina, što znači da se u 2 i 1/2 godina, vidjeli smo ogromnu količinu rasta i važnosti ovo u zajednici. I tako želim razgovarati malo o tome zašto. Dakle, samo ponoviti neke od Nico je ključne točke, Docker je brz. To je prenosiv. To je ponovljiva. I to postavlja standardnog okruženja. I what-- ovo je moj isprdak Pečat iz monolita slide-- ono to pomaže ljudi, koji puno softverskoj industriji počeo raditi u ranih 2000-ih, kreće ovih monolitni pojedinačne aplikacije gdje je svaka ovisnost je morao biti ispitani pred cijelom app imala biti razmještene, koji moglo značiti web stranice samo je dobio razmještene jednom svaka tri mjeseca ili više, u mnogo više usluga orijentirana arhitektura ili componentized različite vrste primjene arhitekture. I tako to dopušta vrsta arhitekture kako iskoristiti Lučki radnik za rad u ova tri Glavni područja razvoja, koji je razvoj pisanja stvarni broj, testiranje svoj kod, i implementaciju. Pa zašto je to važno? Ako ste A- neka mi dati primjer. Ako ste web stranice Uređaj programer, ti si razvoju web stranicu koja je na temelju Baza David proizvedene ovdje. Žao nam je David, ja vas doziva. Ako biste željeli implementirati cijela stvar, ti bi moraju čekati po tradicionalnom monolitni razvoj softvera okoliš, ne bi se čekati dok je on učinio s bazom podataka prije nego što zapravo može učiniti bilo kakve promjene na Vašu web stranicu. Morao bi redeploy Cijeli zahtjev za učiniti. A što Docker pomaže vam napraviti je svaki Osoba rad na različitim komponentama i ažurirati ih jer oni idu, samo što sigurni da su sučelja ostati isti. Dakle, ono što je učinio je to je pomaknuo ljudi od toga njih masivne monolitne projektiran softver koji raspoređeni svaki mjesec za kontinuirani integracija i kontinuirani razvoj okoliš. Sada to nije jedinstven za lučki radnik, ali Docker čini tako puno lakše, što znači da ste zapravo stalno uvođenje. Mi razgovarati s poduzećima koja su uvođenje javnih Okrenuta aplikacija tisuće puta dnevno, jer vide vrijednost u samo stvaranje male promjene, i sve dok kao što teče kroz testove, ostavljajući ići van u proizvodnji. Nico mi je uvijek govorio ranije da u mnogim sredinama, standardni životnog ciklusa Spremnik se mjeri u sekundama, dok je virtualni stroj može se mjeriti u mjesecima. Htjela sam uzeti lagani okrenuti ovdje jer sam u odgojnu ustanovu. Htio sam dati primjer kako to radi u obrazovnom istraživanju situacija. Tako da je organizacija nazivaju bioboxes. Bioboxes radi DNA Analiza za istraživače. Sada ono što su otkrili je da kada researcher-- a to nije krivica bilo osobito researcher-- ali kada istraživač razmještene algoritam za analizu, Na poseban način, uzorak DNK, oni će napisati softver, objaviti da je, možda se GitHub ili negdje drugdje, a onda su učinili. Pa problem je da to nije bilo nužno ponovljiv. Jer, kako bi se razumjeti softver, oni će biti postavljen za Točan razvojno okruženje da je istraživač koristi, najčešće njihov laptop ili poslužitelj, ili podataka središte koje su korištenjem. I prema tome, to je vrlo teško reproducirati rezultate istraživanja kada Analizirajući uzorke DNK gledati na stvari kao što su incidence-- usporediti učestalost srčanih udara temelji se na određenim genima prisutne, Na primjer, ili rizik od raka, ili bilo koje druge vrste stvari. Dakle, ono što su učinili, umjesto bilo su počeli stvaranje posude. A možete otići bioboxes.org, to je velika organizacija. A ono što oni rade je oni proizvode spremnici na temelju istraživanja. A onda, kad god netko šalje u uzorku, mogu ga pokrenuti. I to je sve okoliš potrebno pokrenuti taj algoritam i proizvesti rezultate. I oni su nalaz da su oni češće i više brže mogućnosti povratak rezultate na ljude. A u stvari, ono što ljudi rade izvode vlastite analize na DNK, slanje da bi bioboxes i onda biobox traje samo podatke, to radi protiv raznih od različitih kontejnera vidjeti različite rezultate na temelju različitih istraživanja. Dakle, to je vrlo moćan Način na koji znanstvenici Možete napraviti jednu instancu koja omogućuje drugi ljudi pokušati reproducirati Rezultati. Pa kako ste započeli? Mi smo dobro podržan na Linux. Dakle, ako želite instalirati ništa na Linuxu, koristite svoj standarda Voditelj paket za instalaciju. Ako koristite Debian, to je sposoban dobiti. CentOS je yum. Fedora Red Hat je rpm-- Ne sjećam se. U svakom slučaju, to je sve. Podržavamo veliki izbor Linux distribucija. Možete provjeriti one out. Također imamo mogućnosti da vas može izvoditi na Mac ili Windows. Sada Nico spomenuo ranije da to je jedina podržana na Linuxu. To je istina, jer to treba Linux kernel. No, možete izvoditi u virtualnom stroju. A što je Docker Toolbox ne, koje možete preuzeti, to vam daje taj virtualni stroj. Dakle, samo brzo 48 drugo, mislim, preuzimanje. Vi samo traži na lučki radnik Kutija za alat, preuzmite ga na Mac, i ovaj dio je Naravno ubrzao, jer tko želi gledati preuzimanje signal? Standardni Mac instalacija, a onda ste će vidjeti Jeronim staviti u njegovu lozinku. To je vrlo uzbudljivo. A onda se instalira cijela hrpa alata. A osobito da će instalirati naredbenog retka. A onda ste mogli vidjeti Jeronim testiranje svoje slike. I onda na temelju toga, možete vidjeti da je YouTube misli da Nico je zainteresiran Star Wars The Jimmy Kimmel show, i mislim Ellen. Mislim da je zadnji je isječak iz Ellen show. Dakle Docker Toolbox ipak dolazi s više od samo Docker Machine. Dakle Docker Stroj je stvar koja pomaže postavite virtualni Stroj na vaš Windows ili Mac-- Windows kutiju ili Mac box-- i pomaže vam napraviti rezerviranja, No, ona također dolazi s Swarm i sastaviti, koji su dizajnirani kako bi vam pomoći napraviti veliki razmjera implementacije vašeg zahtjeva. Dakle, ako želite upravljati nakupine čvorova, nakupine kontejnera, Sastavljanje i Swarm su način da ide o tome. I naravno to dolazi s Lučki radnik motora i Kitematic, što je to desktop GUI. Također treba spomenuti lučki radnik Registra, koja nije uključena u Toolbox, ali to je način da pokrenete svoj vlastiti registri lučki radnik Slike kao lučki radnik Hub, ali također možete koristiti samo Lučki radnik Hub kao način za to. I, zemljište twist, vidite to radi u posudu. A to je kako smo distribuciju naših slajdova. Ova cijela prezentacija je zapravo HTML slajd palube. I to je pokrenut u spremnik koji možete dobiti by-- NICOLA Kabar: Da, tako je radi puno radno vrijeme na moj Max. A ja predstavljanja od njega. A ti samo učiniti lučki radnik nakon instalirate Toolbox. Vi samo možete učiniti lučki radnik trčanje i dobiti ga, i koristiti slajdove. MANO Marks: I to je to. Tako smo vam svima zahvaliti na dolasku. I mi smo rado odgovoriti na pitanja. Trebao bih spomenuti prije svakoga ostavlja postoji majice tamo. Žao nam je netko tko gleda ovo Livestream ili video, ali imamo lučki radnik majice tamo. A znamo lučki radnik učenika, i po mom iskustvu, profesori previše, kao što je besplatni odjeće. Zato vam svima zahvaliti izlazili. I pratite nas na Twitteru ako želite, ili ne. Ne zanima me. Također pratite lučki radnik na Twitter. To je također zanimljivo. I onda to je to. Docker.com. Hvala. [PLJESAK]