[Daqq tal-mużika] DAVID Malan: Kull dritt. Grazzi tant għall ġejjin. Dan huwa seminar CS50 fuq Docker, a teknoloġija li aħna lilna nfusna u CS50 bdew jużaw għal xi żmien issa. Allura jien jisimni David Malan, I jgħallmu Introduzzjoni Harvard li Computer Science. Għal pjuttost xi snin, aħna kont qed jagħtu istudenti downloaded client-side magni virtwali li fuqhom jagħmlu problemi tagħhom settijiet. Li għandna issa transitioned għal ambjent Cloud li effettivament juża din it-teknoloġija imsejħa Docker, b'mod li l-CS50 kollha istudenti issa għandhom tagħhom kontenituri Docker stess li tkun taf dalwaqt tisma kollha madwar. Barra minn hekk, fuq is-server CS50 s cluster naħa, għal ħafna snin aħna kienu qed jużaw server Cloud Amazon. Aħna kienu qed jaħdmu individwali magni virtwali. Li wisq, konna beda biex jgħaddi għal dawn l-affarijiet imsejħa kontenituri Docker sabiex dawk kollha li l-applikazzjonijiet tagħna huma issa perfettament iżolati minn xulxin. Allura għal dan u aktar, ippermettuli jintroduċu ħbieb tagħna, Nico u Mano, minn Docker innifsu. Nicola KABAR: Grazzi, David. Hello Kulhadd. Jisimni Nico u dan huwa Mano. Aħna minn Docker. Aħna ser jkun jitkellem about-- giving you guys intro għall Docker, u wieħed jittama, lejn l-aħħar ta 'dan talk inti tista tirrealizza kemm inti tista 'tuża tabib biex Oxalate żvilupp ta 'applikazzjoni tiegħek u l-iskjerament. Allura, aħna qed tmur biex tibda off reali quick ma 'xi informazzjoni ta' sfond. Iddeskrivi dak Docker hija kollha madwar. Kif taħdem? Kif huwa architected? I se tkun qed twettaq xi demos. U Mano se tkun jiddeskrivi kif tista 'tuża Docker u giving you passi speċifiċi kif tista 'tibda. Napprezza jekk inti guys tista 'żżomm off għall-mistoqsijiet tiegħek lejn l-aħħar. B'dan il-mod, I tkun qed tindirizza dawk mistoqsijiet matul il-preżentazzjoni. Allura aħna ser tħalli xi żmien lejn it-tmiem għall-mistoqsijiet. Hekk biss reali malajr, li għandu attwalment qatt ħadem fuq Docker, bħal lagħbu magħha? Tal-biża. Kessaħ. Great. Allura, jien ser tibda ma xi storja. Allura lura fil-snin 90 u 2000ijiet kmieni, bażikament kif iżviluppaturi tal-web, l-iżviluppaturi app, meta dawn marru biex tuża l-applikazzjoni kien marbut li bare metall. Kien server wieħed. Kien applikazzjoni waħda. Tradizzjonalment, eżempju tkun bħal munzell BOZZA, fejn inti fil-fatt kellhom iġibu l-ġabra ta 'riżorsi. CPU, memorja, disk, network, installazzjoni sistema operattiva li fuq kollox. Jekk inti qed sservi xi ħaġa, jekk int attwalment jkollhom web server, għandek bżonn xi ħaġa bħal Apache biex iserviha. Jekk l-applikazzjoni tiegħek jeħtieġ database, backhand, inti jinstallaw xi ħaġa bħal MySQL, u l-bqija. U jekk għandek bżonn l-ħin ta 'tħaddim, PHPs u x-xogħol PHP Python kien hemm. U hekk aħna attwalment kellhom jieħdu dawk il-passi sabiex biex jiksbu l-applikazzjoni tiegħek u titħaddem. Jekk għandek bżonn ta 'enerġija aktar jikkomputa, inti bażikament kellu sejħa Operattiv Guy tiegħek jew gal li tmur u rack up a ġdid biċċa ta 'hardware, waħħalha, u inti għandek jirrepetu dawk proċessi u għal darb'oħra. Allura dan il-proċess kien relattivament jiswew ħafna flus. Kien definittivament bil-mod ħafna. Kien ineffiċjenti. U fil-lott ta 'każijiet, tiegħek hardware kien sfruttat biżżejjed. Allura, fil-snin 90 tard u 2000s kmieni, Virtualization hardware sab. U kif tista 'tara hawn fil- stampa, bażikament x'għamlu huwa estratt l-grupp ta ' riżorsi hardware ħielsa u tip ta 'serva dawk għall-saffi ta 'fuq, f'dan il-każ, mistieden sistema operattiva. U l-idea kollha ta ' magni virtwali sab u li verament għenu Cloud computing kif nafuh illum. Allura dak li fisser huwa inti tista 'taħdem multipli VMs, li fisser stacks multipli, multipli applikazzjoni fuq istess magna fiżika. Dan żgur għen mal- veloċità ta 'skjerament applikazzjoni. Żgur bi spejjeż. Inti ma għandekx tmur u jonfqu enerġija, iż-żmien, u r-riżorsi biex rack servers aktar biex jiksbu aktar jikkomputa. U l-veloċità tal-fatt li jġibu dawk ir-riżorsi up huwa ħafna aktar mgħaġġla. Great. Allura aħna solvuti ġuħ fid-dinja, id-dritt? Le, mhux verament. Allura, Virtualization kemm huwa fil-fatt għenu, jindirizzaw il-problema, fil-fatt introduċiet ħafna sfidi. Il hypervisor definittivament introduċa ħafna ta 'komplessità, immaniġġjar dawk sottostanti ġabra ta 'riżorsi. Huwa itqal fis-sens li qabel kellek sistema operattiva waħda li huwa simili tliet, erba gigs fuq disk. Issa, jekk għandek 10 magni fuq hardware waħda inti għandek timmultiplika din bin-numru ta 'magni. Huwa definittivament aktar għaljin f'sens inti xorta għandek tikseb liċenzjar għall it-teknoloġija Virtualization jekk mhuwiex sors miftuħ. Iżda, ejja ma jieħdu l- kreditu minn Virtualization. Minħabba dak li ġara huwa hemm Ħafna stacks u lottijiet ta 'softwer teknoloġiji li kienu ppermettiet mill kif fast inti kienu kapaċi tikseb li riżorsi ma 'l-isplużjoni Cloud. Allura, illum app jew servizz uniku jista tkun qed tuża xi waħda mill-runtimes ġejjin jew databases. PHP, Python, MySQL, REDIS, whatnot. Allura hemm ħafna ta 'komplessità fuq dan numru ta 'stacks li attwalment iġibu l servizz wieħed. U flimkien ma 'dan, kellek ħafna ta' riżorsi jew infrastruttura sottostanti tipi li jittestjaw jużaw u bażikament tieħu għall-produzzjoni dawk l-applikazzjonijiet li qed jiżviluppaw. Speċjalment fir timijiet tiegħek għandhom mkabbra jaħdmu fuq dawk apps, hemm ħafna ta ' kumplessità u l-isfidi li kienu reżi biex jiġi żgurat li l cycle-- bażikament applikazzjoni ċiklu ta 'żvilupp, hija attwalment suċċess. Għalhekk, il-fatt li l-applikazzjoni tiegħek qed taħdem lokalment fuq VM lokali tiegħek ma tiggarantix li kollega tiegħek se jistennew l-istess riżultati. U meta t-tim operazzjonijiet huwa involuti fit-teħid dak li għandek u l-iskjerament fil-produzzjoni iskala, ukoll hemm ebda garanzija li dan fil-fatt jiġri. Allura dan iħalli us ma 'verament big-- ħafna trade marks in kwistjoni, ħafna sfidi fil-fatt ffaċċjati bl-istess mod lura fil-jum. U li fakkruna ta l-industrija tat-tbaħħir. Allura l-industrija tat-tbaħħir kellhom ħafna ta 'oġġetti, kif tista 'tara fuq in-naħa tax-xellug. U fuq il-lemin, hemm ħafna ta ', bażikament, modi biex vapur dawk l-oġġetti. U x'jiġri bħala koppja folks daħal flimkien u qal, għandna bżonn li jiġu standardizzati kif aħna fil-fatt vapur dawk l-oġġetti. U boma, inti għandek l- tbaħħir kontenitur intermodali. Allura dawn qablu dwar l-aktar daqsijiet komuni għall-kontenitur. Kif jitqandlu lilhom. What eżatta metodu li għandek bżonn li jitgħabbew u jinħattu minnhom. U għalhekk, li verament għenu lill-industrija tat-tbaħħir. Issa aktar minn 90% fokus trasportati globalment qed jużaw dawk il-kontenituri. U li definittivament jonqos l-ispejjeż kif ukoll -kumpens dovut għat-tbaħħir. Allura aħna jieħdu l-istess mudell u aħna japplikaw l-software iżvilupp tnejn app arkitettura, fis-sens li containers ħa l-Virtualization up livell wieħed. Allura minflok tagħmel dak fil-livell hardware, sar aktar ta operattiv Virtualization livell ta 'sistema. U nagħmlu dan billi tipprovdi kull applikazzjoni ħfief tagħha stess, iżolati, runnable, u portabbli, aktar importanti, mod li fil-fatt pakkett dak kollu li jeħtieġ li jimxu. Kullimkien tista 'titħaddem. Għalhekk, irrispettivament jekk int taħdem fuq ambjent DEV lokali, il-produzzjoni tiegħek ambjent, waqfien tiegħek jew ittestjar. Ma jimpurtax f'liema sottostanti infrastruttura hemm, kellek app jaħdem funzjonali. Allura dan huwa eżattament dak bażikament kontenituri tagħmel biex din il-problema. Huma jindirizzaw dan billi ppakkjar b'tali mod li tkun tista 'tiggarantixxi li huwa skjerat b'suċċess irrispettivament minn fejn jgħix. Mela jekk inti qed tmur bħal, Bob huwa għadu OK. Jekk int konfuż ma 'dak li jien qal, Jien ser jiġu telabora fuq dan. Allura kif ma Docker innifsu tajbin fil din l-istampa? Allura Docker huwa pjattaforma miftuħa li faċilment, jenfasizzaw faċilment, biex jibnu vapur, run, awto portabbli ħfief kontenituri app suffiċjenti kullimkien. Mela jekk inti tieħu xi ħaġa minn dan talk, jekk jogħġbok agħti dan li ġej. Jekk għandek app tiegħek taħdem lokalment u inti żviluppaw fl-użu tal-pjattaforma Docker, jistennew li jiġi skjerat b'suċċess. Ma jimpurtax dak li hu l- infrastruttura sottostanti. Mela jekk għandek Docker kontenitur u huwa xogħol, allura sakemm hemm Docker magna fuq il side-- oħra jekk l-infrastruttura operazzjoni tiegħek qed tuża kwalunkwe Cloud, kemm jekk huwa AWS, jew Google, jew Microsoft, jew kwalunkwe mill-sħab pubbliċi, jew Cloud tiegħek stess, jew munzell miftuħa tiegħek Cloud, jew l-ambjent lokali tiegħek. Jekk għandek magna tmexxija, li l-mezzi li għaddej biex tkun b'suċċess skjerati hemmhekk. Li għaddej biex tkun qed taħdem eżattament l-istess imġiba kif inti architected li jkun. Mela jekk inħarsu at-- jien ser li jmorru permezz ta 'dak attwalment huma fil-komponenti ewlenin ta 'Docker. Allura Engine hija fil-qalba ta 'Docker. Hija l-tal moħħ. Hija orchestrates bini, it-tbaħħir, u l-iskjerament u l-ġestjoni il-kontenituri nfushom. I ser ħaffer dak Engine ma f'aktar dettall fit-tieni. Bażikament, minħabba Doctor kienet mibnija madwar l-arkitetturi server klijent, dan sabiex jinteraġixxu mal- Magna għandek bżonn xi tip ta 'klijent. Images huma l-mudelli fil li kontenituri huma mibnija minn. Allura immaġini huma bażikament fajls biss statiċi. Templates u kontenituri huwa attwalment x'hemm tkun għaddejja bil runtime li huwa li jservu l-applikazzjoni tiegħek jew tagħmel xi ħaġa ma 'l-informazzjoni. Reġistru hija indirizzata bħala problema ta ' kif int attwalment tqassam immaġini. Mela jekk għandek bżonn biex jaqsmu l-immaġini li inti tkun ħdimt fuq kollega tiegħek jew għat-tim ops, inti użu billi tuża Reġistru. Tista 'tniżżel sors miftuħ verżjoni ta 'dan li Docker ħadmu fuq u tiftaħ jinxtraw. Jew tista 'tuża Docker għajnuna, li hija l-verżjoni Cloud biex timbotta u tiġbed immaġini hemmhekk. Li l-ħaġa enormi. Għaliex hemm enormi ekosistema madwar Docker u huwa verament jutilizzaw ħafna l hub. Allura biex tqassar hawnhekk, dan huwa kif l- minimalista klijent workflow Docker. Inti jinteraġixxu ma 'l-ospitanti, fil F'dan il-każ huwa l-daemons Docker. Huwa l-istess ħaġa bħat Engine. You do jikkmanda bħal Docker jibnu, iġbed, run. U l-magna nnifisha tmur u ma dawk l-affarijiet. Dan jew jinteraġixxi ma ' Reġistru biex tiġbed dawk l-immaġini u l-saffi ta 'l-immaġini. Jekk jekk inti tixtieq li tuża, run kontenituri, joqtlu lilhom, tarmi them down, whatnot. Allura dan tiġbor fil-qosor l-fluss tax-xogħol kollha ta 'dawn il-komponenti. Mela jekk inti tieħu kull komponent minnu stess. Allura magna, huwa biss daemon. Hija ser tip ta 'play li tappoġġja fuq Linux minħabba li ma jitolbu li ċerti aspetti għadma Linux. Iżda Windows qed taħdem fuq tagħmel l-istess ħaġa. Huwa suppost li għandhom jiġu appoġġjati billi Windows Server 2016. Allura, għal darb'oħra, ir-responsabbiltajiet mal- magna huwa li, jew li fihom, jibnu immaġini. Iġbed immaġini mill-Docker Hub jew Reġistru tiegħek stess. Jekk inti qed isir ma 'dawk stampi jew inti toħloq immaġini ġodda, inti tista timbotta dawk lura għall reġistru li jqassamhom lill-timijiet oħra. U jippruvaw jikkontrollawha lokalment u ġestit iċ-ċiklu kontenituri ħajja lokalment. Hija mibnija madwar HTTP SERĦAN API. Allura teknikament tista jiktbu klijent tiegħek stess sakemm juża HTTP, li huwa ħafna mekkaniżmu standard biex jitkellem Engine u ħafna servizzi oħra. U inti tista 'tara minn hawnhekk li minkejja ta 'dak l-infrastruttura huwa, sakemm inti can-- kollha għandek bżonn huwa operattiva sistema, Linux speċifikament. U inti tista 'tinstalla Docker Engine li fuq kollox u li hija taħdem u orchestrates, bażikament, dawn kollha app wieħed, tnejn, u tlieta huma kontenituri attwali. Allura dak Engine. Kif semmejt qabel minħabba għandek bżonn biex jinteraġixxu ma 'magna, hemm il-klijent. Imma fil-fatt meta inti jinstallaw Docker, it-vapuri magħha. Allura jiġrilha installat, għalhekk huwa binarja waħda. U inti tista 'tagħmel telefonati lokali li Docker Engine tiegħek. Jew sejħiet mill-bogħod għall-magni remoti. Hija ma tuża HTTP, kif Semmejt qabel. Hemm klijent GUI imsejjaħ Kitematic minn Docker. U hemm definittivament ħafna folks oħra li qed jibnu ħafna ta ' GUIs li bażikament jimplimentaw xi HTTP jitlob biex jitkellem Engine. Biss xi kmandi kampjun. Jekk inti tagħmel verżjoni Docker, ikun nuruk l-verżjoni klijent kif ukoll il-verżjoni server. Jekk inti tagħmel Docker info se jgħidlek l-informazzjoni kollha dwar kemm kontenituri qed jitħaddmu jew maħluqa, kemm stampi ikollok, u hekk u hekk. Hawn irrid niċċara, fil-li jmiss biex aħħar kaxxa, I jkollhom Doctor run. Allura li kif jien attwalment ħolqien kontenitur. U jien tagħti lill eku Hello World u ta 'rqad għat-tieni u whatnot. U tista 'tara l- riżultat. Allura huwa kontinwu. U simili għal Linux ps, tista 'tara il-proċessi u, f'dan il-każ, il-kontenituri kollha running. Jirreferi lura dan wieħed li il-kontenitur I biss maħluqa. Allura, dan huwa verament importanti għaliex, simili, tista 'tkun daqsxejn konfużjoni. Allura immaġini huma l-read-only ġbir ta 'fajls, id-dritt? Dawn huma dak kontenitur tagħna hija bbażata fuq. Iżda dawn qed biss read-only. Allura tibda off ma 'immaġni bażi. Hemm tendenza li jimitaw-OS simili, so Ubuntu, CentOS, immaġni bażi whatnot. U allura inti jibda jinbena fuq quċċata ta ' li, ċerti saffi, li se tpatti image aħħar tiegħek, l-aħħar tirriżulta hawn. U kull wieħed minn dawk saffi għandu ikollhom immaġini ġenitur li referenzi meta fil-fatt trid toħloq. Huma immutabbli, fis-sens li għaliex qed taqra-biss, inti ma tistax attwalment jagħmlu bidliet għalihom. Tista 'tuża biex joħolqu kontenitur minn immaġini, li se sejħa kollha sussegwenti immaġini meħtieġa taħtu. Inti tista 'tagħmel bidliet li saff differenti, huwa saff jikteb I ser jitkellmu dwar fit-tieni. Iżda kull waħda minn dawn saffi huma qatt ma nbidlu. Bażikament immaġini jużaw xi ħaġa imsejħa Unjoni System, UFS File. U hemm ħażna differenti backends li jużaw din it-teknoloġija. U dak li tfisser hija li tiġbor flimkien sistemi fajl distinti biex jagħmluhom dehra waħda. Allura inti tista 'attwalment, minn perspettiva applikazzjoni, għandek quċċata ta 'opinjoni li juri l-fajl sistema differenti meħtieġa għal dik l-applikazzjoni jiddekorri. Iżda dawn qed attwalment, fuq dan, dawn qed attwalment f'postijiet separati u jiġu utilizzati mill kontenituri oħra kif ukoll. Allura kif tista 'tara hawn li jekk nibdew b'immaġni daemon bħala image bażi, u mbagħad immorru fi u żid [? emacs?] u allura li saff ieħor. U mbagħad żid Apache. C'est saff ieħor. U allura aħna jonfqu l- kontenitur minn dan. Kull wieħed minn dawk l-immaġini, kull waħda minn dawn saffi, hija distinta u jista 'jkun jerġgħu jintużaw mill kontenituri oħra. Jekk inti tħares lejn kontenituri nfushom, dawn qed b'xi mod simili VM-like, imma mhux trattati l-istess ħin. Allura, dawn ma jkollhomx, teknikament, l- sistema operattiva sħiħa taħthom. Dawn jużaw l-għadma waħda tas-sistema operattiva ospitanti. U huma jibnu fuq kollox. Huma jimitaw fil-mod kif huma jfittxu. Huma jimitaw fajl għerq tagħhom sistema tas-sistema operattiva. Iżda huma fil-fatt mhumiex jirreplikaw. Allura, minflok li saffi immutabbli, l-aħħar saff, li hija l-kontenitur innifsu, huwa saff read-write. Li tmexxi wkoll il-proċessi tal-applikazzjoni tiegħek. U dan jiddependi fuq is-saffi sottostanti. Kull kontenitur maħluqa minn immaġini. U li l-immaġni jista 'jkun wieħed saff jew saffi image. U nixtieq li wieħed jinnota hawnhekk li Docker juża ħafna, jew hija bbażata fuq mekkaniżmu Kopja Kontrolli fuq il Write. Sabiex, fil-fatt, jekk m'intix tagħmel bidliet għal-kontenitur, mhuwiex ser jieħu spazju żejjed. Allura dak bażikament kif inti tqassar Kopja Kontrolli fuq il Write. Huwa ser definittivament iħaffu il-ħin boot għall-kontenitur. Għaliex jekk int ma tagħmel bidliet fil-kontenitur, huwa jutilizzaw x'hemm diġà hemmhekk. Allura, kif attwalment xogħlijiet. Parti minnha simili, id-dritt issa, huwa tutilizza l-inqas żewġ għadma ewlieni karatteristiċi. U dan huwa bażikament dak maħluqa dak il-livell ta 'iżolament għall-kontenituri nfushom. Dawk il-karatteristiċi huma namespaces u cgroups. Allura namespaces huma mod biex joħolqu riżorsi iżolati, sabiex fi żmien il-kontenitur innifsu, biss tista 'tara ċerti riżorsi. Bħall-interface netwerking jew il-ċerti utenti jew whatnot. U dawk huma viżibbli biss u biss aċċessibli ġewwa l-kontenitur. Cgroup dwar il-limiti sekondarji oħra kif tuża dawn ir-riżorsi. CPU, memorja, u disk. Meta inti tista 'tmur fi, I tfisser dawk huma attwalment karatteristiċi li ġew żviluppati by-- dawn qed parti mill-għadma tal-Linux. Allura dawn ma kinux reinvented minn jew recreated mill Docker. Docker jużahom. What Doctor verament ma hawnhekk hija fil-fatt ħolqien orkestrati namespaces għal kull kontenitur u jinħolqu l-cgroups b'tali mod li huwa ridiculously faċli biex joħolqu kontenituri juża dawk il-karatteristiċi. Of course, kif I deskritt qabel,-Unjoni File Sistemi u Kopja Kontrolli fuq il Ikteb tassew jgħinu l-veloċità u l-disk utilizzazzjoni ta 'kontenituri. U ladarba ikollok tiegħek idejn madwar Docker, int ser tara kif fast huwa li attwalment spin up kontenituri u kedd them down. Allura, jekk inti tista 'titlob, kif tista inti fil-fatt jiżviluppaw immaġini? Nibnu immaġini permezz ta 'proċess ta' ħolqien kontenituri u jagħmlu bidliet, jbiddlu minnhom, u jikkommettu lilhom sabiex isiru l-immaġini. Allura huwa tiġieġ u referenza tal-bajd hawn, minħabba kontenituri kollha jiġu minn stampi u stampi jidħlu mill-kontenituri impenjati, għall-parti l-kbira. Hemm tliet għażliet li joħolqu immaġini. Jien ser tiddeskrivi l-ewwel u l-aħħar. Inti tista 'jew manwalment mur u tmexxi l-kontenitur u jagħmlu dawk il-bidliet, bħal inti tagħmel fuq kwalunkwe VM jew kwalunkwe sistema operattiva, bħal kif installazzjoni binaries ġodda, żżid fajl sistemi, u whatnot. U allura inti ħruġ, kif tistgħu taraw up hemm. I am joħorġu kontenitur tiegħi. U allura jien tagħmel Docker jimpenjaw. U jien jikkommettu dan. Tista 'tara li l-għadd hawn huwa biss UUID, jew l-ewwel 12 bits ta 'l-UUID. Jew bytes tal-UUID. U allura jien ssejjaħ dan image tiegħi. Allura issa Docker jieħu ħsieb ta ' reġistrazzjoni kollox I ma kien u joħolqu l-ġdida immaġni bbażata fuq dik. Jien ma jmur biex jitkellmu dwar tarball, imma hemm mod inti tista 'tikseb wieħed, toħloq programm waħdieni, jew jagħmlu waħda immaġni saff użu tarballs. Dak li jien ser jitkellmu dwar dan u dak li l-aktar jintużaw illum, huwa Dockerfile. Liema hija teknikament l-ewwel pass awtomatizzat billi Docker innifsu. Allura Dockerfiles huma affarijiet li int ser tara fil-lott ta repos GitHub illum. Huwa bażikament biss fajl test li jiddeskrivi eżattament kif tibni immaġini. U għal kull linja, attwalment joħloq il-kontenitur, tesegwixxi dik il-linja, timpenja dak ir-reċipjent fis- immaġni ġdida, u int, bażikament, użu minnha għal operazzjonijiet sussegwenti kollha sakemm ikollok l-aħħar immaġini. Li hi bażikament l- tmiem għan hawnhekk, l-aħħar. U wara li tkun exec-- wara li jiktbu Dockerfile tiegħek, li huwa purament test, inti tagħmel Docker jibnu u l-isem tal-immaġini. U inti punt f'dak li huwa fejn il-Dockerfile huwa fil. U inti tista jistennew li jaraw immaġni tiegħi bħala immaġini li għandek lokalment. Allura li jinsab biss viżwali Eżempju ta 'x'inhu jiġri. Tibda ma 'immaġni bażi. Inti tmexxi li ġo kontenitur li ma jibdilx l-immaġini bażi nnifisha. Iżda minflok toħloq jikteb saff fuq nett tagħha fejn inti tagħmel il-bidliet, fejn inti jikkommettu u inti irrepeti l-proċess sakemm ikollok biex image finali tiegħek. U permezz t'hekk, kull build oħra proċess jista 'juża l-istess saffi u l same-- bażikament Docker ħażniet sigrieti dawk saffi. B'tali mod li jekk qed nagħmel l-istess eżatt proċess, iżda minflok ta 'installazzjoni PHP, Jien installazzjoni Python. Li għaddej biex tuża Apache u Ubuntu. Allura li mod inti qed jutilizzaw disk tiegħek. Huwa jutilizzaw l-cache u stampi disponibbli hemm. Il-biċċa finali huwa Reġistru, li huwa kif inti tiddistribwixxi tiegħek immaġini. U, kif semmejt qabel, hemm verżjoni Cloud ta 'dan, li huwa Docker Hub. Inti tista 'tmur u tesplora ħafna, bażikament huwa prodott SAS pubbliku li inti xorta jista 'jkollha immaġini privati, imma hemm ħafna ta 'immaġini pubbliċi. Huwa fil-fatt illimitat, inti tista timbotta immaġini pubbliċi illimitat hemmhekk. U dan huwa kif inti tista ' jikkollaboraw mat-tim tiegħek. Tista 'biss għalihom il-punt fi inti repo u jistgħu jniżżlu jew immaġni tiegħek u jistgħu jniżżlu dan. Allura biżżejjed mal-talk. Min jixtieq jara xi demos reali malajr? Kull dritt. So here I jkollhom. Ca inti guys tara l-iskrin tiegħi? Kull dritt. So I jkollhom Docker running hawn, so I tista 'tivverifika it's-- Dan huwa l-verżjoni ta Docker li l-running. Tista 'tagħmel Docker info. Iċċekkja l-informazzjoni kollha dwar kemm immaġini huma għandhom, u hekk u hekk. Docker PS, m'hemm xejn running. Concatenated dawk. Allura l-ewwel ħaġa li nixtieq do huwa juri kif inti tista 'faċilment run kontenitur. Allura l-sbuħija dwar Tabib run, jekk fil-fatt ma ssibx immaġni lokalment, fil-kontumaċja taħdidiet li Hub Doctor u jipprova jsib hemmhekk u downloads dan għalik. Għalhekk jinkludi Docker iġbed kmand, naturalment. Hekk jekk I do Docker run, bonjour-dinja. Allura, l-ewwel li għaddej biex tipprova lokalizzata. Inkella, kif tistgħu taraw hawn, ma setax jsibuha lokalment. Dritt issa hija biss jinġibed żewġ saffi li għamel li l-immaġni u I dam dan. Il-dinja bonjour huwa biss bażikament outputs, dak li għamiltu. Allura dan huwa l-eħfef, waħda mill-eżempji eħfef. So attwalment I biss dam u temm il-kontenitur malajr reali. Jekk irrid run-- u mill-mod, jekk Irrid li darba li, hekk biss tafu, dan huwa kemm żmien li tieħu biex attwalment spin up u jikkontrollawha. Aħna qed kejl fil millisekondi. Allura tista 'tara kemm dan jista' attwalment jgħinuk mhux biss fl-ittestjar, iżda wkoll anke iskjerament. Allura dak nota ta 'malajr fuq dan. Il-ħaġa li jmiss jien ser tagħmel hu attwalment run immaġni Stajt diġà ppreparati. Allura Docker run. -d huwa biss bandiera li tgħid li jimxu fl-isfond. U -p jassenja ċerti portijiet. Minħabba fil-kontumaċja, il- kontenituri huma iżolati, hekk ikollok biex tispeċifika eżattament kif jista 'jkollu aċċess għalihom. U f'dan il-każ, jien javżak Docker li Mappa port każwali fuq il-ospitanti lejn port speċifikat fil il-kontenitur innifsu. U li bażikament meta l-image-- nisperaw li dan huwa l-dritt wieħed. Għalhekk ma downloads paralleli kull ta 'dawk saffi kif tistgħu taraw hawn. Dawk huma tas-saffi teħid l-immaġini aħħar li I mibnija. Huwa ser tieħu t-tieni. U voila. Allura issa jekk I do a ps Docker, I għandu tara xi ħaġa li qed taħdem. I għandha tara l-ID, l-immaġni li din kienet ibbażata off, u l-kmand li kien esegwit. U kif li jkollhom aċċess għaliha huwa bażikament inti tmur f'dak port. Hekk jien se jmorru to-- dan huwa niġri fuq AWS. Jien se jmorru għall 32,769. Oops. U here we go. Allura dan huwa attwalment biss servizz web li turi li kontenitur huwa qiegħed ikun servut minn. Allura tista 'tara li dan huwa minn a9f kontenitur. U hawn dan huwa l- isem tal-kontenitur. Allura inti guys tista 'tara kif malajr huwa kien li attwalment pull mhux biss imma wkoll tiskjera dan il-kontenitur. Issa l-pass li jmiss huwa li tħares lejn Dockerfiles u kif nistgħu attwalment jibnu dehriet ġodda. Jien biss se jmorru tikseb klonu, a kampjun Dockerfile bbażata fuq l-ewwel dijagramma, il-wieħed li Apache u PHP. Nisperaw I remember repo tiegħi. So I jkollhom repożitorju tiegħi dritt issa. U int ser tara dan il-lott fil-fatt. I ma jinstallaw siġra. Allura bażikament inti qed tmur biex tara kif dokumentazzjoni kodiċi sors tiegħek madwar dan, u mbagħad Dockerfile fuq kif fil-fatt pakkett li hija. Allura huwa biss PHP kampjun li eki CS50 bonjour. Mela jekk jien tixtieq li run, I ser tagħmel Docker jibnu. Għandi biex tinbena l-ewwel. Jien ser isem li bih demo_cs50. U inti għandek bżonn tag lilha wisq. Mela ejja sejħa hija V1 dot. So I kif deskritt qabel, dak li qed nagħmel illum huwa jien javżak Docker li jmorru użu that-- attwalment, sorry, bad tiegħi. Aħna ma tagħti ħarsa fil-Dockerfile innifsu. Allura l-uniċi affarijiet fil hawn huma index.php kif ukoll il-fajl README u Dockerfile. Mela jekk inti tagħti ħarsa lejn l Dockerfile, dan huwa simili ħafna għal dak I deskritt qabel. Huwa biss mazz ta ' passi li Docker teżegwixxi permezz tal-ħolqien u kissret kontenituri u [? għadd?] tagħhom fiċ immaġini. U bażikament inti tista see-- [inaudible] it here-- iżda dan huwa mill-repo lokali. Li għaddej biex tmur u index.php grab. Allura dak l-kodiċi sors uniku li huma attwalment parti mill-applikazzjoni tiegħek. Dan kollu huma bażikament sistema operattiva plumbing, jkollna l-pakketti dritt u Apache, u PHP, u whatnot. Iżda dan effettivament ikun index.php u bih jintrabat fil-kontenitur, fil-immaġini. Mela jekk inti tmur quddiem u tmexxi l- kmand billi tagħmel dan li ġej, huwa going-- fatt, dan jista 'jieħu ftit. Nisperaw li ma jieħdu wisq żmien. Allura tista 'tara l-passi. U Inħeġġiġkom biex tmur lura d-dar illum u jippruvaw dan. U Mano se tiddeskrivi kif eżattament inti tagħmel dan. Imma huwa verament kbir biex tara eżattament dak li qed jiġri wara l-kwinti. Iżda huwa ridiculously faċli biex jibnu immaġini u jintużaw jużaw Docker. Huwa jieħu daqsxejn itwal milli stennejt. Ejja naraw x'jiġri meta you-- jibred. Allura kif tista 'tara, kull wieħed minn dawk il-passi jirrappreżentaw linji fil-Dockerfile. U dan juri hawnhekk li mibnija b'suċċess din id-dehra. Hekk jekk nagħmel immaġini Docker, jien ser tara l-immaġini li għandi lokalment. U wieħed minnhom huwa msejjaħ tiegħi username, u l-isem tal-immaġni, u l representing-- tag prinċipalment huwa tag verżjoni. Allura issa jekk I tixtieq li tmexxi dan, I do Docker run. U jien biss trid tagħmel -P -d. Do v1. So I jista 'jara issa li għandi żewġ kontenituri tmexxija, il-wieħed li I biss maħluqa u l bonjour Docker waħda li sibt li għadda. U tista 'tara hawn li assenjat lilha port differenti. Mela jekk jien jmorru għall-istess PI iżda tassenja din a port-- differenti nisperaw I ma. Allura issa dan huwa applikazzjoni li jien biss skjerati. Jekk irrid li jagħmlu bidliet, I jistgħu malajr jeditjaw il-kodiċi tas-sors u jagħmel dan li ġej. Ejja nagħmlu bonjour Harvard. Allura issa x'inhu għaddej li jiġri huwa li jien se tag dan ma ' differenti version-- oh, ma dan guy-- tag ma 'verżjoni differenti. U int ser see-- do inti guys jistennew jieħu l-istess ammont ta 'ħin biex din tinbena tieni darba jew le? Kull dritt, u xi ħadd jaf għaliex? Speak up. UDJENZA: [inaudible] Nicola KABAR: Huwa bażikament aħna biss jibdlu wieħed mill-passi aktar tard. U għalhekk li għaddej biex tuża l- cache u jużaw kull waħda minn dawn saffi. U dan huwa verament xi wħud mill- Karatteristiċi qattiel ta Docker huwa kif attwalment tutilizza u użi teħid disk tiegħek għall-istess biċċiet eżatti ta 'informazzjoni. Mela jekk nagħmlu l-istess ħaġa, hija ħadet biss ftit sekondi. Jekk irridu li redeploy-- hekk issa I għandu jkollhom tliet kontenituri. Iżda dan huwa wieħed ikun notifikat lill the-- sebgħa wieħed. Allura issa huwa l-tielet kontenitur. Kulħadd jifhem dak I biss ma hawn? Allura issa jekk inti tixtieq li jaqsmu din kontenitur malajr reali mal-ħbieb tiegħek, inti tista 'biss tagħmel Docker imbotta l- isem tal-kontenitur, wieħed jittama. Allura issa li għaddej biex timbotta lilha to-- Jien ma ffirmat hawn. Skużani. Imma jien mhux ser troubleshoot dan issa. Imma bażikament dak il-kmand wieħed huwa biss jitla 'timbotta lilha. U int ser tkun tista ' tara jekk inti tmur biex Docker Hub U inti login, int se tkun tista 'tara dan. U allura inti tista 'sempliċement punt min qed jiġri għall-użu li l-immaġni biex tmur u iġbdu. U jistgħu jużawha. Ma 'dak, wieħed jittama I tip ta 'tintwera kemm huwa faċli li taħdem ma Docker. U jien biss se tagħti lura lill Mano. U hu għaddej teħodha minn hawn. MANO MARKI: Kull dritt grazzi, grazzi Nico. Allura? Allura wieħed mill-affarijiet I riedu jagħmlu jitqegħdu flimkien għaliex dan huwa important-- għaliex Docker u għaliex kontenituri huma tali żvilupp ġdid importanti, mod ġdid ta 'fatt jagħmlu software. U qabel I do, jien ser biss tintroduċi ftit stats. Jien ma jmur biex taqra dawn kollha. Iżda dan jurik ħafna dwar kif popolari dan huwa fil-komunità. It-teknoloġiji ewlenin Docker huma sors miftuħ. Allura dak Docker magna, Ikteb, Swarm, mazz ta 'għalf ieħor hija kollha sors miftuħ. U aħna għandna, dak li għamlet I jgħidu, 1,300 kontributuri. Inti qed tara issa, jekk inti tħares lejn il- numru ta 'opportunitajiet tax-xogħol, l-aħħar darba ħarisna, din kienet madwar 43000 impjieg fetħiet jsemmi b'mod speċifiku familjarità ma 'Docker. Mijiet ta 'miljuni ta' immaġini jkollhom tniżżlu minn Docker Hub. U, ukoll, stats ħafna aktar kbar. Għal dawk li huma kurjużi, huwa kien oriġinarjament miktub fl-Python u mbagħad jerġa 'jinkiteb fis Go. U huwa kien biss miftuħa source-- huwa biss ġew rilaxxati għal madwar 2 u 1/2 snin, li jfisser li fi 2 u 1/2 snin, Rajna ammont kbir tat-tkabbir u l-importanza ta 'dan fil-komunità. U so I trid titkellem ftit dwar għaliex. Hekk biss li wieħed itenni ftit mill Punti ewlenin Nico, Docker huwa wieħed mgħaġġel. Huwa portabbli. Huwa riproduċibbli. U li din tistabbilixxi ambjent standard. U what-- dan huwa crappy tiegħi jeqirdu l monoliths slide-- dak huwa jgħin lin-nies jagħmlu, li ħafna ta 'l-industrija tas-softwer bdiet tagħmel fil- 2000ijiet kmieni, tkun miexja minn dawn monolitiċi applikazzjonijiet waħdiena fejn kull dipendenza kellu jkun ttestjati qabel l-app kollu kien li jiġu minfuqa, li jista 'jfisser websajt biss ltqajna użati darba kull tliet xhur, jew aktar, għal servizz ferm aktar arkitettura orjentata jew tip differenti componentized ta 'arkitettura applikazzjoni. U hekk li jippermetti lil dawn tip ta 'arkitetturi li jieħdu vantaġġ ta ' Docker jiddekorri fil dawn it-tliet oqsma prinċipali ta 'żvilupp, li huwa żvilupp miktub kodiċi attwali tiegħek, ittestjar kodiċi tiegħek, u l-iskjerament dan. Allura għaliex dan huwa importanti? Jekk int a-- let me jagħtu eżempju. Jekk inti website iżviluppatur mezz, int iżvilupp ta 'websajt li bbażat fuq il- database li David prodotta minn hawn. Jiddispjacini David, jien titlob inti out. Jekk int riedu li tuża il-ħaġa sħiħa, youd jkollhom jistennew taħt tradizzjonali żvilupp ta 'softwer monolitiċi ambjent, youd jkollhom jistennew sakemm kien magħmul bl-database qabel ma inti tista 'tagħmel attwalment kwalunkwe tibdil website tiegħek. Youd għandek jirriloka l applikazzjoni sħiħa li jagħmlu dan. U dak Docker jgħinek tagħmel huwa kull persuna xogħol fuq komponenti differenti u jaġġornawhom kif imorru, biss tagħmel żgur li l-interfaces tissospendi l-istess. Allura dak li għamel huwa huwa mċaqlaq nies milli jagħmlu dawn monolitiku massiv softwer architected li skjerati kull xahar għal kontinwa integrazzjoni u l-iżvilupp kontinwu ambjent. Issa dan mhuwiex unika li Docker, iżda Docker jagħmilha daqstant faċli, li jfisser li int bażikament kontinwament iskjerament. Nitkellmu lill-intrapriżi li huma iskjerament applikazzjonijiet Niffaċċjaw pubbliċi eluf ta 'drabi kuljum għaliex jaraw l-valur biss tagħmel bidliet żgħar, u sakemm kif din tmur permezz-testijiet, kiri go out fil-produzzjoni. Nico kien dejjem javżak me qabel li f'ħafna ambjenti, ċiklu tal-ħajja normali ta ' kontenitur huwa mkejjel f'sekondi, billi magna virtwali jista 'jiġi mkejjel f'xhur. I riedu jieħdu żgħira dawwar hawnhekk għaliex jien f'istituzzjoni edukattiva. I riedu jagħtu eżempju ta 'kif dan jaħdem fi riċerka edukattiva sitwazzjoni. Allura hemm xi organizzazzjoni imsejħa bioboxes. Bioboxes ma DNA analiżi għar-riċerkaturi. Issa dak li nstab kien li meta a researcher-- u dan mhux tort ta 'kwalunkwe partikolari researcher-- iżda meta riċerkatur skjerati algoritmu biex tanalizza, B'mod partikolari, kampjun tad-DNA, dawn se jikteb l-software, tippubblika dik, forsi biex GitHub jew x'imkien ieħor, u mbagħad meta saru. Ukoll l-problema kienet li ma kienx neċessarjament riproduċibbli. Minħabba sabiex jifhmu l-software, huma jkunu mwaqqfa għall- ambjent għall-iżvilupp eżatt li din riċerkatur użat, normalment laptop tagħhom, jew server, jew data ċentru li kienu qed jużaw. U konsegwentement, kien diffiċli ħafna li tirriproduċi riżultati tar-riċerka meta analiżi ta 'kampjuni tad-DNA biex tfittex lejn l-affarijiet simili incidence-- iqabblu inċidenza ta 'attakki tal-qalb ibbażata fuq ċerti ġeni jkunu preżenti, per eżempju, jew riskju tal-kanċer, jew kwalunkwe mill-tipi oħra ta 'affarijiet. Allura dak li għamlet minflok kien huma bdew joħolqu kontenituri. U inti tista 'tmur għall bioboxes.org, huwa organizzazzjoni kbira. U dak li tagħmel huwa li jipproduċu kontenituri bbażati fuq riċerka. U mbagħad kull meta xi ħadd jibgħat fil-kampjun tagħhom, huma jistgħu run. U għandu l-ambjent meħtieġa biex imexxu din l-algorithm u jipproduċu r-riżultati. U dawn qed konstatazzjoni li dawn qed ħafna iktar probabbli u ħafna aktar malajr tista ' rizultati lin-nies. U fil-fatt, dak in-nies qed jagħmlu huma t-tmexxija analiżi tagħhom stess fuq DNA, jibgħat dik in to bioboxes, u imbagħad biobox biss tieħu d- data, tmur kontra l-varjetà kontenituri tal differenti biex tara riżultati differenti ibbażat fuq ir-riċerka differenti. Allura huwa b'saħħtu ħafna mod kif ir-riċerkaturi jista 'jagħmel istanza waħda li tippermetti nies oħra biex jippruvaw u jirriproduċu ir-rizultati. Allura kif taħseb li tibda? Aħna huma appoġġjati sew fit-Linux. Mela jekk inti tixtieq li tinstalla xejn fuq Linux, tuża standard tiegħek maniġer pakkett li tinstalla. Jekk inti qed tuża Debian, huwa get apt. CentOS huwa yum. Fedora Red Hat huwa rpm-- I ma tiftakarx. Xorta waħda, huwa kollha hemmhekk. Aħna tappoġġa varjetà kbira tad-distribuzzjonijiet Linux. Tista 'tiċċekkja dawk out. Għandna wkoll għażliet sabiex inti tista 'tmexxi fuq Mac jew Windows. Issa Nico imsemmi qabel li kien sostnut biss fuq Linux. Dan huwa veru għaliex teħtieġ għadma Linux. Iżda, inti tista 'taħdem fil-magna virtwali. U dak il-Toolbox Docker ma, li tista 'tniżżel, li tagħtik li l-apparat virtwali. Hekk biss a quick 48 tieni, I think, download. Inti biss tfittxija fuq Docker Toolbox, niżżlu l-Mac, u din il-parti hija ta ' kors titħaffef minħabba li jixtieq watch sinjal download? Installazzjoni Standard Mac, u allura int ser tara Jerome jitqiegħdu fil password tiegħu. C'est eċċitanti ħafna. U allura jinstalla mazz sħiħ ta 'għodod. U partikolarment se jinstallaw linja ta 'kmand. U allura inti tista 'tara Jerome ittestjar immaġini tiegħu. U allura bbażati fuq dan, tista 'tara li YouTube jaħseb li Nico huwa interessat fil Star Wars, Il juru Jimmy Kimmel, u naħseb Ellen. Naħseb li aħħar wieħed huwa clip minn juru Ellen. Allura Docker Toolbox għalkemm taqa b'aktar minn sempliċiment Docker Magni. Allura Docker Magni li hija il-ħaġa li tgħin inti twaqqaf virtwali magna fuq Windows tiegħek jew Mac-- kaxxa Windows tiegħek jew Mac tiegħek box-- u jgħinek tagħmel forniment, Iżda għandu wkoll jiġi ma Swarm u Ikteb, li huma mfassla biex jgħinuk tagħmel kbir skjeramenti fuq skala ta 'applikazzjoni tiegħek. Mela jekk inti tixtieq li tmexxi gruppi ta 'nodi, gruppi ta 'kontenituri, Ikteb u Swarm huma l-mod biex imorru dwar dan. U ovvjament niġu ma Docker magna u Kitematic, li huwa dan GUI desktop. Għandi nsemmi wkoll Docker Reġistru, li mhix inkluża fil Toolbox, iżda huwa mod għalik biex tmexxi tiegħek reġistri ta 'Stampi Docker bħal Docker Hub, imma int tista 'biss tuża wkoll Docker Hub bħala mod biex isir dan. U, plot twist, int tara dan jibda fil-kontenitur. U li kif aħna qed jqassmu slides tagħna. Din il-preżentazzjoni kollu huwa attwalment gverta slide HTML. U huwa għaddej fi kontenitur, li inti tista 'tikseb by-- Nicola KABAR: Iva, dan huwa taħdem full-time fuq Max tiegħi. U jien tippreżenta minnha. U inti biss tagħmel Docker wara inti jinstallaw Toolbox tiegħek. Tista 'biss tagħmel run Docker u ġġibu, u jużaw il-pjastri. MANO MARKI: U li hu. Allura aħna nirringrazzjakom ilkoll għall ġejjin. U aħna kuntenti li jwieġbu l-mistoqsijiet. I għandhom isemmu qabel xi ħadd weraq hemm T-shirts hemmhekk. Jiddispjacini xi ħadd li qed jaraw dan fuq LiveStream jew video, iżda aħna għandna Docker T-shirts hemmhekk. U nafu istudenti Docker, u fl-esperjenza tiegħi, professuri wisq, bħal ħwejjeġ ħielsa. Allura nirringrazzjak kollha għall ġejjin out. U ssegwi magħna fuq Twitter jekk inti tixtieq, jew ma. I do not care. Wkoll isegwu Docker fuq Twitter. Li wkoll interessanti. U allura li hu. Docker.com. Grazzi. [Applause]