[Music kucheza] DAVID Malan: zote haki. Asante sana kwa kuja. Hii ni CS50 semina ya Docker, a teknolojia ambayo sisi wenyewe na CS50 wameanza kutumia kwa muda mrefu sasa. Hivyo jina langu ni David Malan, mimi kufundisha Harvard Kuanzishwa kwa Sayansi ya Kompyuta. Kwa kabisa baadhi ya miaka, tumekuwa kutoa wanafunzi downloadable mteja upande mashine virtual ambayo wao kufanya matatizo yao seti. Kwamba tuna sasa zilianza kwa mazingira wingu kwamba kweli matumizi ya teknolojia hii aitwaye Docker, kama kwamba wote CS50 sasa wana wao wanafunzi vyombo mwenyewe Docker kwamba utasikia hivi karibuni kusikia wote kuhusu. Aidha, kwenye kompyuta CS50 upande nguzo, kwa miaka mingi tungetumia wingu kompyuta Amazon. Sisi walikuwa wanakimbia binafsi mashine virtual. Pia kwamba, tumeanza ya mpito kwa mambo haya kuitwa Docker vyombo ili yote ya maombi yetu ni sasa kikamilifu pekee kutoka kwa mtu mwingine. Hivyo kwa kuwa na zaidi, naomba kuanzisha marafiki zetu, Nico na Mano, kutoka Docker yenyewe. NICOLA Kabar: Shukrani, Daudi. Habari zenu. Jina langu ni Nico na hii ni Mano. Tuko kutoka Docker. Tunakwenda kuwa na kuzungumza about-- kutoa nyie intro kwa Docker, na hopefully, kuelekea mwisho ya majadiliano hayo unaweza kutambua ni kiasi gani unaweza kutumia daktari kwa oxalate maendeleo ya maombi yako na kupelekwa. Kwa hiyo, tunakwenda kuanza mbali halisi haraka na baadhi ya taarifa za msingi. Kueleza kile Docker ni yote juu. Jinsi gani kazi? Jinsi ni architected? Mimi itakuwa kufanya baadhi demos. Na Mano ni kwenda kuwa kueleza jinsi gani unaweza kutumia Docker na kutoa hatua maalumu jinsi gani unaweza kupata kuanza. Ningependa kufahamu kama wewe guys unaweza kushikilia mbali kwa maswali yako mwishoni. Kwa njia hiyo, nipate akihutubia wale maswali katika mada. Hivyo tutaweza kuondoka muda kuelekea mwisho kwa maswali. Hivyo tu halisi haraka, ambaye ana kweli milele kazi juu ya Docker, kama alicheza kwa hayo? Kutisha. Baridi. Kubwa. Kwa hiyo, mimi nina kwenda kuanza pamoja na baadhi ya historia. Hivyo nyuma katika miaka ya 90 na miaka ya 2000 mapema, kimsingi kama mtandao watengenezaji, watengenezaji programu, walipo kupeleka maombi ilikuwa imefungwa kwenye akamzalia chuma. Ilikuwa ni server moja. Ilikuwa ni moja ya maombi. Jadi, mfano itakuwa kama taa stack, ambapo kweli alikuwa na kuleta bwawa la rasilimali. CPU, kumbukumbu, disk, mtandao, kufunga mfumo wa uendeshaji juu ya kwamba. Kama wewe ni kuwahudumia kitu, ikiwa wewe ni kweli kuwa mtandao wa kompyuta, unahitaji kitu kama Apache kwa kumtumikia yake. Kama maombi yako mahitaji Mbegu, backhand, ungependa kufunga kitu kama MySQL, na kadhalika. Na kama unahitaji kukimbia wakati, PHPs na PHP chatu kazi walikuwa huko. Na hivyo sisi kweli alikuwa na kuchukua hatua hizo ili kupata maombi yako juu na kukimbia. Kama inahitajika nguvu zaidi compute, wewe kimsingi alikuwa na wito Ops yako guy au gal kwenda na rack up mpya kipande ya vifaa, kuungana, na una kurudia wale taratibu tena na tena. Hivyo mpango huu ghali. Ilikuwa dhahiri polepole sana. Ilikuwa ni ufanisi. Na katika mengi ya matukio, yako vifaa ilikuwa matumizi yake yapo chini. Hivyo, katika '90s marehemu na mapema 2000, vifaa virtualization alimkuta. Na kama unaweza kuona hapa katika picha, kimsingi walichofanya ni yanayotumika bwawa la rasilimali bure vifaa na aina ya kutumikia wale kwa tabaka ya juu, katika kesi hii, mgeni mfumo wa uendeshaji. Na wazo zima la mashine virtual alimkuta na kwamba kweli alisaidia wingu kompyuta kama tunajua kuwa leo. Hivyo kwamba maana gani ni wewe wanaweza kukimbia nyingi VMS, ambayo maana mwingi nyingi, nyingi maombi juu ya huo mashine ya kimwili. Hii dhahiri kusaidiwa na kasi ya maombi kupelekwa. Dhahiri na gharama. Huna kwenda na kutumia nishati, muda, na rasilimali kwa rack watumishi zaidi ya kupata zaidi compute. Na kasi ya kweli na kuleta wale rasilimali up ni kwa kasi zaidi. Kubwa. Hivyo sisi kutatuliwa njaa duniani, sawa? Hapana, si kweli. Hivyo, virtualization kama vile ni kweli ulisaidia, kushughulikia tatizo, ni kweli kuletwa changamoto nyingi. Hypervisor dhahiri ilianzisha mengi ya utata, utunzaji wale msingi bwawa la rasilimali. Ni nzito kwa maana kwamba kabla alikuwa moja mfumo wa uendeshaji ambayo Ni kama tatu, nne gigs ya rekodi. Sasa, kama una mashine 10 juu ya vifaa moja una kuzidisha na idadi ya mashine. Ni dhahiri zaidi ghali kwa maana wewe bado una kupata leseni kwa teknolojia virtualization kama si wazi chanzo. Lakini, hebu kuchukua zote mikopo kutoka virtualization. Kwa sababu kile kilichotokea ni kuna mengi ya mwingi na kura ya programu teknolojia kwamba walikuwa kuwezeshwa na jinsi ya kufunga walikuwa na uwezo wa kupata rasilimali na wingu boom. Hivyo, leo programu moja au huduma wanaweza kuwa kutumia yoyote ya runtimes zifuatazo au database. PHP, Python, MySQL, Redis, whatnot. Hivyo kuna mengi ya utata juu ya hili idadi ya mwingi kwa kweli kuleta huduma moja. Na pamoja na kwamba, alikuwa na mengi ya rasilimali ya msingi au miundombinu aina ya mtihani kupeleka na kimsingi kuchukua ili uzalishaji maombi hayo kuwa wewe ni zinazoendelea. Hasa kama timu yako na mzima kazi ya programu hizo, kuna mengi ya utata na changamoto kwamba walikuwa kuletwa ili kuhakikisha kuwa cycle-- kimsingi maombi mzunguko wa maendeleo, ni kweli mafanikio. Hivyo, ukweli kwamba maombi yako ni kazi ndani ya nchi kwenye VM eneo lako haina dhamana kwamba mwenzake yako ni kwenda kutarajia matokeo sawa. Na wakati shughuli timu ni kushiriki katika kuchukua nini una na kupeleka katika uzalishaji wadogo, pia hakuna uhakika kwamba hiyo ni kweli kwenda kutokea. Hivyo hii zinatuacha na kweli big-- mengi ya alama ya kuuliza, changamoto nyingi hasa wanakabiliwa vile vile nyuma katika siku. Na kwamba aliwakumbusha yetu ya sekta ya meli. Hivyo sekta ya meli alikuwa na mengi ya bidhaa, kama unaweza kuona upande wa kushoto. Na upande wa kulia, kuna mengi ya, kimsingi, njia za meli ya bidhaa hizo. Na kile kinachotokea kama wanandoa folks walifanya mkutano, akasema, tunahitaji standardize jinsi sisi kweli meli ya bidhaa hizo. Na boom, una intermodal meli chombo. Hivyo walikubaliana juu ya wengi ukubwa wa kawaida kwa chombo. Jinsi ya kushughulikia yao. Nini halisi njia unahitaji kupakia na kupakua yao kwao. Na kwa hiyo, kwamba kweli kusaidiwa sekta ya meli. Sasa zaidi ya 90% lengo kusafirishwa kimataifa ni kutumia vyombo hivyo. Na kwamba dhahiri itapungua gharama kama vile uharibifu kutokana na meli. Kwa hiyo sisi kuchukua mtindo huo na sisi kuomba programu wawili maendeleo ya programu usanifu, kwa maana kwamba containerization alichukua virtualization juu ngazi moja. Hivyo badala ya kufanya hivyo katika ngazi ya vifaa, ikawa zaidi ya uendeshaji mfumo kiwango virtualization. Na sisi kufanya hivyo kwa kutoa kila maombi katika yake mwenyewe nyepesi, pekee, runnable, na portable, muhimu zaidi, njia ya kweli kufunga kila kitu kwamba mahitaji ya kuendesha. Mahali popote inaweza kuwa na kukimbia. Hivyo, bila kujali kama wewe ni mbio juu ya mazingira ya mahali hapo dev, uzalishaji yako mazingira, staging au kupima yako. Hakuna jambo gani za msingi miundombinu ni pale, alikuwa kazi kazi ya programu. Hivyo kwamba ni nini hasa kimsingi vyombo kufanya ili tatizo hili. Wao kulishughulikia na ufungaji ni kwa namna iweze kuhakikisha kwamba ni uliotumika mafanikio bila kujali ambapo ni maisha. Hivyo kama wewe ni kwenda kama, Bob bado ni sawa. Kama wewe ni kuchanganyikiwa na nini mimi kusema, Mimi nina kwenda kuwa kufafanua juu ya jambo hilo. Hivyo ni jinsi gani Docker yenyewe fit katika picha hii? Hivyo Docker ni jukwaa wazi kwa urahisi, kusisitiza urahisi, kujenga meli, kukimbia, nyepesi portable binafsi vyombo programu kutosha popote. Hivyo kama wewe kuchukua kitu kutoka hii Majadiliano, tafadhali kuchukua yafuatayo. Kama una programu yako bomba ndani ya nchi na wewe maendeleo yake katika kutumia jukwaa Docker, wanatarajia kwa kuwa mafanikio uliotumika. Hakuna jambo gani ni miundombinu ya msingi. Hivyo kama una Docker chombo na ni kazi, basi muda mrefu kama kuna Docker injini ya side-- mengine kama kazi yako miundombinu ni kwa kutumia yoyote wingu, iwe ni ni AWS, au Google, au Microsoft, au yoyote ya mawingu ya umma, au wingu yako mwenyewe, au stack yako wazi Wingu, au mazingira ya eneo lako. Kama una injini kukimbia, kwamba maana yake ni kwenda kuwa mafanikio uliotumika huko. Ni kwenda kuwa mbio hasa tabia hiyo kama wewe architected iwe. Hivyo kama sisi kuangalia at-- mimi nina kwenda kupitia kile kweli ni katika sehemu kuu ya Docker. Hivyo injini za jamii ni kiini cha Docker. Ni ubongo. Ni inachochea jengo, meli, na kupeleka na kusimamia vyombo wenyewe. Mimi itabidi kuchimba katika kile injini za anafanya katika maelezo zaidi katika pili. Kimsingi, kwa sababu Daktari ilijengwa karibu usanifu mteja server, hivyo ili kuingiliana na Injini unahitaji aina fulani ya mteja. Picha ni templates katika ambayo vyombo ni kujengwa kutoka. Hivyo picha ni kimsingi tu tuli mafaili. Matukio na vyombo ni kweli nini ni mbio katika Runtime kwamba ni kuwahudumia maombi yako au kufanya kitu kwa data. Usajili ni kushughulikiwa kama tatizo la jinsi kweli kusambaza picha. Hivyo kama unahitaji kushiriki picha kwamba kazi katika na mwenzake yako au kwa timu ops, wewe matumizi yake kwa kutumia Msajili. Unaweza kushusha chanzo wazi toleo la ni kwamba Docker kazi katika na kufungua sourced. Au unaweza kutumia Docker msaada, ambayo ni toleo wingu kushinikiza na kuvuta picha huko nje. Hilo ni jambo kubwa. Kwa sababu kuna mkubwa mazingira kuzunguka Docker na ni kweli sana kutumia kitovu. Hivyo kwa kifupi hapa, hii ni jinsi minimalist Docker workflow mteja. Wewe kuingiliana na jeshi, katika kesi hii ni daemons Docker. Ni kitu kimoja kama injini ni. Kufanya amri kama Docker kujenga, kuvuta, kukimbia. Na injini yenyewe inakwenda na anafanya mambo hayo. Hivyo ama interacts na Usajili wa kuvuta taswira hizo na matabaka ya picha. Kama ukitaka kupeleka, kukimbia vyombo, kuwaua, kutupa yao chini, whatnot. Hivyo hii inatoa muhtasari wa workflow ya yote ya vipengele hivi. Hivyo kama wewe kuchukua kila sehemu kwa yenyewe. Hivyo injini za, ni tu daemon. Kutakuwa na aina ya kucheza kuunga mkono kwenye Linux kwa sababu haina zinahitaji baadhi Linux Kernel makala. Lakini Madirisha ni kazi juu ya kufanya kitu kimoja. Ni walidhani kuwa na mkono na Windows Server 2016. Hivyo, tena, majukumu na injini ni, au ni kwa, kujenga picha. Kuvuta picha kutoka Docker Kitovu au Msajili yako mwenyewe. Kama wewe ni kosa na picha hizo au wewe kujenga picha mpya, unaweza kushinikiza wale nyuma ya Usajili kuzisambaza kwa timu nyingine. Na kujaribu kuudhibiti ndani ya nchi na kusimamia mzunguko wa vyombo maisha ndani ya nchi. Ni kujengwa karibu HTTP REST API. Basi kitaalam unaweza kuandika mteja wako mwenyewe muda mrefu kama anatumia HTTP, ambayo ni sana kiwango cha utaratibu wa kuzungumza na injini na mengi ya huduma nyingine. Na unaweza kuona kutoka hapa kwamba bila kujali nini miundombinu ni, kwa muda mrefu kama wewe can-- zote unahitaji ni uendeshaji mfumo, Linux mahsusi. Na unaweza kufunga Docker injini za juu ya kwamba na kuwa ni mbio nayo inachochea, kimsingi, zote hizi programu moja, mbili, na tatu ni vyombo halisi. Hivyo hiyo ni injini. Kama nilivyoeleza hapo awali kwa sababu unahitaji kuingiliana na injini, kuna mteja. Lakini kwa kweli wakati wa kufunga Docker, ni meli na hayo. Hivyo anapata imewekwa, hivyo ni mapacha moja. Na unaweza kufanya simu za mitaa kwa yako Docker injini. Au wito kijijini Injini kijijini. Haina matumizi HTTP, kama Nilivyoeleza awali. Kuna mteja GUI aitwaye Kitematic kutoka Docker. Na kuna dhahiri mengi ya folks nyingine ambao ni kujenga mengi ya GUIs kwamba kimsingi kutekeleza baadhi HTTP wito wa kuzungumza na injini. Baadhi tu amri sampuli. Kama wewe kufanya Docker version, ingekuwa kuonyesha toleo la mteja pamoja na server toleo. Kama wewe kufanya Docker maelezo itakuwa kukuambia habari zote kuhusu jinsi vyombo wengi ni mbio au kuundwa, ni wangapi picha una, na kadhalika na kadhalika. Hapa nina, katika karibu na sanduku mwisho, nina Daktari kukimbia. Hivyo hiyo ni jinsi mimi nina kweli kujenga chombo. Na mimi nina wakitoa kurudia Hello World na kulala kwa ajili ya pili na mengineyo. Na unaweza kuona Matokeo yake. Hivyo ni unaoendelea. Na sawa na Linux ps, unaweza kuona taratibu zote na, katika kesi hii, zote mbio vyombo. Hii moja ya akimaanisha nyuma chombo mimi tu kuundwa. Hivyo, hii ni kweli ni muhimu kwa sababu, kama, inaweza kuwa kidogo utata. Hivyo picha ni kusoma tu mkusanyiko wa mafaili, sawa? Wao ni nini chombo yetu ni msingi. Lakini wao ni tu kusoma tu. Hivyo kuanza mbali na picha ya msingi. Inaelekea kuiga OS-kama, hivyo Ubuntu, CentOS, whatnot msingi picha. Na kisha kuanza kujenga juu ya kwamba, tabaka fulani, ambayo yanafanya mwisho wako picha, matokeo ya mwisho hapa. Na kila moja ya tabaka zile wanapaswa kuwa na mzazi picha kuwa ni marejeo wakati kweli anataka kuunda. Wao ni hayabadiliki, kwa maana kwamba kwa sababu wao ni kusoma tu, huwezi kweli kufanya mabadiliko kwao. Unaweza kutumia yao kwa kujenga chombo kutoka picha, ambayo atawaita yote ya baadae picha required chini yake. Unaweza kufanya mabadiliko kwa safu mbalimbali, ni rewrite safu mimi itabidi majadiliano juu katika pili. Lakini kila mmoja tabaka wale ni kamwe iliyopita. Kimsingi picha kutumia kitu aitwaye Umoja Picha System, UFS. Na kuna kuhifadhi mbalimbali mazingira ya nyuma kwamba kutumia teknolojia hii. Na nini maana ni kwamba huleta pamoja mifumo ya faili tofauti ili kuwafanya kuangalia kama moja. Hivyo unaweza kweli, kutoka maombi mtazamo, una juu ya mtazamo kwamba inaonyesha zote mbalimbali mfumo wa faili unaohitajika kwa maombi ambayo kukimbia. Lakini wao ni kweli, juu ya hili, wao ni kweli katika maeneo tofauti na kuwa itatumika kwa vyombo vingine pia. Hivyo kama unaweza kuona hapa kwamba katika kama sisi kuanza na daemon picha kama picha ya msingi, na kisha sisi kwenda katika na kuongeza [? emacs?] na kisha hiyo mwingine safu. Na kisha kuongeza Apache. Hiyo ni mwingine safu. Na kisha tunatumia chombo na kwamba. Kila moja ya picha hizo, kila mmoja tabaka hizo, ni tofauti na inaweza kuwa tena na vyombo vingine. Kama ukiangalia vyombo wenyewe, wao uko namna fulani kama VM-kama, lakini si kutibiwa kwa wakati mmoja. Kwa hiyo, hawana, kitaalam, mfumo kamili wa uendeshaji chini yao. Wao kutumia Kernel moja mfumo wa uendeshaji wa jeshi. Nao kujenga juu ya jambo hilo. Wao mimic katika jinsi ya kuangalia. Wao mimic faili zao mzizi mfumo wa mfumo wa uendeshaji. Lakini kwa kweli si kujinakilisha. Hivyo, badala ya kuwa tabaka hayabadiliki, safu ya mwisho, ambayo ni chombo yenyewe, ni kusoma kuandika safu. Hiyo pia anaendesha taratibu ya maombi yako. Na inategemea tabaka za msingi. Kila chombo ni umba kutoka picha. Na picha kwamba inaweza kuwa moja safu au multilayer picha. Na nataka kutambua hapa kwamba Docker sana anatumia, au ni msingi Copy-Write On-utaratibu. Hivyo kwamba, kwa kweli, kama wewe si kufanya mabadiliko ya chombo, siyo kwenda kuchukua nafasi ya ziada. Hivyo kwamba kimsingi ni jinsi gani muhtasari Copy-Write On-. Ni kwenda dhahiri kuharakisha Boot muda kwa chombo. Kwa sababu kama wewe si kufanya mabadiliko ya chombo, ni kutumia kile ambacho tayari pale. Hivyo, jinsi ni kweli kazi. Sehemu ya ni kama, hivi sasa, ni hutumia kernel angalau mbili muhimu makala. Na kwamba ni kimsingi nini umba kuwa kiwango cha kutengwa kwa vyombo wenyewe. Sifa hizo ni namespaces na cgroups. Hivyo namespaces ni njia ya kujenga rasilimali pekee, ili ndani ya chombo yenyewe, wewe tu unaweza kuona rasilimali fulani. Kama vile interface mitandao au watumiaji fulani au whatnot. Na wale ni wazi tu na tu kupatikana ndani ya chombo. Cgroup kwa upande mwingine mipaka upande jinsi gani matumizi ya rasilimali hizo. CPU, kumbukumbu, na rekodi. Wakati unaweza kwenda katika, mimi maana hayo ni kweli sifa ya kuwa walikuwa maendeleo by-- wao ni sehemu ya Linux Kernel. Hivyo hawakuwa upya na au upya na Docker. Docker anatumia wao. Nini Daktari kweli alifanya hapa ni kweli ni Orchestrated ya kujenga namespaces kwa kila kontena na kujenga cgroups ili ni ridiculously rahisi kujenga vyombo kutumia makala hizo. Bila shaka, kama mimi ilivyoelezwa mapema, Umoja Faili Systems na-Andika Nakala-On kweli kusaidia kasi na rekodi matumizi ya vyombo. Na mara moja kupata yako mikono kuzunguka Docker, wewe ni kwenda kuona jinsi ya kufunga ni kwa kweli spin up vyombo na machozi yao chini. Hivyo, kama wewe kuuliza, jinsi gani wewe kweli kujenga picha? Sisi kujenga picha na mchakato wa kuunda vyombo na kufanya mabadiliko, kubadilisha nao, na kufanya nao ndani ya kuwa na picha. Hivyo ni kuku na yai kumbukumbu hapa, kwa sababu vyombo vyote vyatoka kutoka picha na picha kuja kutoka vyombo nia, kwa sehemu kubwa. Kuna chaguzi tatu kujenga picha. Mimi nina kwenda kuelezea kwanza na ya mwisho. Unaweza aidha mwenyewe kwenda na kukimbia chombo na kufanya mabadiliko hayo, kama ungependa kufanya juu ya yoyote VM au mfumo wowote wa uendeshaji, kama kama kufunga binaries mpya, kuongeza mifumo ya faili, na mengineyo. Na kisha uzime, kama unaweza kuona hadi pale. Mimi exiting chombo changu. Na kisha mimi nina kufanya Docker kutenda. Na mimi nina kufanya hivyo. Unaweza kuona kwamba idadi hapa ni tu UUID, au kwanza 12 vipande vya UUID. Au ka wa UUID. Na kisha mimi nina wito ni picha yangu. Hivyo sasa Docker inachukua huduma ya kurekodi kila kitu mimi alifanya hivyo na kujenga mpya picha kwa kuzingatia kwamba. Mimi si kwenda kuzungumza kuhusu tarball, lakini kuna njia unaweza kupata moja, kujenga moja, au kufanya moja safu picha kwa kutumia tarballs. Nini mimi kwenda kuzungumza kuhusu suala hili na nini zaidi ya kutumika leo, ni Dockerfile. Ambayo ni ya kitaalam kwanza hatua automatiska na Docker yenyewe. Hivyo Dockerfiles ni mambo ambayo uko kwenda kuona katika mengi ya GitHub repos leo. Ni kimsingi tu Nakala faili kuelezea hasa jinsi ya kujenga picha. Na kwa kila mstari, ni kweli inajenga chombo, executes kwamba line, anayetenda chombo kwamba katika sura mpya, na wewe, kimsingi, kuitumia kwa ajili ya shughuli zote baadae mpaka kupata picha ya mwisho. Ambayo kimsingi ni mwisho lengo hapa, mwisho. Na baada ya wewe exec-- baada kuandika Dockerfile yako, ambayo ni rena katika maandishi, unaweza kufanya Docker kujenga na jina la picha. Na wewe kumweka katika kuwa kwamba ni ambapo Dockerfile ni katika. Na unaweza kutarajia kuona picha yangu kama picha kwamba una ndani ya nchi. Hivyo hiyo ni Visual mfano wa yale yanayoendelea. Unaweza kuanza kwa msingi wa mfano. Kukimbia kwamba katika chombo kwamba haina kubadilisha msingi picha yenyewe. Lakini badala inajenga kuandika upya safu juu yake ambapo kufanya mabadiliko, ambayo kufanya na wewe kurudia utaratibu mpaka kupata picha yako ya mwisho. Na kwa kufanya hivyo, kila mmoja kujenga mchakato unaweza kutumia tabaka huo na same-- kimsingi Docker kukamatwa kwa tabaka hizo. Ili kwamba kama mimi nina kufanya sawa kamili mchakato huo, lakini badala ya kufunga PHP, Mimi nina kufunga chatu. Ni kwenda kutumia Apache na Ubuntu. Hivyo njia kwamba wewe ni kutumia rekodi yako. Ni kutumia cache na picha zinazopatikana huko. Kipande ya mwisho ni Msajili, ambayo ni jinsi gani kusambaza picha yako. Na, kama nilivyoeleza awali, kuna toleo wingu yake, ambayo ni Docker Hub. Unaweza kwenda na kuchunguza mengi ya kimsingi ni bidhaa ya umma SAS kwamba bado unaweza kuwa na picha binafsi, lakini kuna mengi ya picha ya umma. Ni kweli ukomo, unaweza kushinikiza picha ukomo wa umma huko. Na hii ni jinsi gani unaweza kushirikiana na timu yako. Unaweza tu hatua yao katika wewe repo na wao unaweza kushusha ni au picha yako na wanaweza kushusha ni. Hivyo kutosha kwa majadiliano. Ambaye anataka kuona baadhi demos halisi haraka? Sawa. Hivyo hapa nina. Ca nyie kuona screen yangu? Sawa. Hivyo nina Docker mbio hapa, hivyo mimi Unaweza kuangalia it's-- Hili ni toleo la ya Docker kwamba mbio. Anaweza kufanya Docker maelezo. Angalia maelezo yote kuhusu jinsi wengi picha waliyo nayo, na kadhalika na kadhalika. Docker PS, kuna kitu mbio. Concatenated hizo. Hivyo jambo la kwanza nataka kufanya ni kuonyesha jinsi unaweza kwa urahisi kukimbia chombo. Hivyo uzuri kuhusu Daktari kukimbia, ikiwa ni kweli haina kupata picha ndani ya nchi, by default ni mazungumzo kwa daktari Hub na anajaribu kupata hiyo kuna na kupakua ni kwa ajili yenu. Hivyo ni pamoja na Docker kuvuta amri, kawaida. Hivyo kama mimi kufanya Docker kukimbia, hodi-dunia. Hivyo, kwanza ni kwenda kujaribu ya Machapisho hayo. Vinginevyo, kama unaweza kuona hapa, haikuweza kupata hiyo ndani ya nchi. Hivi sasa ni kama tu kujiondoa tabaka mbili kwamba alifanya sanamu hiyo na mimi mbio hiyo. Hodi-dunia ni tu kimsingi matokeo, nini umefanya. Hivyo hii ni rahisi, moja rahisi mifano. Hivyo kweli mimi tu mbio na kuachishwa chombo halisi haraka. Kama mimi nataka run-- na kwa njia, kama Nataka huo, ili tu kujua, hii ni inachukua muda gani kwa kweli spin juu na kuudhibiti. Sisi ni kupima katika milliseconds. Hivyo unaweza kuona ni kiasi gani hii unaweza kweli kukusaidia si tu katika kupima, lakini pia hata kupelekwa. Hivyo hiyo ni kumbuka haraka juu ya jambo hilo. Jambo la pili mimi nina kwenda kufanya ni kweli kukimbia picha nimekuwa tayari tayari. Hivyo Docker kukimbia. -d ni bendera kuwaambia kwa kukimbia kwa nyuma. Na p inateua bandari fulani. Kwa sababu by default, vyombo ni pekee, hivyo kuwa na kutaja hasa jinsi gani inaweza kuzipata. Na katika kesi hii, mimi nina kuwaambia Docker ramani bandari random juu ya jeshi bandari maalum ndani ya chombo yenyewe. Na kwamba kimsingi ambapo image-- hopefully hii ni haki ya mmoja. Hivyo hana sambamba downloads kila tabaka wale kama unaweza kuona hapa. Hayo ni ya tabaka kufanya picha ya mwisho kwamba mimi kujengwa. Ni kwenda kuchukua pili. Na voila. Hivyo sasa kama mimi kufanya Docker ps, mimi lazima kuona kitu ambacho ni mbio. Ni lazima kuona kitambulisho, picha kwamba hii ilikuwa msingi mbali, Hiyo amri ambayo shabaha aliuawa. Na jinsi ya kupata hiyo ni kimsingi wewe kwenda kuwa bandari. Hivyo mimi nina kwenda to-- hii ni mimi nina mbio juu ya AWS. Mimi nina kwenda kwa 32,769. Oops. Na hapa sisi kwenda. Hivyo hii ni kweli tu mtandao wa huduma hiyo inaonyesha ambayo chombo ni kuwa aliwahi kutoka. Hivyo unaweza kuona kwamba ni kutoka chombo a9f. Na hapa hii ni jina la chombo. Hivyo nyie unaweza kuona jinsi ya haraka ilikuwa kweli kuvuta si tu bali pia kupeleka chombo hii. Sasa hatua inayofuata ni kuangalia ndani Dockerfiles na jinsi tunaweza kweli kujenga picha mpya. Mimi tu kwenda kwenda kupata msaidizi, a sampuli Dockerfile kulingana na mapema mchoro, moja kwa Apache na PHP. Hopefully Nakumbuka repo yangu. Hivyo nina there yangu hivi sasa. Na wewe ni kwenda kuona hii mengi kwa kweli. Sikuwa kufunga mti. Hivyo kimsingi wewe ni kwenda kuona jinsi chanzo kanuni yako nyaraka kuzunguka yake, na kisha Dockerfile juu ya jinsi ya kweli kufunga hiyo. Hivyo ni sampuli PHP kwamba iliyopewa kichwa hodi CS50. Hivyo kama nataka kukimbia, Mimi itabidi kufanya Docker kujenga. Nina kwa kujenga kwanza. Mimi nina kwenda jina hilo demo_cs50. Na unahitaji tag kwa hiyo pia. Basi hebu kuiita v1 dot. Hivyo kama mimi ilivyoelezwa mapema, nini mimi kufanya leo ni mimi nawaambia Docker kwenda matumizi that-- kweli, pole, mbaya wangu. Hatukuwa tuangalie katika Dockerfile yenyewe. Hivyo mambo tu katika hapa ni index.php kama vile readme faili na Dockerfile. Hivyo kama wewe kuangalia Dockerfile, hivyo ni sawa na kile Mimi ilivyoelezwa hapo awali. Ni tu rundo la hatua ambazo Docker executes kwa kujenga na kubomoa vyombo na [? kuhesabu?] yao katika picha. Na kimsingi unaweza see-- [inaudible] ni here-- lakini hii ni kutokana na repo ndani. Ni kwenda kwenda na kunyakua index.php. Hivyo hiyo ni chanzo kanuni tu kwamba ni kweli sehemu ya maombi yako. Haya yote ni kimsingi mfumo wa uendeshaji mabomba, kupata fedha za haki na Apache, na PHP, na mengineyo. Lakini hii ni kweli kuchukua index.php na kutenda katika chombo, ndani ya picha. Hivyo kama wewe kwenda mbele na kukimbia amri kwa kufanya yafuatayo, ni going-- kweli, hii inaweza kuchukua kidogo. Ni matumaini haina kuchukua muda mrefu mno. Hivyo unaweza kuona hatua. Na mimi moyo kwenda kurudi nyumbani leo na kujaribu. Na Mano kuelezea jinsi gani hasa wewe kufanya hivyo. Lakini ni kubwa kweli kweli kuona hasa nini kinatokea nyuma ya pazia. Lakini ni ridiculously rahisi kujenga picha na kuwapeleka kwa kutumia Docker. Ni kuchukua kidogo tena kuliko mimi ilivyotarajiwa. Hebu kuona nini kinatokea wakati you-- baridi. Hivyo kama unaweza kuona, kila moja ya hatua wale kuwakilisha mistari katika Dockerfile. Na inaonyesha hapa kwamba mafanikio kujengwa picha hii. Hivyo kama mimi kufanya Docker picha, mimi nina kwenda kwa ona picha zote kuwa nina ndani ya nchi. Mmoja wao anaitwa yangu jina la mtumiaji, na jina la mfano, na tag representing-- hasa ni tag toleo. Hivyo sasa kama nataka kukimbia hivyo, mimi kufanya Docker kukimbia. Na mimi nataka tu kufanya -P -d. Je v1. Hivyo siwezi kuona sasa kwamba I have mbili vyombo kukimbia, moja kwamba mimi tu iliundwa na hodi Docker moja kwamba mimi got jana. Na unaweza kuona hapa kwamba kupewa ni bandari tofauti. Hivyo kama mimi kwenda IP sawa lakini hawawajui port-- tofauti hopefully mimi si. Hivyo sasa hii ni maombi kwamba mimi tu uliotumika. Kama mimi nataka kufanya mabadiliko, mimi Unaweza haraka hariri chanzo kanuni na kufanya yafuatayo. Hebu kufanya hodi Harvard. Hivyo sasa nini kinaendelea kutokea ni kwamba mimi nina kwenda kumtambulisha kwa mbalimbali version-- loo, si hii guy-- tag na toleo mbalimbali. Na wewe ni kwenda see-- kufanya nyie kutarajia ni kuchukua kiasi kama hicho cha muda kujenga mara ya pili au la? Sawa, na kuna mtu anajua kwa nini? Ongea. Watazamaji: [inaudible] NICOLA Kabar: Ni kimsingi sisi tu mabadiliko moja ya hatua za baadaye. Na kwa hiyo ni kwenda kutumia cache na kutumia kila moja ya tabaka hizo. Na hiyo ndiyo kweli baadhi ya makala muuaji wa Docker ni jinsi gani kweli hutumia na reuses kuchukua zaidi disk yako kwa moja vipande halisi ya habari. Hivyo kama sisi kufanya kitu kimoja, ilichukua sekunde kadhaa. Kama tunataka redeploy-- hivyo sasa Ni lazima kuwa na vyombo vitatu. Lakini hii moja ni kuwa mjumbe katika the-- moja saba. Hivyo sasa ni chombo cha tatu. Kila mtu kuelewa nini mimi tu alifanya hapa? Hivyo sasa kama unataka kushiriki hii chombo halisi haraka na rafiki yako, unaweza tu kufanya Docker kushinikiza jina la chombo, hopefully. Hivyo sasa ni kwenda kuiondoa to-- mimi si saini katika hapa. Pole juu ya hilo. Lakini mimi si kwenda troubleshoot hii sasa. Lakini kimsingi kwamba amri moja ni tu kwenda kuiondoa. Na wewe ni kwenda kuwa na uwezo wa kuona kama wewe kwenda Docker Hub Na wewe kuingia katika, uko kwenda kuwa na uwezo wa kuona. Na kisha unaweza tu uhakika yeyote ni kwenda kutumia picha kwamba kwenda na kuvuta ni. Na wanaweza kuitumia. Pamoja na kwamba, hopefully Mimi aina ya alionyesha jinsi gani ni rahisi kufanya kazi na Docker. Na mimi nina kwenda tu kwa kuwapa nyuma kwa Mano. Na yeye kwenda kuchukua kutoka hapa. MANO MARKS: zote haki shukrani, shukrani Nico. Kwa hivyo? Hivyo moja ya mambo mimi walitaka kufanya ni kuweka pamoja nini hii ni important-- kwa nini Docker na kwa nini vyombo ni kama maendeleo muhimu mpya, njia mpya ya kweli kufanya programu. Na kabla ya mimi kufanya, mimi nina kwenda kwa tu kuanzisha stats chache. Sitakuja kusoma yote haya. Lakini hii inaonyesha mengi kuhusu jinsi maarufu hii ni katika jamii. Msingi Docker teknolojia ni wazi chanzo. Hivyo hiyo ni Docker injini za, kutunga, Pumba, rundo la mambo mengine ni wote chanzo wazi. Na tuna nini alifanya mimi kusema, 1300 wachangiaji. Wewe ni kuona sasa, kama ukiangalia idadi ya kazi fursa, mara ya mwisho sisi inaonekana, ilikuwa juu ya 43,000 kazi fursa hasa kutaja uzoefu na Docker. Mamia ya mamilioni ya picha na wamekuwa kupakuliwa kutoka Docker Hub. Na, pia, stats mengi zaidi kubwa. Kwa wale ambao ni wadadisi, ni awali ilikuwa yaliyoandikwa katika Python na kisha kuandikwa upya katika Go. Na imekuwa tu kufungua source-- ni tu wamekuwa iliyotolewa kwa kuhusu 2 na 1/2 ya miaka, ambayo ina maana kwamba katika 2 na 1/2 ya miaka, tumeona kiasi kubwa ya ukuaji wa uchumi na umuhimu haya katika jamii. Na hivyo nataka kuzungumza kidogo kuhusu nini. Hivyo tu kusisitiza baadhi ya Pointi muhimu Nico wa, Docker ni kufunga. Ni portable. Ni reproducible. Na unaweka juu ya mazingira ya kiwango. Na what-- hii ni crappy yangu muhuri nje monoliths slide-- nini ni kuwasaidia watu kufanya, ambayo mengi ya sekta ya programu ilianza kufanya katika miaka ya 2000 mapema, ni kusonga na hayo monolithic maombi moja ambapo kila utegemezi na kuwa kupimwa kabla ya programu nzima alikuwa kupelekwa, ambayo inaweza kuwa na maana tovuti tu got uliotumika mara moja kila baada ya miezi mitatu, au zaidi, kwa huduma zaidi oriented usanifu au componentized tofauti aina ya maombi usanifu. Na hivyo kuruhusu haya aina ya usanifu kwamba kuchukua faida ya Docker kukimbia katika hao watatu maeneo makuu ya maendeleo, ambayo ni maendeleo kuandika kanuni yako halisi, kupima kanuni yako, na kupeleka yake. Hivyo hii ni kwa nini ni muhimu? Kama uko a-- nikupe mfano. Kama wewe ni tovuti developer kifaa, wewe ni kuendeleza tovuti hiyo kulingana na Mbegu kwamba Daudi zinazozalishwa zaidi ya hapa. Pole Daudi, mimi nina wito wewe nje. Kama alitaka kupeleka jambo zima, wewe d kusubiri chini ya jadi monolithic programu ya maendeleo mazingira, utaweza kuwa na kusubiri mpaka yeye ilifanywa na orodha kabla unaweza kweli kufanya mabadiliko yoyote ya tovuti yako. Wewe d na redeploy maombi nzima kufanya hivyo. Na nini Docker husaidia kufanya ni kila mtu kazi ya vipengele mbalimbali na kuboresha yao kama wao kwenda, na kufanya tu kuhakikisha kwamba interfaces kukaa sawa. Kwa hiyo kile amefanya ni ni kubadilishwa watu kutokana na kufanya hivi monolithic mkubwa architected programu ambayo uliotumika kila mwezi kwa kuendelea ushirikiano na maendeleo ya kuendelea mazingira. Sasa hii si ya kipekee kwa Docker, lakini Docker inafanya rahisi sana, ambayo ina maana uko kimsingi mara kwa mara kupeleka. Sisi kuzungumza na makampuni ambayo ni kupeleka maombi ya umma yanayowakabili maelfu ya mara siku kwa sababu wanachokiona thamani katika maamuzi tu mabadiliko madogo, na kwa muda mrefu kama anaendesha kwa njia ya vipimo, kuruhusu ni kwenda nje katika uzalishaji. Nico mara zote kuniambia awali kwamba katika mazingira mengi, kiwango cha mzunguko wa maisha ya chombo ni kipimo katika sekunde, ambapo mashine virtual inaweza kupimwa kwa miezi. Nilitaka kuchukua kidogo kugeuka hapa kwa sababu mimi nina katika taasisi za elimu. Nilitaka kutoa mfano wa jinsi hii kazi katika utafiti wa elimu hali hiyo. Hivyo kuna asasi aitwaye bioboxes. Bioboxes gani DNA uchambuzi kwa watafiti. Sasa nini walikuta ni kwamba wakati a researcher-- na hii si kosa la aina fulani researcher-- lakini wakati Mtafiti uliotumika algorithm kuchambua, Kwa namna ya pekee, DNA sampuli, wangeweza kuandika programu, kuchapisha kwamba, labda kwa GitHub au mahali pengine, na kisha wao yalifanyika. Naam tatizo ni kwamba Ilikuwa si lazima reproducible. Kwa sababu ili kuelewa programu, wangeweza kuwa kuanzisha kwa mazingira halisi ya maendeleo kuwa mtafiti kwamba kutumika, kwa kawaida mbali yao, au server, au data kituo cha kwamba walikuwa kutumia. Na kwa sababu hiyo, ilikuwa vigumu sana kuzaliana matokeo ya utafiti wakati kuchambua sampuli za DNA ya kuangalia mambo kama incidence-- kulinganisha matukio ya mashambulizi ya moyo kulingana na jeni fulani kuwa sasa, kwa mfano, au hatari kansa, au yoyote ya aina nyingine ya mambo. Hivyo walichofanya badala alikuwa walianza kujenga vyombo. Na unaweza kwenda bioboxes.org, ni shirika kubwa. Na wanachokifanya ni wao kuzalisha vyombo kulingana na utafiti. Na kisha wakati wowote mtu inapeleka katika sampuli zao, wanaweza kukimbia nayo. Na ina mazingira yote zinahitajika kuendesha kwamba algorithm na kutoa matokeo. Na wao ni kutafuta kuwa wao ni mkubwa zaidi na mengi zaidi haraka na uwezo wa kurudi matokeo kwa watu. Na kwa kweli, watu nini wanafanya ni mbio uchambuzi yao wenyewe juu ya DNA, kutuma kwamba katika ili bioboxes, na kisha biobox tu inachukua data, anaendesha hiyo dhidi ya aina vyombo ya tofauti kuona matokeo tofauti kulingana na utafiti mbalimbali. Hivyo ni nguvu sana njia ambayo watafiti wanaweza kufanya mfano moja ambayo inaruhusu watu wengine kujaribu na kuzaliana Matokeo. Hivyo ni jinsi gani kuanza? Sisi ni pamoja na mkono juu ya Linux. Hivyo kama unataka kufunga chochote juu ya Linux, wewe kutumia kiwango yako mfuko meneja kufunga. Kama unatumia Debian, ni mwalimu mwema kupata. CentOS ni yum. Fedora Red Hat ni rpm-- Sikumbuki. Hata hivyo, ni wote huko. Tunaunga mkono aina kubwa ya Linux mgawanyo. Unaweza kuangalia wale nje. Sisi pia kuwa chaguzi hivyo kuweza kukimbia juu ya Mac au Windows. Sasa Nico ilivyoelezwa awali kwamba ilikuwa tu mkono juu ya Linux. Hiyo ni kweli kwa sababu mahitaji Linux Kernel. Lakini, unaweza kukimbia katika mashine virtual. Na nini Docker Jumuia gani, ambayo unaweza kushusha, inakupa kwamba mashine virtual. Hivyo tu haraka 48 pili, nadhani, download. Wewe tu kutafuta kwenye Docker Jumuia, kushusha ni kwa Mac, na sehemu hii ni ya Bila shaka sped up kwa sababu ni nani anataka kuangalia download ishara? Standard Mac ufungaji, na kisha uko kwenda kuona Jerome kuweka katika neno lake la siri. Hiyo ni ya kusisimua sana. Na kisha installs rundo zima la zana. Na hasa itakuwa kufunga mstari amri. Na kisha unaweza kuona Jerome kupima taswira yake. Na kisha kulingana na hii, unaweza kuona kwamba YouTube anadhani kwamba Nico ni nia ya Star Wars, show Jimmy Kimmel, na nadhani Ellen. Nadhani mwisho moja ni kipande cha kutoka show Ellen. Hivyo Docker Jumuia ingawa huja kwa zaidi ya Docker Machine. Hivyo Docker Machine ni Jambo ambayo husaidia kuanzisha virtual mashine Windows yako au Mac-- yako Windows sanduku au Mac yako box-- na husaidia kufanya utoaji, Lakini pia kuja na Pumba na kutunga, ambayo ni iliyoundwa na kukusaidia kufanya kubwa deployments wadogo wa maombi yako. Hivyo kama unataka kusimamia makundi ya nodes, makundi ya vyombo, Kutunga na Pumba ni njia ya kwenda juu ya hilo. Na bila shaka inakuja na Docker injini za na Kitematic, ambayo ni GUI hii eneo kazi. Mimi lazima pia kutaja Docker Msajili, ambayo ni pamoja na katika Jumuia, lakini ni njia kwa ajili ya wewe kukimbia yako mwenyewe usajili wa Docker Picha kama Docker Kitovu, lakini pia unaweza kutumia tu Docker Hub kama njia ya kufanya hivyo. Na, njama twist, wewe ni kuona ni mbio katika chombo. Na kwamba ni jinsi tuko kusambaza slides wetu. Zoezi hili zima ni kweli HTML slide staha. Na ni mbio katika chombo, ambayo unaweza kupata by-- NICOLA Kabar: Ndiyo, hivyo ni mbio muda kamili juu ya Max yangu. Na mimi nina kuwasilisha kutoka humo. Na wewe tu kufanya Docker baada kufunga Jumuia yako. Unaweza tu kufanya Docker kukimbia na kupata, na kutumia slaidi. MANO MARKS: Na hiyo ni yake. Hivyo sisi kuwashukuru wote kwa kuja. Na sisi ni furaha na kujibu maswali. Mimi kutaja kabla ya mtu yeyote majani kuna fulana zaidi ya hapo. Pole mtu yeyote ambaye ni kuangalia huu juu ya Livestream au video, lakini tuna Docker fulana zaidi ya hapo. Na tunajua Docker wanafunzi, na katika uzoefu wangu, maprofesa pia, kama mavazi ya bure. Hivyo kuwashukuru wote kwa kuja nje. Na kufuata yetu juu ya Twitter kama unataka, au hawana. Sijali. Pia kufuata Docker juu ya Twitter. Hiyo ni pia kuvutia. Na kisha hiyo ni yake. Docker.com. Asante. [Makofi]