[Zenelejátszási] DAVID MALAN: Rendben. Köszönöm, hogy eljöttek. Ez CS50 szeminárium Docker, a technológiát, hogy mi magunk és a CS50 kezdték el használni egy ideje már. Tehát a nevem David Malan, én tanítani Harvard Bevezetés a Computer Science. Mert elég néhány éve, mi már a diákok Letölthető kliens oldali virtuális gépek amelyeken ők a problémákat készletek. Hogy most már átalakultak a Cloud környezetben hogy valóban használja ezt a technológiát nevezett Docker, oly módon, hogy minden a CS50 diákok most már a saját Docker konténerek hogy hamarosan mindent hallani. Sőt, a CS50 szerverén oldalán klaszter, sok éven át általunk használt Amazon Cloud szerver. Futottak egyéni virtuális gépek. Ez is megkezdtük átmenet ezek a dolgok úgynevezett Docker konténerek úgy, hogy minden a mi alkalmazások most tökéletesen izolált egymástól. Tehát, hogy több, engedje meg, hogy bemutassuk barátok, Nico és Mano, re Docker magát. NICOLA kabar: Köszönöm, David. Helló mindenki. A nevem Nico és ez Mano. Jöttünk Docker. Fogunk beszélni about-- így a srácok egy intro a Docker, és remélhetőleg, a vége felé Előadásomban tudod megvalósítani mennyit lehet használni orvos oxalát az alkalmazás fejlesztés és a telepítés. Szóval, megyünk, hogy elindul a valós Gyors némi háttér-információkat. Írja le, mi Docker szól. Hogyan működik? Hogy lehet az, építette? Fogok csinálni néhány demót. És Mano lesz leírja, hogyan lehet használni Docker és így konkrét lépéseket hogyan lehet elkezdeni. Örülnék, ha a srácok fér off kérdésre a vége felé. Így, lehet, hogy ezek megoldására kérdésre a bemutató. Szóval elmegyünk egy kis időt vége felé a kérdések. Tehát csak tényleg gyorsan, aki ténylegesen valaha is dolgozott Docker, mint játszott vele? Fantasztikus. Hűvös. Nagy. Szóval, én fogom kezdeni A kis történelem. Szóval vissza a '90 -es években, és 2000 elején, alapvetően a webfejlesztők, app fejlesztők, amikor mentek telepíteni egy alkalmazást ez volt kötve a csupasz fém. Ez volt az egyik szerver. Ez volt az egyik alkalmazás. Hagyományosan, egy példa lenne, mint egy LAMP, ahol valóban kellett hogy ki a erőforráskészletet. CPU, memória, merevlemez, hálózati, telepítése operációs rendszer a tetején, hogy. Ha szolgálja valamit, ha te tényleg rendelkező webszerver, ha kell valami, mint Apache tálaljuk. Ha az alkalmazás szüksége van az adatbázisban, fonák, akkor telepíteni valamit mint a MySQL, és így tovább. És ha szüksége van a futási időt, PHPs és a PHP Python munka volt ott. És így valóban az említett hogy ezeket a lépéseket annak érdekében, hogy az alkalmazás, és fut. Ha szükséges, nagyobb számítási teljesítmény, akkor Alapvetően kellett hívni a Ops srác vagy csaj, hogy menjen és rack akár egy új hardverekkel, csatlakoztassa, és meg kell ismételni ezeket a folyamatok újra és újra. Tehát ez a folyamat viszonylag drága. Határozottan nagyon lassú. Ez volt hatékony. És sok esetben, a hardvert kihasználatlan. Tehát, a '90 -es évek végén és az 2000-es évek elején, hardveres virtualizációs bukkantam. És mint látható itt, a kép, alapvetően mit tettek kiveszik a medence ingyenes hardveres erőforrások és milyen szolgált azoknak a felső rétegek, Ebben az esetben, egy vendég operációs rendszert. És az egész ötlet virtuális gépek rábukkantam és hogy valóban segített Cloud számítástechnika, mint tudjuk, ez ma. Szóval, mit jelent ez Önnek képes futtatni több virtuális gépek, amelyek jelentette több stack több alkalmazás egy ugyanazon a fizikai gépen. Ez határozottan segített a sebessége alkalmazások telepítését. Határozottan a költségeket. Nem kell menni, és költeni energiát, időt és forrásokat, a rack több szervert kap nagyobb számítási. És a sebesség valóban hozza ezeket a forrásokat fel sokkal gyorsabb. Nagy. Szóval megoldottuk a világméretű éhínség, ugye? Nem, nem igazán. Szóval, a virtualizáció, mint ez valóban segített, a probléma kezelésére, ez valójában bevezette sok kihívással. A hypervisor határozottan bevezetett egy csomó összetettsége, kezelése a mögöttes erőforrást. Ez nehezebb, abban az értelemben, hogy mielőtt akkor volt egy egységes operációs rendszer, amely olyan, mint három, négy koncertet a lemezen. Most, ha van 10 gép egyetlen hardver Önnek kell szorozni, hogy A gépek száma. Ez határozottan több drága bizonyos értelemben még mindig van, hogy az engedélyezési A virtualizációs technológia ha nem nyílt forráskódú. De, ne tegyen meg minden hitelt virtualizáció. Mert mi történt, van egy Sok halom és rengeteg szoftver technológiák, amelyek lehetővé tette az, hogy milyen gyorsan képesek voltak, hogy a források a Cloud boom. Szóval, ma egyetlen alkalmazás vagy szolgáltatás is lehet bármilyen az alábbi runtimes vagy adatbázisokat. PHP, Python, MySQL, Redis, miegymás. Szóval van egy csomó összetettsége ezen számú halom, hogy valóban hozza fel egyetlen szolgáltatást. És vele, hogy volt egy csomó mögöttes erőforrások vagy infrastruktúra- típusú teszt bevezethető és alapvetően hogy a termelés ezen alkalmazások hogy te fejlődik. Különösen, mint a csapatok termesztésű dolgozik azon alkalmazások, van egy csomó összetettsége és kihívások hogy hoztak annak biztosítására, hogy A cycle-- alapvetően alkalmazás fejlesztési ciklus, az valójában sikeres. Szóval, az a tény, hogy az alkalmazás dolgozik helyben, a helyi VM nem garantálja, hogy a kollégája fog várni ugyanazt az eredményt. És amikor a műveletek csapat részt vesz, mi van és telepítése a termelésben méretekben nincs garancia Hogy ez valóban meg fog történni. Szóval ez hagy minket egy igazán big-- egy csomó kérdőjel, sok kihívással ténylegesen szembe hasonlóan vissza a napokat. És, hogy emlékeztetett minket a hajózási ágazat. Tehát a hajózási ágazat Volt egy csomó árut, mint látható a bal oldalon. És a jobb oldali, van egy csomó, alapvetően, módon, hogy a hajó az áru. És mi történik, mint egy pár emberek jöttek össze, és azt mondta, meg kell egységesíteni, hogyan mi valójában a hajó ezeket az árukat. És bumm, akkor a intermodális szállítási konténert. Így megállapodtak a legtöbb közös méretek a konténer. Hogyan kell kezelni őket. Milyen pontos módszer van szüksége betölteni őket, és kirakodni. És ezért, hogy valóban segített a hajózási ágazat. Most, több mint 90% fókusz szállítják globálisan használ a konténereket. És ez határozottan csökken A költségek, valamint a A károk miatt a hajózás. Így vesszük ugyanazt a modellt, és mi alkalmazni a két alkalmazás fejlesztés szoftver építészet, abban az értelemben, hogy a konténer vette a virtualizáció egy szinttel feljebb. Tehát ahelyett, hogy csinálja hardver szintű, úgy vált egyre működési rendszer szintű virtualizáció. És mi ezt azáltal, hogy minden alkalmazás saját könnyű, elszigetelt, futtatható, és hordozható, ami a legfontosabb, olyan módon, hogy ténylegesen a csomag mindent, hogy kell futtatni. Bárhol lehet futtatni. Tehát, függetlenül attól, ha fut be helyi dev környezetben, a termelési környezetben, a megállóhelyeken és tesztelés. Nem számít, milyen mögöttes infrastruktúra van, volt egy funkcionális működő alkalmazás. Szóval ez az, amit alapvetően konténerek tennie, hogy ezt a problémát. Ők foglalkoznak által csomagolás azt oly módon hogy garantálni tudja, hogy ez bevetett Sikeresen nem számít, hol él. Tehát, ha mész mint Bob még mindig OK. Ha tévesztendő össze, amit mondok, Megyek is kifejtené, hogy. Tehát hogyan Docker magát illeszkedik ez a kép? Tehát Docker egy nyitott platform hogy könnyen, egyszerűen hangsúlyozni, építeni hajót, fut, Könnyű, hordozható önálló elegendő app konténerek bárhol. Így ha ebből valamit beszélni, kérjük, tegye meg a következő. Ha az alkalmazás fut helyi és fejlesztette használják a Docker platform, várják azt kell sikeresen alkalmazott. Nem számít, mi a háttérinfrastruktúrával. Tehát ha van egy Docker konténer és ez működik, akkor mindaddig, amíg van egy Docker motor, a másik side-- Ha a művelet infrastruktúra használja bármely Cloud, függetlenül attól, hogy az AWS, vagy a Google vagy a Microsoft, vagy a nyilvános felhők, vagy a saját Cloud, vagy a nyílt verem Cloud, vagy a helyi környezetre. Ha egy motor futás, ami azt jelenti ez lesz sikeresen alkalmazott van. Meg fog futni pontosan ugyanazt a viselkedést ahogy terveztük meg, hogy legyen. Tehát, ha megnézzük at-- megyek hogy menjen át, hogy valójában mi vannak a fő összetevői a Docker. Tehát Engine középpontjában a Docker. Ez az agy. Ez orchestrates épület, szállítás, és telepítése és kezelése a konténerek maguk. Én ásni, hogy mit csinál Motor részletesebben a második. Alapvetően azért, mert doktor épült körül kliens-szerver architektúrák, így annak érdekében, hogy befolyásolja a Motor szükség van valamiféle ügyfél. Képek a sablonok amely konténerek épülnek. Így a képek alapvetően csak a statikus fájlokat. Sablonok és konténerek valójában mi fut futás közben, hogy szolgálja az alkalmazás vagy csinál valamit az adatokat. Registry megszólítása probléma hogy éppen hogyan terjesztheti képeket. Tehát, ha kell megosztani a képet hogy dolgozott a kollégájához vagy az OPS csapat, akkor használja a Registry. Tudod letölt egy nyílt változata is, hogy Docker dolgozott és nyissa származik. Vagy használhatja Docker segítséget, amely a felhő változat húzó- és képek odakint. Ez egy hatalmas dolog. Mert van egy hatalmas ökoszisztéma körül Docker és ez Nagyon erősen kihasználva a hub. Szóval, hogy összefoglalja itt, ez hogyan minimalista Docker munkafolyamat kliens. Ön lépni a házigazda, Ebben az esetben ez a Docker démonokat. Ez ugyanaz a dolog, mint a motor. Ugye parancsokat, mint Docker építeni, húzza, futni. És maga a motor megy és nem azokat a dolgokat. Tehát vagy kölcsönhatásban áll Registry húzni ezeket a képeket és a rétegek a képek. Akár ha szeretné telepíteni, futtatni konténerek, megölik őket, dobd le őket, miegymás. Tehát ez összefoglalja a munkafolyamat az összes ilyen komponens. Így ha minden komponens önmagában. Tehát Motor, ez csak egy démon. Ez lesz a fajta játszani, hogy támogassa ezt Linux, mert ez nem szükségük van bizonyos Linux kernel funkciók. De a Windows dolgozik A ugyanazt a dolgot. Úgy kéne támogatni kell A Windows Server 2016. Szóval, megint a felelősséget a motor, vagy kell, építeni képek. Húzza a képeket a Docker Hub vagy a saját adatbázisában. Ha végeztél a képek vagy létrehoz egy új képek, akkor nyomja azokat vissza a rendszerleíró terjeszteni őket, hogy más csapatok. És próbálják tartalmaznak helyben és kezelni a tartályokat életciklus helyileg. Úgy épül HTTP REST API. Szóval technikailag tudsz írni a saját kliens mindaddig, amíg ez használ HTTP, ami egy nagyon szabványos mechanizmus beszélni Motor és sok egyéb szolgáltatás. És látod Itt, hogy függetlenül attól, hogy mi az infrastruktúra van, mindaddig, amíg az összes can-- szükség van egy olyan operációs rendszer, különösen a Linuxot. És akkor telepíteni Docker Motor A tetején, hogy, és ez futás és összehangolja, alapvetően, Mindezen app egy, kettő, és három tényleges konténerek. Szóval ez Engine. Mint korábban említettem, mert meg kell, hogy befolyásolja a motor, ott van az ügyfél. De valójában, amikor telepíti Docker, hogy a hajók vele. Szóval ez lesz telepítve, így egyetlen programban. És meg tudod csinálni helyi hívások a Docker Engine. Vagy távoli hívások távoli Motorok. Ez nem használja a HTTP, mint Azt már korábban említettem. Van egy GUI kliens nevű Kitematic re Docker. És vannak kifejezetten egy csomó más emberek akik felépítik a sok GUI, hogy alapvetően végrehajtása Egyes HTTP kéri, hogy beszéljen Engine. Csak néhány példa parancsok. Ha igen Docker változat, ez lenne megmutatja a kliens verzióját, valamint A szerver változata. Ha ezt Docker info ez lesz mondani minden olyan információt, hány konténerek fut vagy létre, hogy hány kép van, és így tovább, és így tovább. Itt van, a mellette Utolsó doboz, van Doktor távon. Szóval így vagyok valójában létrehozása tartályba. És én adom echo Hello World és aludni egy második és miegymás. És láthatjuk a eredmény. Szóval ez folyamatban van. És hasonló a Linux ps, akkor láthatjuk, mindazok a folyamatok és, ebben az esetben, az összes futó konténerek. Ez az ember visszautalva A tartály Létrehoztam. Szóval, ez nagyon fontos, mert, mint, hogy lehet egy kicsit zavaró. Így a felvételek a read-only fájlgyűjtemény, ugye? Ezek mi konténer alapul. De ők csak read-only. Szóval elindul a kiinduló képet. Úgy látszik, hogy utánozzák OS-szerű, így Ubuntu, CentOS, miegymás kép felé. És akkor kezdjék építeni a tetején hogy bizonyos rétegek, melyek révén akár a végén a kép, a végeredmény itt. És ezek mindegyike rétegek kell egy szülő kép hogy az általa hivatkozott, amikor valóban akar létrehozni. Ezek megváltoztathatatlan, abban az értelemben, hogy azért, mert ők csak olvasható, akkor valójában nem módosíthatja őket. Akkor használja őket, hogy hozzon létre egy konténert egy kép, amely akkor hívja a későbbi kívánt képek alatta. Tudod, hogy változások egy másik réteg, ez egy rewrite réteg Megyek beszélni a második. De minden egyes ilyen rétegek soha nem változott. Alapvetően képek használ valami nevű Unió File System, UFS. És ott vannak a különböző tárolási backendek, hogy kihasználják ezt a technológiát. És mit jelent az, hogy összehozza különböző fájlrendszerek hogy azok néz ki, mint egy. Így tulajdonképpen, honnan egy alkalmazás szempontjából, van egy tetején egy véleményen van, hogy azt mutatja, a különböző fájlrendszer szükséges az adott alkalmazás futtatásához. De ők valójában, ezen, ők valóban elkülönített helyen és most is használják más tartály is. Szóval mint látható itt, hogy ha elkezdünk a démon képe mint a kiinduló képet, majd megyünk be és adjon hozzá [? emacs?] majd az egy másik réteget. Majd adja hozzá az Apache. Ez a másik réteg. És akkor töltjük a konténer ettől. Minden ilyen képek, minden egyes ilyen rétegek, megkülönböztethető és lehet használtatát más konténerek. Ha megnézzük a konténerek magukat, ők valahogy így VM-szerű, de nem kezelik időben. Szóval, nem kell, technikailag, a teljes operációs rendszer alattuk. Ezek használata az egyetlen kernel A gazda operációs rendszer. És építenek a tetején, hogy. Utánozzák, hogyan néznek ki. Utánozzák a root file rendszer az operációs rendszer. De valójában nem lemásolják. Szóval, ahelyett, megváltoztathatatlan rétegek, az utolsó réteg, amely a tartály maga, ez egy írható-olvasható réteg. Ez azt is fut a folyamatok az alkalmazás. És ez függ a mögöttes rétegek. Minden tartály létrehozott egy képet. És ez a kép lehet egy réteg vagy többrétegű képet. És azt szeretném megjegyezni, hogy Docker erősen használ, vagy azon alapul Copy-on-Write mechanizmus. Szóval, hogy valóban, ha nem hogy megváltoztatja a tartályt, ez nem megy, hogy extra helyet. Szóval ez alapvetően hogyan összefoglalja a Copy-on-Write. Ez lesz biztosan felgyorsítása a boot idő a tartályt. Mert ha nem így változások a konténer, ez hasznosító mi már ott van. Szóval, hogyan működik valójában. Része ez olyan, mint, most, hogy hasznosítja legalább két kulcsfontosságú kernel funkciók. És ez az, amit alapvetően létrehozta ezt a szintet az elszigeteltség a konténerek maguk. Ezek a sajátosságok névterek és cgroups. Tehát névterek egy módja annak hozzon létre elkülönített források, úgy, hogy a tartályon belül maga, csak láthatod bizonyos források. Mint például a hálózati interfész vagy bizonyos felhasználók, illetve miegymás. És ezek csak a látható és csak kérhető a konténerbe. Cgroup a másik oldalon határértékek hogyan használja ezeket a forrásokat. CPU, memória, és a lemez. Ha lehet menni, én : azok valójában funkciók, amelyek fejlesztettek by-- ők része a Linux kernel. Tehát ők nem feltalálták által vagy újra létrehozza Docker. Docker használja őket. Milyen Doktor tényleg Itt tulajdonképpen ez Orchestrated készítés névterek egyes tartály és megteremti a cgroups úgy, hogy ez az nevetségesen könnyű létrehozni konténerek használja ezeket a funkciókat. Természetesen, ahogy azt korábban leírtuk, Union Fájlrendszerek és Copy-on-Write igazán segít a sebesség és a lemez hasznosítása konténerek. És ha egyszer a keze körül Docker, fogsz látni, milyen gyorsan is kell valóban felpörög konténerek és könny őket. Szóval, ha lehet kérni, hogyan lehet Ön valóban építeni képeket? Építünk képek egy folyamat létrehozása konténerek és a változtatások, megváltoztatása őket, és kötelezzék el magukat a válás egy képet. Tehát ez egy csirke és tojás utalás itt, mert minden konténerek ne a képek és a képek életre re elkövetett konténerek, javarészt. Három lehetőség van képek létrehozása. Megyek leírni az első és az utolsó. Akkor vagy manuálisan menj és fuss a tartály és hogy ezek a változtatások, mint te tenne bármely VM vagy bármilyen operációs rendszer, például telepítése, új binárisok, hozzátéve, fájlrendszerek, és miegymás. És akkor jön ki, mint látod ott. Én kilépő én tartályba. És akkor csinálok Docker elkövetni. És én elkövető ezt. Láthatjuk, hogy a szám itt csak egy UUID, vagy az első 12 bit a UUID. Vagy bájt az UUID. És akkor hívom meg a képemet. Tehát most Docker gondoskodik felvétel mindent megcsináltam és megteremti az új A kép alapján ezt. Nem fogok beszélni a tar, de van rá mód, akkor kap egy egységes, hozzanak létre egy egységes, vagy hogy egy egységes réteg kép segítségével forráscsomagokból. Mit fogok erről beszélni és mi többnyire ma, van Dockerfile. Amely műszakilag az első lépésre automatizálja Docker magát. Tehát Dockerfiles olyan dolgok, hogy te fog látni a sok GitHub repó mai napon. Ez alapvetően csak egy szöveges fájl, amely leírja Pontosan hogyan kell felépíteni egy képet. És minden vonalon, ez megtörténne A tartály, végrehajtja ezt a vonalat, vállalja, hogy egy konténer új kép, és te, alapvetően, használnia minden későbbi műveletek amíg el nem éred az utolsó kép. Ami alapvetően a végső cél itt, a végén. És miután exec-- után írja meg Dockerfile, amely pusztán a szöveg, akkor csinál egy Docker építeni, és a kép nevét. És pont az, hogy ez ahol a Dockerfile van. És akkor számíthat, hogy látom a képet képként, hogy van helyben. Szóval ez csak egy vizuális Például, hogy mi történik. Elkezdesz egy alap képet. Futtatja, hogy egy edénybe, hogy nem változtatja meg a bázis képet magát. De ahelyett, hogy létrehoz egy átírni réteg a tetején Itt adhatja meg a változásokat, amelyben kötelezettséget, és ismételje meg a folyamatot, amíg eljut a végső képet. És ezzel minden más építmények folyamatot is használhatja ugyanazt a rétegek és a same-- alapvetően Docker gyorsítótáraz ezeken a rétegeken. Tehát, hogy ha csinálok pontosan ugyanolyan folyamatot, hanem a PHP telepítésének, Én telepítése Python. Ez lesz az Apache használata és az Ubuntu. Hogy így te kihasználva a lemezen. Ez kihasználva a gyorsítótár és a rendelkezésre álló képek vannak. Az utolsó darab Registry, amely hogy hogyan osztja el a képeket. És, ahogy korábban említettem, van egy felhő változata is, ami Docker Hub. Mehetsz, és fedezze fel egy csomó, alapvetően ez egy nyilvános SAS termék akkor is van saját képek, de van egy csomó állami képek. Ez valójában korlátlan, akkor nyomja korlátlan állami képek vannak. És ez hogyan tudsz együttműködni a csapat. Tudod csak pont őket rád repo és ők is letölthető, vagy a kép és ők is letölthető. Szóval elég a beszélgetés. Ki akarja látni néhány demót tényleg gyorsan? Minden rendben. Tehát itt van. Ca srácok látni a képernyőn? Minden rendben. Szóval van Docker fut itt, úgyhogy ellenőrizheti it's-- Ez a változat A Docker, hogy fut. Tehetünk Docker info. Ellenőrizze az összes információt, hogy hány képek vannak, és így tovább, és így tovább. Docker PS, nincs semmi fut. Összefűzve azokat. Tehát az első dolog, amit akarok, show- akkor hogyan lehet egyszerűen futtatni egy konténer. Tehát a szépség Doktor távon, ha valóban nem talál egy képet a helyben, alapértelmezésben beszél Doktor Hub és megpróbálja megtalálni, hogy ott és letölti az Ön számára. Szóval ez tartalmazza a Docker húzza parancsot, természetesen. Tehát ha én egy Docker távon, helló világ. Tehát, először ez lesz hogy próbálja megkeresni azt. Ellenkező esetben, ahogy itt is látszik, ez nem találta meg helyben. Most ez csak húzta két réteg tette, hogy a kép és futottam rá. A Hello-világ éppen alapvetően kimenetek, mit tettél. Szóval ez a legegyszerűbb, egy a legegyszerűbb példa. Szóval igazából csak futott és megszűnik a tartály gyorsan. Ha azt szeretnénk, hogy run-- és az úton, ha Azt akarom, hogy időt, hogy csak, hogy tudd, ez mennyi ideig tart, hogy valóban felpörög majd a helyzeten. Mi mérni is ezredmásodperc. Így láthatja, hogy mennyi ez valóban segít nem csak a tesztelés, hanem még kiépítését. Szóval ez egy gyors megjegyzés, hogy. A következő dolog, én vagyok fog tenni valójában futtatni egy képet, amit már elkészített. Tehát Docker távon. -d csak egy zászlót, hogy elmondjam hogy fut a háttérben. És -p rendel bizonyos portokat. Mivel alapértelmezés szerint a konténerek izolált, így van, hogy pontosan határozza hogyan lehet elérni őket. És ebben az esetben, én mondom Docker feltérképezni véletlenszerű port a fogadó egy megadott porton belül a tartály maga. És ez alapvetően, ahol a image-- Remélhetőleg ez a helyes. Szóval ez nem párhuzamos letöltések minden Az ezeken a rétegeken, mint látható itt. Ezek a rétegek téve A végén a kép, hogy én építettem. Ez lesz arra, hogy egy pillanatra. És íme. Tehát most, ha én egy dokkoló ps, én meg látni valamit, ami fut. Azt kell látni az azonosítót, a kép hogy ez volt alapja le, és a parancs végrehajtása. És hogyan lehet hozzáférni ez Alapvetően megy a port. Így fogok menni az alábbiakra: ezt A rohanok be AWS. Én megyek, hogy 32.769. Hoppá. És kész is van. Tehát ez valójában csak egy webes szolgáltatás, amely megmutatja, milyen konténer ez is felszolgálásra. Tehát látható, hogy -től konténer a9f. És itt ez a Nevét az edénybe. Szóval ti is látni, hogy milyen gyorsan az volt, hogy valójában nem csak húzza, hanem telepíteni ezt a tartályt. Most a következő lépés az, hogy nézzen Dockerfiles és hogyan tudunk valójában építeni az új képek. Én csak fog menni, hogy klón, a mintán Dockerfile alapuló korábbi rajz, az egyik, hogy az Apache és PHP. Remélhetőleg Emlékszem repo. Szóval ott van a tárolóból most. És te fogsz látni ez a sok valójában. Én nem telepítette fa. Tehát alapvetően fogsz látni, hogyan a forráskód dokumentáció körül azt, majd egy Dockerfile szóló hogyan kell ténylegesen csomagot is. Tehát ez csak egy példa a PHP hogy visszhangozza Hello CS50. Tehát ha azt szeretnénk futtatni, Megteszem dokkmunkás épít. Meg kell építeni először. Megyek nevezd meg demo_cs50. És szüksége van egy tag érdekét is. Így nevezzük V1 pont. Szóval, ahogy korábban leírtuk, mit csinálok ma A mondom Docker menni használatra hogy-- valóban, bocs, az én hibám. Nem vess egy pillantást A Dockerfile magát. Tehát az egyetlen dolog itt vannak index.php valamint a readme fájl és Dockerfile. Tehát, ha megnézzük A Dockerfile, így nagyon hasonló ahhoz, amit Én korábban leírt. Ez csak egy rakás lépéseket, hogy Docker végrehajtja létrehozásával és lebontása konténerek és [? számolja?] őket egy képet. És alapvetően akkor see-- [hallhatatlan] ez here-- de ez a helyi repo. Meg fog menni, és megragad index.php. Szóval ez az egyetlen forrást, valójában a kérelme részeként. Mindez alapvetően operációs rendszer vízvezeték, egyre jobb csomagokat és Apache és PHP, és miegymás. De ez valójában, index.php és kötelezi magát az edénybe, a képbe. Tehát, ha megy előre, és futtassa a parancsot az alábbiak végrehajtásával, ez going-- ténylegesen, ez eltarthat egy kicsit. Remélhetőleg nem tart túl sokáig. Így láthatja a lépéseket. És azt javasoljuk, hogy menjen haza ma, és próbáld ki. És Mano leírja pontosan hogyan csináltad. De ez tényleg jó látni, hogy pontosan mi történik a színfalak mögött. De ez nevetségesen könnyű építeni Képek és telepíteni őket a Docker. Ez eltart egy kicsit hosszabb, mint amire számítottam. Lássuk, mi történik, ha you-- kihűlni. Tehát mint látható, minden egyes ilyen lépések képviseli vonalak a Dockerfile. És ez azt mutatja, hogy itt is Sikeresen építette ezt a képet. Tehát, ha én dokkoló képek, megyek lásd az összes kép, hogy én helyben. És egyikük felhívta a felhasználónév és a kép nevét, és a címke representing-- elsősorban ez egy változata tag. Tehát most, ha szeretnék futtatni ez, én dokkmunkás távon. És én csak azt szeretném csinálni egy -d -P. Tegye V1. Így látom most, hogy van két konténerek fut, az egyik, hogy én csak létre, és a Hello Docker egyik, hogy kaptam utoljára. És itt láthatjuk, hogy rendelve, hogy egy másik kikötőbe. Tehát, ha megyek az azonos IP, de hozzárendelés egy másik port-- remélhetőleg nem tettem. Szóval most ez alkalmazás hogy én csak telepített. Ha azt akarom, hogy a változások, azt egyszerűen szerkesztheti a forráskód és tegye a következőket. Csináljuk Hello Harvard. Tehát most mi folyik történni, hogy én vagyok megy el címkével ellátott különböző version-- ó, Nem ez guy-- címkével egy másik verziója. És fogsz see-- srácok várnak hogy tegye meg az ugyanannyi idő építeni, hogy másodszor is, vagy nem? Rendben, és senki sem tudja, hogy miért? Beszélj. Közönség: [hallható] NICOLA Kabar: Ez alapvetően azt csak változtatni az egyik későbbi lépéseket. És ezért fog használni a gyorsítótár és használja minden egyes ilyen rétegeket. És ez valóban néhány gyilkos jellemzői Docker ez hogyan is hasznosítja és újrafelhasználás átvétele A lemez ugyanazon pontos információt. Tehát, ha nem ugyanaz a dolog, Beletelt pár másodpercig. Ha azt akarjuk, hogy redeploy-- így most Meg kellett volna három tartályban. De ez folyamatban van kézbesíteni the-- hét egyet. Tehát most már a harmadik tartályból. Mindenki érti amit most tettem itt? Tehát most, ha meg szeretné osztani ezt konténer tényleg gyorsan barátaival, tudod csak csinálni dokkmunkás nyomja a Nevét a tartály, remélhetőleg. Tehát most ez lesz, hogy álljon alábbiakra: Én nem írta alá itt. Sajnálom az esetet. De én nem megyek a hibaelhárítást most. De alapvetően, hogy az egyik parancs csak megy fel tolja. És fogsz tudni látom, ha elmész Docker Hub És akkor jelentkezzen be, te lesz képes látni. És akkor csak pont aki megy használni, hogy a képre, ha majd húzza. És tudja használni. Ezzel remélhetőleg Valahogy bizonyította hogy mennyire könnyű dolgozni Docker. És én csak fog add vissza Mano. És ő fog vigye innen. MANO JEL: Rendben köszönöm, köszönöm Nico. És akkor mi van? Tehát az egyik dolog, amit akartam csinálni kerül össze Ezért ez egy important-- Ezért Docker és miért konténerek egy ilyen Fontos új fejlesztés, Egy új módja a ténylegesen csinál szoftver. És mielőtt én, megyek Csak tegyünk néhány statisztikai adatot. Nem fogom olvasni az összes ilyen. De ez azt mutatja, hogy sokat, hogy népszerű ez a közösség. A mag Docker technológiák nyílt forráskódú. Szóval ez Docker Motor, írása, Swarm, egy csomó más dolgot minden nyílt forráskódú. És mi van, mit tettem azt mondják, 1300 közreműködők. Azért látja most, ha megnézi az számú állás, az utolsó alkalom, néztük, ez az arány körülbelül 43.000 munkahely nyílások említi ismerete Docker. Több száz millió a képek letöltötték Docker Hub. És, hát, sokkal nagyobb a statisztikák. Azok számára, akik kíváncsiak, hogy Eredetileg Python nyelven majd újraírt a Go. És még csak nyissa source-- ez csak már megjelent körülbelül 2 és 1/2 év, ami azt jelenti, hogy a 2 és 1/2 év, láttunk egy óriási összeg a növekedés és a fontosságát E a közösségben. És így szeretnék beszélni egy kicsit arról, hogy miért. Tehát csak megismételni néhány Nico kulcsfontosságú pontokat, Docker gyors. Ez a hordozható. Ez reprodukálható. És ez állítja be a szabványos környezetet. És what-- ez az én gagyi kiirtani monolitokat slide-- mi ez segíti az embereket csinálni, ami Sok a szoftver-ipar elkezdtem a 2000 elején, mozog Ezekből monolit egységes kérelmek ahol minden függőség kellett lennie tesztelni kell, mielőtt a teljes alkalmazás volt bevetni, amelyek jelenthet honlapján csak van telepített egyszer háromhavonta, vagy több, hogy egy sokkal szolgáltatás orientált architektúra vagy komponens különböző típusú Az alkalmazás architektúra. És így lehetővé téve ezeknek fajta architektúrák hogy kihasználják Docker futtatni a három fő fejlesztési területeket, amelyek A fejlesztési írásban a tényleges kódot, tesztelés a kódot, és telepítése is. Szóval ez miért fontos? Ha egy-- hadd mondjak egy példát. Ha Ön honlapján eszközt fejlesztő, te honlap kifejlesztése, ami alapján adatbázis, David termelt ide. Sajnáljuk Dávid, hívom ki. Ha akarta telepíteni az egész dolog, jobb lenne, ha meg kell várni alatt egy hagyományos monolit szoftverfejlesztés környezetben, akkor azt meg kell várni amíg ő végezte az adatbázisban Mielőtt ténylegesen tenni bármilyen változás a honlapon. Te volna átcsoportosítani a teljes alkalmazás erre. És mi Docker segít Önnek az egyes személy munkát a különböző komponensek és frissítse őket mennek, csak hogy arról, hogy az interfészek ugyanaz marad. Szóval mit tett A ez eltolódott az emberek csinál ezek a hatalmas monolit architektúráit szoftver telepített minden hónapban folyamatos integráció és folyamatos fejlesztése környezet. Most ez nem egyedülálló a Docker, de Docker teszi, így sokkal könnyebb, ami azt jelenti, te alapvetően Folyamatosan bevetni. Beszélgetünk a vállalkozások, amelyek telepítésével állami néző alkalmazások ezerszer egy nap, mert látják az értéket csak hogy kis változások, és mindaddig, mivel végigfut a vizsgálatokat, hagyta, hogy menjen ki a termelésbe. Nico mindig mondta nekem, korábban, hogy sokféle környezetben, A normál életciklus egy konténer mérjük másodpercekben, míg egy virtuális gép Lehet hónapokban. Azt akartam, hogy enyhe kapcsolja itt, mert én vagyok egy oktatási intézményben. Azt akartam, hogy egy példát, hogyan ez működik egy oktatási kutatási helyzet. Szóval van egy szervezet nevű bioboxes. Bioboxes nem DNS elemzés a kutatók számára. Most mit találtak az volt, hogy amikor egy researcher-- és ez nem a hiba az adott researcher-- de amikor Kutatóként telepített egy algoritmus, hogy elemezzék, Egy bizonyos módon, a DNS-minta ők levelet a szoftvert, közzé, hogy talán GitHub vagy valahol máshol, és akkor végeztünk. Nos, a probléma az volt, hogy Nem feltétlenül reprodukálható. Mivel annak érdekében, hogy megértsék a szoftver, lennének létrehozni pontos fejlesztői környezet hogy ez a kutató használt, rendszerint a laptop, vagy a szerveren, vagy egy adat középre, hogy az általuk használt. , És ennek következtében nagyon nehéz volt reprodukálni kutatási eredményeket DNS-vizsgálatot mintákat keresni a dolgokat, mint incidence-- összehasonlítani előfordulása a szívinfarktus alapján bizonyos gének jelenléte, Például, vagy a rák kockázatát, vagy bármely egyéb dolgokat. Szóval mit csináltak helyett volt kezdték létre konténerek. És akkor megy bioboxes.org, ez egy nagy szervezet. És mit csinálnak az általuk termelt konténerek eredmények alapján. És akkor, amikor valaki küld mintájában, akkor tudjuk futtatni. És ez az összes környezeti futtatásához szükséges, hogy algoritmus és termel az eredményeket. És ők állapította meg, hogy ők Sokkal valószínűbb és sokkal gyorsabban képes találatok, az emberek. És valóban, mit csinálnak az emberek futó saját elemzést DNS, küldő, hogy a bioboxes, és majd biobox csak úgy az adatokat, futtatja ellen különféle A különböző tartályok hogy a különböző eredmények alapján különböző kutatás. Tehát ez egy nagyon erős ahogyan a kutatók lehet, hogy egyetlen példánya, amely lehetővé teszi más emberek, hogy megpróbálják reprodukálni az eredmények. Szóval hogyan lehet elindulni? Mi jól fut Linux alatt. Tehát, ha szeretné telepíteni semmit Linux, használja a szabványos csomagkezelő telepíteni. Ha egy Debian, ez apt get. CentOS yum. Fedora a Red Hat rpm-- nem emlékszem. Különben is, ez mind ott van. Támogatjuk a sokféle Linux disztribúciók. Meg tudja nézni ezeket ki. Mi is van lehetőség, így lehet futtatni a Mac vagy Windows. Most Nico korábban említettük, hogy ez csak támogatott a Linux. Ez igaz, mert szüksége van egy Linux kernel. De, lehet futtatni egy virtuális gép. És mi a Docker Eszköztár nem, ami letölthető, ez ad, hogy a virtuális gép. Szóval csak egy gyors 48 második, azt hiszem, letölthető. Te csak keresni a Docker Eszköztár, töltse le a Mac, ez a rész a Természetesen felgyorsult, mert aki akar nézni egy letöltés jelet? Mac-telepítés, és akkor te fog látni Jerome dugta be a jelszót. Ez nagyon izgalmas. És akkor telepíti egész csomó eszközt. És különösen ez lesz telepíteni parancssorból. És akkor látni lehetett, Jerome próbára teszi a képeket. És aztán ez alapján, láthatjuk, hogy a YouTube úgy véli, hogy Nico érdekel Star Wars, a Jimmy Kimmel show, és azt hiszem, Ellen. Úgy gondolom, hogy utolsó egy A klip egy Ellen show. Tehát Docker Eszköztár ellenére jön A több, mint Docker Machine. Tehát Docker Machine A dolog, ami segít Ön létrehozott egy virtuális gép a Windows vagy Mac-- a Windows doboz, vagy a Mac box-- és segít Önnek céltartalék, De ez is jön Swarm, és állítsa össze, amelyek célja, hogy segítsen Önnek a nagy méretű telepítések az alkalmazás. Tehát, ha szeretné kezelni klaszterek csomópontok, klaszterek konténerek, szerkesztése, és Swarm az utat kell járni, hogy. És persze jön Docker Motor és Kitematic, ami az asztali grafikus. Meg kell még említenem Docker Registry, amely nem tartalmazza az Eszköztár, de ez egy módja, hogy futtassa a saját jegyzékek a Docker kép, mint Docker Hub, de akkor is csak használ Docker Hub, mert így kell csinálni. És, telek csavar, te látni ez fut egy tartályba. És így vagyunk forgalmazó diák. Ez az egész előadás valójában egy HTML dia fedélzeten. És ez már fut egy konténer, amely akkor kap by-- NICOLA kabar: Igen, így futó főállású én Max. És én mutatja be belőle. És te csak csináld Docker után telepíti a Toolbox. Akkor csak nem egy dokkmunkás távon és vedd el, és használja a diák. MANO JEL: És ennyi. Szóval köszönöm, hogy eljöttek. És örülünk, hogy válaszoljon a kérdésekre. Meg kell említenem, mielőtt bárki elhagyja van pólók ott. Sajnáljuk bárki, aki figyel ez a Livestream vagy videó, de Docker pólók ott. És tudjuk, Docker diákok, és az a tapasztalatom, professzorok is, mint a szabad ruhát. Szóval köszönöm mindenkinek jön ki. És kövess minket a Twitteren ha azt szeretnénk, vagy nem. Nem érdekel. Is követi Docker a Twitteren. Ez is érdekes. És akkor ez az. Docker.com. Köszönöm. [TAPS]