[Mūzikas atskaņošanai] DAVID Malan: Labi. Paldies jums tik daudz par ierašanos. Tas ir CS50 seminārs par dokers A tehnoloģija, kas mēs paši un CS50 ir sākuši izmantot jau kādu laiku tagad. Tātad mans vārds ir David Malan, es iemācīt Harvard ieviešanas uz datorzinātnēs. Jau ilgu gadus, mēs esam bijuši sniedzot studentiem lejupielādējama klienta pusē virtuālās mašīnas par kuriem viņi savas problēmas kopas. Ka mums tagad ir pārvietots uz mākoni vidē kas faktiski izmanto šo tehnoloģiju sauc dokers tā, ka visi CS50 studentiem tagad ir viņu Pašu dokers konteineri ka jūs drīz dzirdēt visu par. Turklāt, CS50 serveri sānu klasteris, daudzus gadus mēs, izmantojot Amazon Cloud serveri. Mēs bijām darbojas indivīdam virtuālās mašīnas. Ka arī mēs esam sākuši pāreju uz šīs lietas sauc par dokers konteineri tā ka visi mūsu pieteikumu tagad pilnīgi izolēti viens no otra. Tātad, un vēl, ļaujiet man iepazīstināt mūsu draugiem Nico un Mano, no dokers pati. NICOLA KABAR: Paldies, David. Sveiki visiem. Mans vārds ir Nico un tas ir Mano. Mēs esam no dokers. Mēs ejam, lai runāt about-- sniedzot jums puiši intro uz dokers, un cerams, uz beigām Šī diskusija jūs varat saprast cik daudz jūs varat izmantot ārstu, lai oksalāts savu lietojumprogrammu izstrādi un ieviešanai. Tātad, mēs ejam, lai sāktu nekustamā quick ar pamatinformāciju. Aprakstiet, kas dokers ir visu par. Kā tas darbojas? Kā tas ir arhitektūra? Man būs darīt dažas demonstrācijas. Un Mano būs aprakstot, kā jūs varat izmantot dokers un sniedzot jums īpašus pasākumus kā jūs varat sākt. Es būtu gandarīts, ja jūs guys var turēt off jūsu jautājumiem pret beigām. Tādā veidā, es varētu risināt tās Jautājumi visā prezentācijā. Tātad mēs ņemšu atvaļinājumu laiks beigās par jautājumiem. Tik vienkārši nekustamo ātri, kas ir faktiski kādreiz strādāja par dokers, līdzīgi spēlēja ar to? Awesome. Cool. Liels. Tātad, es esmu gatavojas sākt ar kādu vēsturi. Tātad atpakaļ '90s un agrīnā 2000s, būtībā kā web izstrādātājiem, app izstrādātājiem, kad viņi devās uz izvietot pieteikumu tas bija saistīts ar tukša metāla. Tas bija viens serveris. Tas bija viens pieteikums. Tradicionāli, piemērs būtu kā lampa kaudze, kur jūs faktiski nācās audzināt baseins resursu. CPU, atmiņas, disku, tīkla, elektroinstalācija operētājsistēma virsū, ka. Ja jūs apkalpo kaut ko, ja jūs tiešām, kam web serveri, jums ir nepieciešams kaut kas līdzīgs Apache kalpot tai. Ja jūsu pieteikums nepieciešams datu bāzes, backhand, jūs varētu instalēt kaut ko piemēram, MySQL, un tā tālāk. Un, ja jums ir nepieciešams palaist laikā, PHPs un PHP Python darbs tur bija. Un tā mēs faktiski nācās veikt šos soļus, lai lai saņemtu savu pieteikumu izveidota un darbojas. Ja jums nepieciešams vairāk skaitļošanas jaudu, jums būtībā bija, lai izsauktu Ops puisis vai gal iet un plaukts jauna aparatūras, pievienojiet to, un jums ir atkārtot tiem procesi atkal un atkal. Tātad šis process bija salīdzinoši dārga. Noteikti bija ļoti lēns. Tas bija neefektīva. Un ir daudz gadījumu, jūsu aparatūras bija nepietiekami. Tātad, vēlu '90s un agrīnā 2000s, aparatūras virtualizācijas nāca pāri. Un, kā jūs varat redzēt šeit bilde, būtībā, ko viņi darīja ir nošķirts portfeļa bezmaksas aparatūras resursus un veids kalpoja tiem uz augšējiem slāņiem, šajā gadījumā, viesu operētājsistēmu. Un visa ideja virtuālās mašīnas nāca pāri un kas patiesi palīdzēja Cloud skaitļošanas kā mēs to pazīstam šodien. Tātad, ko tas nozīmēja ir jums var palaist vairākas VMS, kas nozīmēja vairākus skursteņi, multiplā pieteikums par pašu fizisko mašīnu. Tas noteikti palīdzēja ar ātrums lietojumprogrammu izvietošanai. Noteikti ar izdevumiem. Jums nav, lai iet un tērēt enerģiju, laiku un resursus, lai plaukts vairāk serveriem, lai saņemtu lielāku compute. Un ātrums faktiski celt šie resursi up ir daudz ātrāk. Liels. Tātad mēs atrisināt badu pasaulē, vai ne? Nē, nav īsti. Tātad, virtualizācijas, cik vien tas ir tiešām palīdzēja, risināt šo problēmu, tas faktiski ieviesa daudz izaicinājumu. Hypervisor noteikti ieviesa daudz sarežģītības, apstrādes tās pamatā baseins resursu. Tas ir smagāks tādā ziņā, ka pirms jums bija viena operētājsistēma, kas ir kā trīs, četras koncertos uz diska. Tagad, ja jums ir 10 mašīnas uz vienu aparatūras Jums ir vairoties, ka ar mašīnu skaitu. Tas noteikti vairāk dārgs savā ziņā jūs joprojām ir, lai saņemtu licences par virtualizācijas tehnoloģiju ja tas nav open source. Bet, pieņemsim nav veikt visus kredīts no virtualizācijas. Jo tas, kas notika, ir tur ir no skursteņi un daudz programmatūru daudz tehnoloģijas, kas tika ļāva pēc tā, cik ātri jūs varēja iegūt resursiem ar Cloud uzplaukums. Tātad, šodien viena app vai pakalpojumu var būt, izmantojot kādu no šādiem runtimes vai datu bāzes. PHP, Python, MySQL, Redis, plauktiņš. Tātad tur ir daudz sarežģītības par šo skaits skursteņi faktiski audzināt vienots dienests. Un līdz ar to, ka jūs bija daudz pamatā esošie resursi un infrastruktūra veidi, lai pārbaudītu izvietot un būtībā veikt ražošanu šie pieteikumi ka jūs attīstās. Jo īpaši jūsu komandām ir Audzēti strādā pie šiem progr, tur ir daudz sarežģītība un izaicinājumi kas tika celta, lai nodrošinātu, ka cycle-- būtībā pieteikums attīstības ciklu, ir tiešām veiksmīga. Tātad tas, ka jūsu pieteikums strādā lokāli tavā VM negarantē, ka jūsu kolēģi gatavojas sagaidīt tādus pašus rezultātus. Un, kad operācijas komanda ir iesaistīti ņemot to, kas jums ir un izvēršot to ražošanā mērogu, arī nav garantijas ka tas ir faktiski gatavojas notikt. Tātad tas atstāj mūs ar ļoti big-- daudz jautājuma zīmes, daudz izaicinājumu faktiski saskaras līdzīgi atpakaļ dienās. Un kas mums atgādināja par kuģniecības nozarē. Tātad kuģniecības nozarē bija daudz preču, kā jūs varat redzēt kreisajā pusē. Un labajā pusē, tur ir daudz, galvenokārt, veidi, kā nosūtīt šīs preces. Un kas notiek, kā pāris folks sanāca kopā un teica: mums ir nepieciešams standartizēt cik mēs patiesībā kuģis šīm precēm. Un boom, jums ir intermodālo kuģniecības konteiners. Tāpēc viņi vienojās par visvairāk kopējie izmēri konteinerā. Kā rīkoties ar tām. Ko precīzs metode jums nepieciešams iekraut tos un izkraut tos. Un tāpēc, ka patiesi palīdzēja kuģniecības nozarē. Tagad vairāk nekā 90% fokuss transportē globāli izmanto šos konteinerus. Un tas noteikti samazinās izdevumus, kā arī bojājumi dēļ piegāde. Tātad mēs to pašu modeli, un mēs piemērot divu App attīstības programmatūru arhitektūra, kas nozīmē ka Konteineru paņēma virtualizācijas vienu līmeni. Tā vietā, lai dara, ka pie aparatūras līmenī, tā kļuva vairāk par darbības Sistēma līmeņa virtualizācijas. Un mēs to darām, ka, nodrošinot katram pieteikums savā viegls, izolētas, skrienams, un pārnēsājamie, pats galvenais, veids, lai faktiski paketes viss, kas tai vajadzīga, lai palaistu. Kaut kur to var darboties. Tātad, neatkarīgi, ja jūs izmantojat to vietējais dev vide, jūsu produkcija vide, jūsu inscenējums vai testēšana. Nav svarīgi, ko pamatā infrastruktūra ir tur, jums bija funkcionālu darba app. Tātad tas ir tieši tas būtībā konteineri darīt, lai šo problēmu. Viņi to risināt ar iepakojuma to tādā veidā ka tā var garantēt, ka tas ir izvietots veiksmīgi vienalga, kur tā dzīvo. Tātad, ja jūs gatavojas piemēram, Bob tas joprojām ir OK. Ja jūs sajaukt ar to, ko es saku, Es esmu būs paskaidrojumiem, ka. Tātad, kā tas dokers sevi iederas šo attēlu? Tātad dokers ir atvērta platforma viegli, uzsvērt viegli, būvēt kuģi, skrien, viegls portatīvais sevis pietiekams app konteineri jebkur. Tātad, ja esat lietojis kaut ko no šī runāt, lūdzu ņemt sekojošo. Ja jums ir jūsu app darbojas vietas un tu to attīstīja izmantošanā dokers platformu, gaidīt to varētu veiksmīgi izvietoti. Nav svarīgi, kāda ir Pamata infrastruktūra. Tātad, ja jums ir dokers konteineru un tas strādā, tad tik ilgi, kamēr tur ir dokers dzinējs, no otras side-- ja jūsu operāciju infrastruktūru izmanto jebkuru mākonis, vai tas ir AWS, vai Google vai Microsoft, vai kāds no valsts Mākoņi, vai savu Cloud, vai jūsu open kaudze Mākonis, vai jūsu vietējā vidē. Ja jums ir motors rādīt, ka līdzekļi tas būs veiksmīgi izvietoti tur. Tas notiek, darbojas tieši tas pats uzvedība kā jūs arhitektūra, ka tā ir. Tātad, ja mēs skatāmies at-- es esmu gatavojas iet caur to, kas patiesībā ir galvenajām sastāvdaļām dokers. Tātad Engine ir pamatā dokers. Tas ir smadzeņu. Tas nenovēršami māja, kuģniecības, un uzstādīšana un vadības paši konteineri. Es bakstīt ko Engine dara Sīkāk sekundē. Būtībā, jo doktors tika uzcelta ap klienta servera arhitektūras, tā, lai mijiedarbotos ar Dzinējs jums ir nepieciešams zināms no klienta veida. Attēli ir veidnes kas konteineri tiek būvētas no. Tātad attēli ir būtībā tikai statiski failus. Veidnes un konteineri patiesībā, kas ir darbojas runtime ka izcieš savu pieteikumu vai darot kaut ko ar datiem. Reģistrs ir adresēta kā problēmu kā jūs faktiski izplatīt attēlus. Tātad, ja jums ir nepieciešams, lai dalītos attēlu ka jūs strādāja par savam kolēģim vai uz ops komanda, jūs izmantot to, izmantojot reģistru. Jūs varat lejupielādēt atvērtā koda versija par to, ka dokers strādāja par un atvērtā koda. Vai arī jūs varat izmantot dokers palīdzība, kas ir Cloud variants push un velciet attēlu, kas tur. Tas ir milzīgs lieta. Jo tur ir milzīgs ekosistēma ap dokers un tas ir tiešām stipri izmantojot centrmezglu. Tātad, lai apkopotu šeit, tas ir, kā minimālisma dokers darbplūsmas klients. Jūs sazināties ar uzņēmēju, it Šajā gadījumā tas ir dokers dēmonu. Tas ir tas pats, kas Engine. Jūs darīt komandas, piemēram, Dokers būvēt, pull, palaist. Un Engine pati iet un dara tās lietas. Tātad, vai nu tas mijiedarbojas ar Reģistra vilkt šos attēlus un slāņi attēliem. Vai, ja jūs vēlaties izmantot, palaist konteineri, nogalināt tos, mest tos uz leju, plauktiņš. Tātad šis apkopoti darbplūsmu no visi no šiem komponentiem. Tātad, ja jūs veikt katru komponents ar sevi. Tātad Engine, tas ir tikai dēmonu. Tas būs sava veida spēlēt tā, lai atbalstītu tas uz Linux, jo tas pieprasīt veikt atsevišķus Linux kodola funkcijas. Bet Windows strādā par darot to pašu. Tas ir paredzēts, lai būtu jāatbalsta Windows Server 2016. Tātad, atkal, atbildība ar dzinējs ir, vai ir, veidot attēlus. Pull attēlus no dokers Hub vai savu kanceleja. Ja esat pabeidzis ar šiem attēliem vai jums izveidot jaunus attēlus, Jūs varat push tos atpakaļ reģistra izplatīt tos uz citām komandām. Un cenšas saturēt to uz vietas un pārvaldīt konteineri dzīves ciklu lokāli. Tā ir veidota ap HTTP REST API. Tātad tehniski iespējams uzrakstiet savu klientu tik ilgi, kamēr tā izmanto HTTP, kas ir ļoti standarta mehānisms, lai sarunātos ar Engine un daudz citu pakalpojumu. Un jūs varat redzēt no šeit, ka neatkarīgi no tā, ko infrastruktūras ir, kamēr jūs can-- visu Jums nepieciešams, ir darba sistēma, Linux konkrēti. Un jūs varat uzstādīt dokers dzinējs virsū, ka, un ir tā darbojas un tas nenovēršami, būtībā, visas šīs app viens, divi, un trīs ir faktiskie konteineri. Tātad tas ir Engine. Kā jau iepriekš minēju, jo Jums ir nepieciešams sazināties ar Engine, tur ir klients. Bet patiesībā, instalējot Dokers, tā kuģiem ar to. Tātad tas izpaužas uzstādītas, tāpēc tas ir viens bināro. Un jūs varat darīt vietējie zvani jūsu dokers Engine. Vai tālvadības zvani uz attāliem dzinējiem. Tas izmanto HTTP, kā Es iepriekš minēju. Tur ir GUI klients sauc Kitematic no dokers. Un tur ir noteikti daudz citiem ļaudīm kas ir ēkas daudz GUI, kas būtībā īsteno daži HTTP aicina runāt ar Engine. Tikai daži izlases komandas. Ja jūs dokers versiju, tas būtu parādīs klienta versiju, kā arī servera versija. Ja jūs dokers info tas būs pateiks visu informāciju par to, cik daudz konteineru darbojas vai izveidota, cik attēlus jums ir, un tā tālāk, un tā tālāk. Te man ir, jo blakus pēdējā kaste, man ir doktora palaist. Tātad, tas ir, kā es esmu patiešām radot trauku. Un es esmu, kas to echo Hello World un gulēt par otro un plauktiņš. Un jūs varat redzēt rezultāts. Tātad, tas ir nepārtraukts. Un līdzīgi Linux PS, jūs varat redzēt visi procesi un, šajā gadījumā, visi kustības konteineri. Tas viens ir atsaucoties atpakaļ konteiners es tikko izveidots. Tātad, tas ir patiešām svarīgi, jo, piemēram, tas var būt nedaudz mulsinoši. Tātad attēli ir tikai lasāma failu kolekcija, vai ne? Tie ir tas, ko mūsu konteiners ir balstīts uz. Bet viņi tikai lasāms. Tātad jums sākt ar bāzes attēlu. Tā ir tendence, lai atdarinātu OS līdzīgi, tāpēc Ubuntu, CentOS, plauktiņš bāze attēlu. Un tad jūs sākt veidot uz augšu ka daži slāņi, kas veido jūsu gala attēlu, gala rezultāts šeit. Un katrs no šiem slāņiem jābūt mātes tēlu ka tā atsauces kad to patiesībā vēlas izveidot. Tie ir negrozāma, tādā nozīmē, ka tāpēc, ka viņi tikai lasāmu, jūs nevarat patiešām veikt izmaiņas tiem. Jūs varat izmantot tos, lai izveidotu konteiners no attēla, kas sauksim visu turpmāko nepieciešamo attēlu zem tā. Jūs varat veikt izmaiņas uz citu slāni, tas ir pārrakstīt slānis es ņemšu runāt par sekundē. Bet katrs no šiem slāņiem ir nekad nav mainījies. Būtībā attēli izmantot kaut ko sauc Savienība failu sistēmu, UFS. Un tur ir dažādi uzglabāšana aizmugures, kas izmanto šo tehnoloģiju. Un ko tas nozīmē, ka tā apvieno atšķirīgas failu sistēmas padarīt tās izskatās viens. Tātad jūs faktiski var, no pieteikums perspektīva, Jums ir top skatu, kas parāda visas dažādās failu sistēma nepieciešama, lai šis pieteikums, lai palaistu. Bet viņi patiesībā, par to, viņi faktiski atsevišķās vietās un tiek izmantoti ar citas tvertnes, kā arī. Tātad, kā jūs varat redzēt šeit, ka ja mēs sāktu ar dēmonu attēlu kā bāzes attēlu, un pēc tam mēs ejam un pievienot [? Emacs?] un tad tas ir cits slānis. Un tad pievieno Apache. Tas ir vēl viens slānis. Un tad mēs tērēt konteiners no tā. Katrs no šiem attēliem, katrs no šiem slāņiem, ir atšķirīgs un var būt atkārtoti izmantot citos traukos. Ja paskatās paši konteineriem, viņi kaut kā, piemēram, VM-patīk, bet ne apstrādāts tajā pašā laikā. Tātad, viņiem nav, tehniski, tad pilna operētājsistēma zem tām. Viņi izmanto vienoto kodolu no uzņēmējas operētājsistēmu. Un viņi būvēt uz augšu, ka. Viņi atdarinātu, kā viņi izskatās. Viņi atdarina savu sakņu failu sistēma operētājsistēmas. Bet viņi patiesībā nav atdarināt. Tātad, tā vietā, nemainīgus slāņi, pēdējais slānis, kas ir konteiners pati, tas ir lasīt-rakstīt slānis. Tas arī vada procesus no jūsu pieteikumu. Un tas ir atkarīgs no pamatā esošajiem slāņiem. Katrs konteiners ir izveidots no attēla. Un tas tēls var būt viena slānis vai daudzslāņu attēlu. Un es gribu atzīmēt šeit ka dokers stipri izmanto, vai ir balstīts uz Copy-On-Write mehānismu. Tā, ka, faktiski, ja jūs neesat veikt izmaiņas uz konteinera, tas nav gatavojas veikt papildu vietu. Tātad, tas ir būtībā kā jūs Apkopojot Kopēšanas-On-rakstīt. Tas būs noteikti paātrinātu boot laiks uz konteinera. Jo, ja jūs neesat padarot izmaiņas konteinera, tas ir, izmantojot to, kas jau ir tur. Tātad, kā tas faktiski darbojas. Daļa no tā ir tāpat, tieši tagad, to izmanto vismaz divus galvenos kodolu Iespējas. Un tas ir būtībā kas izveidots, ka izolācijas līmeni pašiem konteineriem. Šīs funkcijas ir nosaukumvietas un cgroups. Tātad nosaukumvietas ir veids, kā izveidot atsevišķus resursus, tā, ka saskaņā ar konteinera, tikai jūs varat redzēt dažus resursus. Piemēram, tīklu interfeisu vai daži lietotāji vai plauktiņš. Un tie ir redzami, un tikai tikai pieejams konteinerā. Cgroup otrpus robežām kā jūs izmantot šos resursus. CPU, atmiņas, un disks. Kad jūs varat iet, es domāju tie ir reāli iezīmes, kas tika izstrādāti pēc-- viņi ir daļa no Linux kodola. Tātad tie nav izgudrots no jauna ar vai pārbūvēts pēc dokers. Dokers tos izmanto. Kas Doctor tiešām šeit ir faktiski tas Orchestrated radot nosaukumvietas katram konteinera un radot cgroups tāpēc, ka tā ir smieklīgi viegli izveidot konteineri Izmantojot šīs funkcijas. Protams, kā jau aprakstīts iepriekš, Union Failu sistēmas un Copy-On-rakstīt patiesi palīdzēt ātrumu un disku konteineru izmantošana. Un, kad jūs saņemsiet savu rokas ap dokers, jūs gatavojas redzēt, cik ātri tas ir faktiski spin up konteinerus un asaru tos uz leju. Tātad, ja jūs varētu jautāt, kā var jūs faktiski veidot attēlus? Mēs būvējam attēlus ar radīšanas procesā konteineri un veikt izmaiņas, grozot viņiem, un apņemoties tos vērā kļūstot attēlu. Tātad tas ir vistas un ola atskaites šeit, jo visi konteineri no attēlus un attēli nākt no izdarīti konteineriem, lielākoties. Ir trīs varianti veidot attēlus. Es esmu gatavojas, lai aprakstītu pirmais un pēdējais. Jūs varat vai nu manuāli iet un palaist trauku un veikt šīs izmaiņas, kā jūs varētu darīt jebkurā VM vai jebkuru operētājsistēmu, piemēram kā uzstādot jaunu binaries, pievienojot failu sistēmas, un plauktiņš. Un tad jūs izejat, kā Jūs varat redzēt tur. Es esmu aizejošais savu tvertni. Un tad es esmu dara dokers izdarīt. Un es esmu izdarījusi, ka. Jūs varat redzēt, ka numurs šeit ir tikai UUID, vai pirmais 12 biti UUID. Vai baiti no UUID. Un tad es esmu aicinot to mans tēls. Tāpēc tagad dokers rūpējas Ierakstot viss, ko es darīju to un radot jauno attēls, pamatojoties uz to. Es neesmu gatavojas runāt par tarball, bet tur ir veids, kā jūs varat saņemt vienu, Izveidot vienotu, vai veikt vienu slānis attēlu, izmantojot tarballs. Ko es esmu gatavojas runāt par to un to, kas ir galvenokārt izmanto šodien, ir Dockerfile. Kas ir tehniski pirmais soli automatizēt dokers pati. Tātad Dockerfiles ir lietas, ka jūs esat gatavojas redzēt daudz GitHub repo šodien. Tas ir būtībā tikai teksta failu aprakstot tieši tā, kā veidot tēlu. Un par katru līniju, tas tiešām rada konteiners, izpilda šo līniju, apņemas, ka konteiners par a jaunu attēlu, un jūs, būtībā, izmantot to visās turpmākajās darbībās līdz jums pēdējā attēla. Kas būtībā ir gala mērķis šeit, beigas. Un pēc tam, kad exec-- pēc jums uzrakstiet Dockerfile, kas ir tikai tekstā, jūs darīt dokers būvēt un nosaukums attēla. Un jūs brīdi, ka tas ir kur Dockerfile ir. Un jūs varat gaidīt, lai redzētu manu attēlu kā attēls, kas jums ir uz vietas. Tātad tas ir tikai vizuāls piemērs, kas notiek. Tu sāc ar bāzes attēlu. Tu palaist ka traukā, kas nemaina bāzes attēlu pati. Bet tā vietā rada pārrakstīt slānis virs tā kur jūs veicat izmaiņas, kurā jūs izdarīt un jūs atkārtojiet procesu līdz Jūs saņemsiet uz savu gala attēlu. Un, to darot, katru otro būvēt process var izmantot tos pašus slāņi un same-- būtībā Dokers kešatmiņas šos slāņus. Tāpēc, ka, ja es daru to pašu precīzu process, bet tā vietā uzstādot PHP, Es esmu uzstādot Python. Tas gatavojas izmantot Apache un Ubuntu. Tātad šādā veidā jūs esat, izmantojot jūsu diska. Tas ir, izmantojot kešatmiņu un pieejamie attēli tur. Galīgo gabals ir reģistrs, kas ir, kā jūs izplatīt jūsu attēliem. Un, kā jau iepriekš minēju, tur ir Cloud versija par to, kas ir dokers Hub. Jūs varat iet un izpētīt daudz, galvenokārt tas ir publisks SAS produkts, kas jūs varat būt privātās attēlus, bet tur ir daudz sabiedrisko attēlus. Tas ir faktiski neierobežots, jūs varat push neierobežotu sabiedrisko attēlus tur. Un tas ir, kā jūs varat sadarboties ar savu komandu. Jūs varat norādīt tos tu repo un viņi var lejupielādēt vai savu tēlu un viņi var lejupielādēt to. Tātad pietiek ar runāt. Kas grib redzēt dažas demonstrācijas nekustamo ātri? Viss kārtībā. Tātad, šeit man ir. Ca jūs guys redzēt manu ekrānu? Viss kārtībā. Tāpēc man ir dokers darboties šeit, tāpēc es var pārbaudīt it's-- Šī ir versija no dokers kas ir darbojas. Var darīt dokers info. Pārbaudiet visu informāciju par to, cik attēlus viņi ir, un tā tālāk, un tā tālāk. Dokers PS, tur nekas darbojas. Saliktās tiem. Tātad pirmā lieta, ko es gribu darīt, ir parādīt jums, kā jūs varat viegli palaist trauku. Tātad skaistums par Ārsts palaist, ja tas faktiski neatrod attēlu uz vietas, pēc noklusējuma tā runā ar Doctor Hub un mēģina atrast to tur un lejupielādes to you. Tātad tas ietver dokers pull komandu, protams. Tātad, ja es to dokers palaist, hello-pasauli. Tātad, vispirms tas notiek mēģināt, lai to atrastu. Pretējā gadījumā, kā jūs varat redzēt šeit, tā nevarēja atrast to uz vietas. Tieši tagad tas tikai velk divas kārtas kas padarīja šo tēlu, un es ilga to. Hello-pasaule ir tikai pamatā izejas, ko esat darīts. Tātad tas ir vieglākais, viens vieglākais piemēri. Tik tiešām es tikai skrēja un izbeigts konteiners nekustamo ātri. Ja es gribu run-- un starp citu, ja Es gribu, lai laiku, kas, tikai, lai jūs zināt, tas ir, cik ilgi nepieciešams, lai faktiski spin up un satur to. Mēs esam mērot to milisekundēs. Tātad jūs varat redzēt, cik daudz tas var reāli palīdzēt jums ne tikai testēšanai, bet arī pat izvietošanu. Tātad tas ir ātrs piezīme par to. Nākamā lieta, ko es esmu gatavojas darīt, ir faktiski palaist attēlu Esmu jau sagatavots. Tātad dokers palaist. -D ir tikai karogs, lai pastāstītu to fonā. Un -P uztic dažus ostām. Jo pēc noklusējuma, konteineri ir izolētas, tāpēc jums ir precīzi norādīt kā tā var tiem piekļūt. Un šajā gadījumā, es esmu stāsta dokers kartēt izlases portu uzņēmējas uz norādīto ostu pats iepakojums. Un tas būtībā kur image-- Cerams, ka tas ir pareizais. Tātad tas paralēli lejupielādes katrs no šiem slāņiem, kā jūs varat redzēt šeit. Tie ir slāņi padarīt gals tēls ka es būvētas. Tas ir gatavojas veikt otru. Un voila. Tāpēc tagad, ja man darīt krāvējs PS, es būtu redzēt kaut ko, kas darbojas. Es būtu redzēt ID, attēlu ka šis tas bija balstīts off, un komanda, kas tika izpildīts. Un kā piekļūt tas ir būtībā jūs iet uz šo ostu. Tāpēc es iešu kuri paredzēti, šis tiek Es skrienu to AWS. Es iešu uz 32769. Hmm. Un šeit mēs iet. Tātad tas ir faktiski tikai interneta pakalpojums, kas parāda kas konteiners tas tiek pasniegtas no. Tātad jūs varat redzēt, ka tas No konteinera a9f. Un šeit tas ir Nosaukums konteinera. Tātad jūs guys var redzēt, cik ātri tas bija faktiski ne tikai pull, bet arī izvietot šo tvertni. Tagad nākamais solis ir ieskatīties Dockerfiles un kā mēs varam reāli būvēt jaunus attēlus. Es esmu tikai gatavojas iet saņemt klons A paraugs Dockerfile pamatojoties uz agrāko diagramma, viens, lai Apache un PHP. Cerams, ka es atceros savu repo. Tāpēc man ir mana krātuvi tiesības tagad. Un jūs gatavojas redzēt tas ir daudz patiesībā. Man nav instalēt koku. Tātad būtībā jūs gatavojas, lai redzētu, kā Jūsu pirmkodu dokumentāciju apkārt tā, un tad Dockerfile par kā faktiski iepakot to. Tātad tas ir tikai paraugs PHP kas atbalso sveiks CS50. Tātad, ja es gribu, lai palaistu to, Es darīšu dokers būvēt. Man ir veidot tā pirmo reizi. Es esmu gatavojas nosaukt to demo_cs50. Un jums ir nepieciešams tag to too. So sauksim to V1 dot. Tā kā es aprakstīju iepriekš, Ko es daru šodien tiek Es esmu stāsta dokers iet izmantošanu that-- faktiski, sorry, mans slikti. Mums nav to apskatīt tajā pašā Dockerfile. Tātad vienīgās lietas šeit ir index.php kā arī Readme failu un Dockerfile. Tātad, ja jūs to apskatīt Dockerfile, tāpēc tas ir ļoti līdzīgs tam, ko Es aprakstīju iepriekš. Tas ir tikai ķekars soļi, kas dokers izpilda izveidojot un nojaukšanu konteineri un [? skaitīšana?] tos attēlu. Un būtībā jūs varat see-- [dzirdams] to here-- bet tas ir no vietējā repo. Tas notiek, lai iet un paķert index.php. Tātad tas ir vienīgais avots kodu, kas Ir faktiski ir daļa no jūsu pieteikumu. Tas viss ir būtībā operētājsistēma santehnika, iegūt tiesības paketes un Apache, un PHP, un plauktiņš. Bet tas ir faktiski, ņemot index.php un izdara to traukā, tēlā. Tātad, ja jums iet uz priekšu un palaist komandu, veicot šādas darbības, tas going-- faktiski, tas varētu būt mazliet. Cerams, ka tas nav pārāk ilgi. Tātad jūs varat redzēt soļus. Un es aicinu jūs iet mājās šodien un izmēģināt to. Un Mano būs aprakstīt kā tieši jūs darīt. Bet tas ir tiešām liels, lai redzētu tieši kas notiek aizkulisēs. Bet tas ir smieklīgi viegli veidot attēlus un izvietot tos, izmantojot dokers. Tas ir ņemot mazliet ilgāk, nekā es gaidīju. Let 's redzēt, kas notiek, kad you-- atdzist. Tātad, kā jūs varat redzēt, katru no šiem soļiem pārstāvēt līnijas ar Dockerfile. Un tas liecina, ka šeit tā veiksmīgi uzbūvēta šo attēlu. Tātad, ja man dokers attēlus, es esmu gatavojas redzēt visus attēlus, kas man ir uz vietas. Un viens no tiem sauc manu lietotājvārds, un nosaukums attēla, un tag representing-- galvenokārt tas ir versija tag. Tāpēc tagad, ja es gribu palaist tas, man dokers palaist. Un es tikai gribu darīt-d-p. Vai v1. Tāpēc es redzu tagad, ka man ir divi konteineri darbojas, vienu, kas man tikko izveidota un sveiki Dokers viens, ka es pēdējo reizi saņēmu. Un jūs varat redzēt šeit, ka tā piešķirts tas atšķirīgs ostas. Tātad, ja es eju uz to pašu IP, bet nodot to atšķirīgs port-- cerams man nebija. Tāpēc tagad tas ir pieteikums ka es tikko izvietoti. Ja es vēlos veikt izmaiņas, es var ātri labot pirmkodu un darīt šādi. Darīsim sveiks Harvard. Tāpēc tagad, kas notiek notikt ir tas, ka es esmu gatavojas tag to ar atšķirīgs version-- oh, ne šis guy-- trāpi ar dažādas versijas. Un jūs gatavojas see-- jūs guys gaidīt tā, lai ņemtu to pašu laiku veidot to otrreiz, vai ne? Labi, un ikviens zina, kāpēc? Runā skaļāk. Mērķauditorija: [dzirdams] NICOLA KABAR: Tas būtībā mēs mainīt tikai vienu no vēlākos posmos. Un tāpēc tas notiek, lai izmantotu kešatmiņu un izmantot katru no šiem slāņiem. Un tas ir patiesi daži no killer iezīmes dokers ir, kā tas faktiski izmanto un otrreizējs pārņemšanu Jūsu disks pats precīzas informācijas daļas. Tātad, ja mēs darīt to pašu, tas bija tikai pāris sekundes. Ja mēs gribam, lai redeploy-- tāpēc tagad Man ir trīs konteineri. Bet tas viens tiek kalpoja par the-- Seven One. Tāpēc tagad ir pienācis trešais konteiners. Ikvienam saprast ko es tikko bija šeit? Tāpēc tagad, ja jūs vēlaties, lai dalītos šī konteiners nekustamo ātri ar saviem draugiem, jūs varat vienkārši darīt dokers push Nosaukums konteinera, cerams. Tāpēc tagad tas notiek, lai push to kuri paredzēti, es neesmu pierakstījies šeit. Atvaino par to. Bet es neesmu gatavojas novērst šo tagad. Bet būtībā, ka viena komanda ir tikai iet uz augšu push to. Un jūs gatavojas, lai varētu redzēt, ja jums iet uz dokers Hub Un jūs pieteikties, jūs esat būs iespēja to redzēt. Un tad jūs varat vienkārši norādīt kurš gatavojas izmantot šo attēlu, lai iet un velciet to. Un viņi var izmantot. Ar to, ka, cerams, Es veida pierādīta cik viegli ir strādāt ar dokers. Un es esmu tikai gatavojas dot to atpakaļ uz Mano. Un viņš gatavojas ņemt to no šejienes. MANO MARKS: Labi paldies, paldies Nico. Tātad, ko? Tātad viena no lietām, ko es gribēja darīt, ir likt kopā kāpēc tas ir important-- kāpēc dokers un kāpēc konteineri ir šāds svarīgs jaunu attīstības, jauns veids, kā patiesībā dara programmatūru. Un pirms es daru, es esmu gatavojas vienkārši ieviest dažas stats. Es neesmu gatavojas lasīt visus šos. Bet tas parāda daudz par to, kā populārs tas ir sabiedrībā. Galvenās dokers tehnoloģijas ir atvērtā koda. Tātad tas ir dokers Engine, sacerēt, Swarm, ķekars citas lietas ir viss open source. Un mums ir, ko es teikt, 1300 atbalstītājus. Jūs redzēt tagad, ja paskatās skaits vakanču, pēdējo reizi mēs skatījāmies, tas bija aptuveni 43,000 darbs atveres īpaši pieminot familiaritāte ar dokers. Simtiem miljonu attēli lejupielādēti no dokers Hub. Un, labi, daudz lieli stats. Tiem, kas ir ziņkārīgs, to sākotnēji tika uzrakstīts Python un pēc tam pārrakstīt uz Go. Un tas ir tikai bijis atvērt source-- tas ir tikai izlaistas apmēram 2 un 1/2 gadus, kas nozīmē, ka 2. un 1/2 gadus, mēs esam redzējuši milzīgu izaugsmes un nozīmi Tas sabiedrībā. Un tāpēc es gribu runāt mazliet par to, kāpēc. Tik vienkārši atkārtot dažus Nico ir galvenie punkti, dokers ir ātrs. Tas ir pārnēsājamas. Tas ir reproducējama. Un tas izveido standarta vidi. Un what-- tas ir mans crappy izskaust Monoliths slide-- ko tas palīdzētu cilvēkiem darīt, kas daudz programmatūras industrijas sāka darīt In 2000. gadu sākumā, virzās no šiem monolīta vienoto pieteikumu kur katrs atkarība bija jābūt pārbaudīta pirms viss app bija jāizvieto, kas varētu nozīmēt mājas lapā tikai got izmantoti vienreiz reizi trijos mēnešos, vai vairāk, ar daudz vairāk pakalpojumu orientēta arhitektūra vai componentized dažāda tipa Pieteikuma arhitektūru. Un tā ļaujot tiem veida arhitektūras ka izmantot Dokers darboties šie trīs galvenās attīstības jomas, kas ir izstrādes rakstot savu faktisko kodu, testēšana savu kodu, un izvēršot to. Tātad, kāpēc tas ir svarīgi? Ja esat a-- ļaujiet man sniegt piemēru. Ja jums ir mājas ierīce izstrādātājs, jūs esat izstrādājot mājas lapu, kas ir balstīts uz datu bāzi, kas David ražo vairāk nekā šeit. Atvainojiet David, es esmu aicinot jums out. Ja jūs vēlētos, lai izvietotu viss, jūs jāgaida zem tradicionāla monolīta programmatūras izstrādes vide, jūs ir jāgaida kamēr viņš bija darīts ar datu bāzi Pirms jūs faktiski varētu veikt jebkādas izmaiņas jūsu mājas lapā. Jūs ir pārcelt Visa pieteikums to darīt. Un ko dokers palīdz jums jādara, ir katra persona darbs dažādiem komponentiem un atjaunināt tos kā viņi iet, tikai veicot drošs, ka pārejas nemainās. Tātad, kas tas ir darīts tas ir nobīdīts cilvēkus no darot šīm masveida monolīts arhitektūra programmatūra, kas izvietoti ik mēnesi nepārtraukts integrācija un nepārtraukta attīstība vide. Tagad tas nav unikāls dokers, bet dokers padara to tik daudz vieglāk, kas nozīmē, ka jūs esat būtībā pastāvīgi izvēršot. Mēs runājam ar uzņēmumiem, kas ir izmantojot valsts Facing pieteikumus tūkstošiem reižu dienā, jo viņi redz vērtību tikai veicot nelielas izmaiņas, un tik ilgi, kā tas iet cauri pārbaudījumiem, ļaujot tam iet ārā ražošanā. Nico vienmēr bija spēcīgi mani agrāk, ka daudzās vidēs, standartnovirze dzīves cikls konteiners tiek mērīts sekundes, tā kā virtuālo mašīnu varētu tikt izteikts mēnešos. Es gribēju ņemt nelielu savukārt šeit, jo es esmu izglītības iestādē. Es gribēju, lai dotu piemēru, kā Tas darbojas izglītības pētniecībā situācija. Tātad tur ir organizācija sauc par bioboxes. Bioboxes dara DNS analīze pētniekiem. Tagad to, ko viņi atklāja, bija tas, ka tad, kad researcher-- un tas nav vaina kādu konkrētu researcher-- bet, kad pētnieks izvietoti algoritms, lai analizētu, Īpašā veidā, DNS paraugu, viņi varētu rakstīt programmatūru, publicēt, ka, varbūt, lai GitHub vai kaut kur citur, un pēc tam tie tika darīts. Nu problēma bija tā, ka to nebija obligāti atkārtojami. Jo lai saprast programmatūru, tie tiktu izveidotas, lai Precīzs izstrādes vide ka pētnieks izmanto, parasti to portatīvo datoru, vai servera, vai datu centrēt ka viņi izmanto. Un līdz ar to, tas bija ļoti grūti reproducēt pētījumu rezultātus, kad analizējot DNS paraugus, lai meklētu uz lietām, piemēram incidence-- salīdzināt saslimstību ar sirds uzbrukumiem pamatojoties uz konkrētiem gēniem klātbūtnes, piemēram, vai vēža risku, vai kādu citu veidu lietas. Tātad, ko viņi darīja, bija vietā viņi sāka radīt konteinerus. Un jūs varat doties uz bioboxes.org, tā ir lieliska organizācija. Un ko viņi dara, ir tie ražot konteineri, balstoties uz pētījumiem. Un tad, kad kāds sūta savā izlasē, viņi var palaist. Un tas ir visas vidi nepieciešama, lai vadītu šo algoritmu un uzrādīt rezultātus. Un viņi uzskatot, ka viņi daudz biežāk un daudz ātrāk spētu atgrieztos rezultātus cilvēkiem. Un patiesībā, ko cilvēki dara darbojas savu analīzi par DNS, nosūtot ka uz bioboxes, un tad biobox vienkārši ņem datus, vada to pret šķirni Dažādu konteineri lai redzētu dažādus rezultātus balstoties uz dažādiem pētījumiem. Tātad, tas ir ļoti spēcīgs Veids, kā zinātnieki var veikt vienu gadījumu, kas ļauj citi cilvēki, lai mēģinātu un pavairot rezultāti. Tātad, kā jūs sāktu? Mums ir labi atbalstīta uz Linux. Tātad, ja jūs vēlaties, lai instalētu kaut uz Linux, jūs izmantojat savu standarta paketes vadītājs uzstādīt. Ja jūs izmantojat Debian, tas ir apt get. CentOS ir Yum. Fedora Red Hat ir rpm-- es neatceros. Anyway, tas viss tur. Mēs atbalstām visdažādākos Linux sadalēm. Jūs varat pārbaudīt tos out. Mums ir arī iespējas, lai jums varētu palaist uz Mac vai Windows. Tagad Nico jau iepriekš minēts, ka tā atbalstīja tikai uz Linux. Tas ir taisnība, jo tas vajag Linux kodolu. Bet, jūs varat palaist virtuālo mašīnu. Un ko dokers Toolbox tas, ko jūs varat lejupielādēt, tas dod jums šo virtuālo mašīnu. Tik vienkārši ātri 48 otrkārt, es domāju, lejupielādēt. Jūs vienkārši meklēt par dokers Toolbox, lejupielādēt to uz Mac, un šī daļa ir no Protams jāpaātrina jo kurš grib skatīties lejupielādes signālu? Standard Mac uzstādīšana, un tad tu esi gatavojas redzēt Jerome likt viņa paroli. Tas ir ļoti aizraujoši. Un tad tas instalē viss ķekars instrumentus. Un it īpaši tas būs instalēt komandrindu. Un tad jūs varētu redzēt Jerome testēšanas savus attēlus. Un tad, pamatojoties uz to, Jūs varat redzēt, ka YouTube uzskata, ka Niko ir ieinteresēta Star Wars, The Jimmy Kimmel šovs, un es domāju, ka Ellen. Es domāju, ka pēdējais ir klips no Ellen šovu. Tātad dokers Toolbox gan nāk ar vairāk nekā tikai dokers Machine. Tātad dokers Machine ir lieta, kas palīdz jums izveidot virtuālo mašīna uz jūsu Windows vai Mac-- Windows kastē vai jūsu Mac box-- un palīdz jums darīt uzkrājumus, Bet tas arī nāk ar Swarm un sacerēt, kas ir paredzēti, lai palīdzētu jums liels mēroga izvietošanu savu pieteikumu. Tātad, ja jūs vēlaties, lai pārvaldītu klasteru mezglu, kopas konteineru, sacerēt un Swarm ir veids, kā iet par to. Un, protams, tas nāk ar Dokers Dzinējs un Kitematic, kas ir šis desktop GUI. Es būtu arī pieminēt dokers kanceleja, kas nav iekļauta Toolbox, bet tas ir veids, lai jūs varētu vadīt savu reģistros dokers attēlus, piemēram, dokers Hub, bet jūs varat arī vienkārši izmantot Dokers Hub kā veids, lai to izdarītu. Un, gabals vērpjot, jūs redzēt tā darbojas konteinerā. Un tas, kā mēs esam izplatot mūsu slaidus. Tas viss ir prezentācija faktiski HTML slide klāja. Un tas ir stiepjas konteiners, kurā jūs varat saņemt pēc-- NICOLA KABAR: Jā, tā tas ir darbojas pilna laika par manu Max. Un es esmu uzrādot no tā. Un jūs vienkārši darīt dokers pēc jūs instalēt jūsu kompleksa. Jūs varat vienkārši darīt dokers palaist un saņemt to, un izmantot slaidus. MANO ZĪMES: Un tas arī viss. Tātad, mēs pateicamies jums visiem par ierašanos. Un mēs esam priecīgi atbildēt uz jautājumiem. Es būtu pieminēt pirms kāds atstāj tur ir T-krekli tur. Atvainojiet ikviens, kurš skatās šo par LiveStream vai video, bet mums ir dokers T-krekli tur. Un mēs zinām dokers studenti, un mana pieredze, profesori arī, piemēram, bezmaksas apģērbu. Tātad paldies visiem par iznāks. Un sekot mums par čivināt ja jūs vēlaties, vai nav. Man vienalga. Arī sekot dokers Twitter. Tas ir interesanti. Un tad tas arī viss. Docker.com. Paldies. [Aplausi]