[Musiikkia] DAVID MALAN: Selvä. Kiitos niin paljon, että tulitte. Tämä on CS50 seminaari ikkunasta, tekniikka että me itse ja CS50 ovat alkaneet käyttää jonkin aikaa. Joten nimeni on David Malan, I opettaa Harvardin Johdanto Computer Science. Jo joitakin vuosia, olemme antaa opiskelijoille ladattava client-side virtuaalikoneita johon he tekevät ongelmia sarjaa. Että olemme nyt siirtyneet että pilvi ympäristö että tosiasiallisesti käyttää tätä tekniikkaa kutsutaan satamatyöläinen, siten, että kaikki CS50 opiskelijoilla on nyt heidän oma Docker kontit että voit pian kuulla kaiken. Lisäksi on CS50 palvelimelle puoli klusteri, vuosia käytimme Amazonin Cloud palvelimelle. Olimme käynnissä yksittäisten virtuaalikoneita. Sekin, olemme alkaneet siirtyä nämä asiat nimeltään Docker kontit niin että kaikki sovellukset ovat nyt täydellisesti eristetty toisistaan. Niin että useammat, saanen esitellä ystävämme, Nico ja Mano, alkaen Docker itse. NICOLA kabar: Kiitos, David. Hei kaikki. Nimeni on Nico ja tämä on Mano. Tulemme ikkunasta. Aiomme puhuvan about-- antaa te intro ikkunasta, ja toivottavasti, loppua kohti tämän puheen voit toteuttaa kuinka paljon voit käyttää lääkärin oksalaatti hakemuksesi kehittämiseen ja käyttöönotto. Joten, aiomme aloittaa todellinen nopeasti joitakin taustatietoja. Kuvaile, mitä satamatyöläinen on kyse. Kuinka se toimii? Miten se architected? Tulen tekemään joitakin demoja. Ja Mano tulee olemaan kuvataan, miten voit käyttää Docker ja antaa sinulle erityisiä toimia miten voit aloittaa. Olisin kiitollinen, jos te voi pitää pois kysymyksiin loppupuolella. Näin voisin käsiteltiin pelkästään kysymyksiä koko esityksen. Joten lähdemme jonkin aikaa loppupuolella kysymyksille. Joten todella nopeasti, joka on todella koskaan työskennellyt ikkunasta, kuten ollut sen kanssa? Mahtava. Viileä. Suuri. Joten, aion aloittaa jolla on oma historiansa. Joten takaisin 90-luvulla ja 2000-luvun alussa, pohjimmiltaan kuten web-kehittäjille, sovellus kehittäjät, kun he menivät käyttöön hakemus se oli sidottu paljaalle metallille. Se oli yksi palvelin. Se oli yksi hakemus. Perinteisesti esimerkki olisi kuin LAMP pino, jossa voit itse ollut esiin altaan resursseja. CPU, muisti, levy, verkko, asennus käyttöjärjestelmä päälle, että. Jos olet palvelevat jotain, jos olet todella ottaa web-palvelin, tarvitset jotain Apachen palvella sitä. Jos hakemus tarvitsee tietokanta, rysty, voisitte asentaa jotain kuten MySQL, ja niin edelleen. Ja jos tarvitset ajoaika, PHPs ja PHP Python työtä olivat siellä. Ja niin me itse ollut toteutettava nämä toimenpiteet, jotta saada hakemuksesi vauhtiin. Jos tarvitaan enemmän laskentatehoa, voit periaatteessa ollut soittaa Ops kaveri tai tyttö mennä ja kerätä uutta laitetta, liitä se, ja sinun on toistettava niille prosessit uudestaan ​​ja uudestaan. Joten tämä prosessi oli suhteellisen kalliita. Oli ehdottomasti erittäin hidasta. Se oli tehoton. Ja paljon tapauksia, sinun laitteisto oli vajaakäytössä. Joten 90-luvun lopulla ja 2000-luvun alussa, laitteisto virtualisointi törmäsin. Ja kuten voitte nähdä täällä kuva, periaatteessa mitä he tekivät on hajamielinen allas ilmaiseksi laitteiston resursseja ja sellainen toimi näiden ylempiin kerroksiin, tässä tapauksessa vieras käyttöjärjestelmä. Ja koko ajatus virtuaalikoneita törmäsin ja että todella auttoi Cloud computing kuin me sen tunnemme tänään. Niin mitä se tarkoitti on sinulle voi käyttää useita VM, joka tarkoitti useita pinoja, useita hakemuksen samassa fyysisessä koneessa. Tämä varmasti auttoi nopeus sovellusten käyttöönotto. Ehdottomasti kanssa kulut. Sinun ei tarvitse mennä ja viettää energiaa, aikaa ja resursseja teline enemmän palvelimia saada enemmän laskentatehoa. Ja nopeus todella tuo näitä resursseja ylös on paljon nopeampi. Suuri. Joten me ratkaista maailman nälkää, eikö? Ei, ei oikeastaan. Niin, virtualisointi niin paljon kuin se on todella auttoi, ongelman ratkaisemiseksi, se todella käyttöön paljon haasteita. Hypervisor varmasti käyttöön paljon monimutkaisuus, käsittely ne taustalla allas resursseja. Se on raskaampaa siinä mielessä, että ennen sinulla oli vain yksi käyttöjärjestelmä, joka on kuin kolme, neljä keikkaa levyllä. Nyt, jos sinulla on 10 konetta yhden laitteisto sinun täytyy kertoa, että useissa koneita. Se on varmasti enemmän kalliita mielessä silti täytyy saada lisensointi varten virtualisointitekniikka jos se ei ole avoimen lähdekoodin. Mutta älkäämme ottaa kaikki luottoa virtualisointi. Koska mitä tapahtui on olemassa paljon pinot ja paljon ohjelmistojen teknologiat, jotka käytössä kuinka nopeasti olet pystyivät saada resurssien kanssa Cloud puomi. Joten tänään yksi sovellus tai palvelu voi käyttää jotakin seuraavista runtimes tai tietokantoihin. PHP, Python, MySQL, Redis, vaikka mitä. Joten siellä on paljon monimutkaisuus tästä määrä pinot todella esiin yhden palvelun. Ja yhdessä, että sinulla oli paljon taustalla resursseja tai infrastruktuuria tyypit testata käyttöönotettava ja pohjimmiltaan toteuttaa tuotannon näiden hakemusten että olet kehittämässä. Varsinkin kun teidän joukkueet ovat kasva- nut työskentelevät näiden apps, siellä on paljon monimutkaisuus ja haasteet jotka on saatettu sen varmistamiseksi, että cycle-- pohjimmiltaan sovellus kehityksen sykli, on todella onnistunut. Niin, että hakemuksesi työskentelee paikallisesti paikallisessa VM ei takaa, että työtoverisi aikoo odottaa samat tulokset. Ja kun toiminnan joukkue on mukana ottaen mitä sinulla on ja käyttöönottaminen tuotannossa mittakaavassa, myös ei ole mitään takeita että on todella tapahtuu. Joten tämä jättää meille todella big-- paljon kysymysmerkkejä, paljon haasteita tosiasiallisesti kohtasi samalla takaisin päivinä. Ja että muistutti meitä merenkulkualan. Joten merenkulkualan oli paljon tavaroita, kuten näet vasemmalla puolella. Ja oikealla puolella, siellä on paljon, periaatteessa, tapoja lähettää näitä tavaroita. Ja mitä tapahtuu parina ihmiset kokoontuivat ja sanoi, meidän täytyy yhdenmukaistaa miten me oikeastaan ​​alus näiden tavaroiden. Ja puomi, olet intermodaalinen kuljetussäiliöön. Joten ne sopivat parhaiten yhteinen koot säiliön. Miten käsitellä niitä. Mitä tarkka menetelmä tarvitset ladata niitä ja purkaa niitä. Ja siksi, että todella auttoi merenkulkualan. Nyt yli 90% keskittyminen kuljetetaan maailmanlaajuisesti käyttävät niitä kontteja. Ja että varmasti pienenee kulut sekä aiheutuneita vahinkoja merenkulku. Joten otamme saman mallin ja me sovelletaan kaksi sovellus ohjelmistojen kehittäminen arkkitehtuuri, siinä mielessä että konttikuljetukset otti virtualisointi yhden tason. Joten sen sijaan tehdä, että klo laitteisto tasolla, se tuli enemmän toiminta- järjestelmätason virtualisointi. Ja teemme sen antamalla kukin sovellus omassa kevyt, eristetty, Ajettavissa, ja kannettava, mikä tärkeintä, tapa todella paketti kaiken, se täytyy suorittaa. Anywhere se voidaan suorittaa. Joten, riippumatta, jos käytät sitä paikallinen dev ympäristö, sinun tuotanto ympäristö, sinun lavastus tai testaus. Ei ole väliä mitä taustalla infrastruktuuri on olemassa, sinulla oli toiminnallinen työ app. Niin se on juuri sitä mitä pohjimmiltaan kontit tehdä tähän ongelmaan. Niissä käsitellään sitä pakkaaminen siten, että se voi taata, että se on käytössä onnistuneesti missä se asuu. Joten jos olet menossa kuten, Bob se on vielä OK. Jos olet sekoittaa mitä sanon, Aion olla laatimalla että. Joten miten Docker itse sovittaa tässä kuvassa? Joten satamatyöläinen on avoin alusta helposti, korostaa helposti, rakentaa laiva, juosta, Kevyt kannettava itse riittävä App kontit missä tahansa. Joten jos otat jotain tästä puhua, ota seuraava. Jos sinulla on sovellus toimimaan paikallisesti ja olet kehittänyt sitä käyttämällä ikkunasta alustan, odottaa sen onnistuminen edellyttää. Ei ole väliä mitä on olevaa infrastruktuuria. Joten jos sinulla on Docker kontti ja se toimii, niin niin kauan kuin on olemassa ikkunasta moottori toisaalta side-- jos toiminta infrastruktuurin käyttää mitä tahansa Cloud, onko se on AWS, tai Googlen, tai Microsoft, tai mikä tahansa julkisen Clouds, tai oma Cloud, tai avoin pino Pilvi, tai paikalliseen ympäristöön. Jos sinulla on moottori käynnissä, että välineet se tulee olemaan onnistuneesti käyttöön siellä. Se tulee olla käynnissä täsmälleen sama ongelma kun architected sen olevan. Joten jos katsomme at-- aion käydä läpi, mitä todellisuudessa ovat pääkomponentit ikkunasta. Joten Moottori on ytimessä ikkunasta. Se on aivojen. Se orchestrates rakennus, merenkulku, ja käyttöönoton ja hallinnan säiliöt itse. Minä kaivaa mitä moottori yksityiskohtaisemmin toinen. Pohjimmiltaan, koska lääkäri oli rakennettu noin client server-arkkitehtuurit, Joten jotta vuorovaikutuksessa Moottorin tarvitset jonkinlainen asiakkaan. Kuvat ovat malleja joka säiliöt on rakennettu. Joten kuvat ovat periaatteessa vain staattisia tiedostoja. Mallit ja kontit on oikeastaan ​​mitä käy runtime että palvelee hakemuksesi tai tekee jotain tietojen kanssa. Rekisterin on käsiteltävä ongelma miten voit itse jakaa kuvia. Joten jos haluat jakaa kuvan että olet työskennellyt kollegallenne tai ops joukkue, sinua käyttää sitä Rekisterieditorilla. Voit ladata avoimen lähdekoodin version että Docker työskenteli ja avoin hankitaan. Tai voit käyttää ikkunasta apua, joka on Cloud versio työntää ja vetää kuvia siellä. Se on valtava asia. Koska siellä on valtava ekosysteemi noin ikkunan ja se on todella raskaasti hyödyntäen napa. Joten tiivistää täällä, näin minimalistinen satamatyöläinen työnkulun asiakas. Voit vuorovaikutuksessa isäntä, vuonna Tässä tapauksessa se on Docker demoneja. Se on sama asia kuin Engine. Teet komennot kuten Docker rakentaa, vedä, ajaa. Ja Engine itse menee ja tekee niitä asioita. Joten joko se on vuorovaikutuksessa Rekisterin vetää ne kuvat ja kerrokset kuvien. Olipa jos haluat ottaa käyttöön, ajaa kontit, tappaa heidät, heittää ne alas, vaikka mitä. Joten tämä yhteenveto työnkulun Kaikkien näiden komponenttien. Joten jos otat joka komponentti yksinään. Joten Moottori, se on vain daemon. Se tulee eräänlainen pelata sitä tukea se Linux koska se edellyttää tiettyjä Linux-ytimen ominaisuudet. Mutta Windows toimii on tehdä sama asia. Se on tarkoitus tukea Windows Server 2016. Joten, jälleen, vastuualueet moottori on, tai on, rakentaa kuvia. Vedä kuvia Docker Keskitin tai oman rekisterin. Jos olet tehnyt nämä kuvat tai luot uusia kuvia, voit työntää ne takaisin rekisterin jakaa niitä muille ryhmille. Ja yrittää hillitä sitä paikallisesti ja hallita säiliöiden elinkaaren paikallisesti. Se on rakennettu HTTP REST API. Joten teknisesti voit kirjoita asiakas niin kauan kuin se käyttää HTTP, joka on erittäin standardi mekanismi puhua Engine ja paljon muita palveluita. Ja voit nähdä täällä, että riippumatta mitä infrastruktuurin on, kunhan can-- kaikki Tarvitset toiminta Linuxissa erityisesti. Ja voit asentaa Docker Moottori päälle, että ja ovat sen käynnissä ja se orchestrates, periaatteessa, kaikki nämä sovellus yksi, kaksi, ja kolme ovat todellisia kontteja. Niin, että moottori. Kuten aiemmin mainitsin, koska sinun täytyy vuorovaikutuksessa Engine, siellä asiakas. Mutta todellisuudessa kun asennat Docker, se aluksia sen kanssa. Joten se saa asentaa, joten se on yksi binary. Ja voit tehdä paikallispuhelut sinun Docker Engine. Tai kauko puhelut kauko Moottorit. Se ei HTTP, kuten Mainitsin aikaisemmin. Ei GUI asiakas nimeltään Kitematic alkaen Docker. Ja on varmasti paljon muita ihmisiä jotka rakentavat paljon Graafisia että pohjimmiltaan toteuttaa jotkut HTTP puhelut puhua Engine. Vain joitakin näyte komentoja. Jos et ikkunasta versio, se olisi näyttää client version sekä palvelimen versio. Jos teet satamatyöläinen info se tulee kertoa kaikki tiedot kuinka monta kontit ovat käynnissä tai luonut, kuinka monta kuvaa olet, ja niin edelleen ja niin edelleen. Tässä olen, on vieressä viime laatikko, minulla on tohtori aikavälillä. Niin, että miten olen itse luoda kontti. Ja minä annan sen echo Hello World ja nukkua toisen ja vaikka mitä. Ja voit nähdä tulos. Joten se on käynnissä. Ja samanlainen Linux ps, näet kaikki prosessit ja, tässä tapauksessa, kaikki käynnissä kontit. Tämä yksi on viitaten takaisin säiliö Olen juuri luonut. Niin, tämä on todella tärkeää, koska, kuten, se voi olla hieman sekava. Joten kuvat ovat vain luku- kokoelma tiedostoja, eikö? Ne ovat mitä säiliö perustuu. Mutta he vain lukea vain. Joten aloitat pois pohja kuva. Se on yleensä matkia OS kaltainen, niin Ubuntu, CentOS, vaikka mitä pohja kuva. Ja sitten alkaa rakentaa päälle että tietyt kerrokset, jotka muodostavat teidän lopussa kuvan, lopputulos täällä. Ja jokainen näistä kerroksista pitäisi olla vanhempi kuva että se viittaa, kun se todella haluaa luoda. Ne ovat muuttumaton, siinä mielessä että koska he vain luku, et voi oikeastaan tehdä niihin muutoksia. Voit käyttää niitä luomaan kontti kuva, joka soittaa kaikki myöhemmät Pakollinen kuvat alla. Voit tehdä muutoksia eri kerrokseen, se uudelleenkirjoitus kerros I will puhua toisessa. Mutta kukin näistä kerroksista ei koskaan muuttunut. Periaatteessa kuvia käyttää jotain kutsutaan unionin File System, UFS. Ja on olemassa erilaisia ​​varastointi taustajärjestelmille että hyödyntää tätä teknologiaa. Ja mitä se tarkoittaa, että se kokoaa yhteen eri tiedostojärjestelmien jotta ne näyttämään yhdeltä. Joten voit itse, alkaen Sovellus näkökulma, sinulla päälle kuvan, joka esittää kaikki eri tiedostojärjestelmä tarvitaan kyseisen sovelluksen toimimaan. Mutta he todella, tässä, he todella eri paikoissa ja hyödynnetään mukaan muiden säiliöiden samoin. Niin voitte nähdä täällä, että jos aloitamme daemon kuva tukikohtana kuva, ja sitten menemme ja lisää [? Emacs?] ja sitten se on toinen kerros. Ja lisää sitten Apache. Se on toinen kerros. Ja sitten vietämme säiliö että. Kukin näistä kuvia, jokainen näistä kerroksista, on erillinen ja voi olla käyttää uudelleen muista säiliöistä. Jos tarkastellaan kontit itse, he ovat jotenkin kuin VM-like, mutta ei ole käsitelty samaan aikaan. Niin, heillä ei ole teknisesti koko käyttöjärjestelmä niiden alle. He käyttävät yhden ytimen vastaanottavan käyttöjärjestelmä. Ja ne rakentaa sen päälle. He matkivat miten ne näyttävät. He matkivat heidän juurensa tiedosto järjestelmä käyttöjärjestelmän. Mutta ne todella ei kahdentamaan. Joten sen sijaan, että muuttumaton kerroksia, viimeinen kerros, joka on säiliön itse, se on luku-kirjoitus kerros. Tämä toimii myös prosessien hakemuksesi. Ja se riippuu taustalla kerroksia. Jokainen kontti on luotu kuva. Ja että kuva voi olla yksittäinen kerros tai monikerroksinen kuva. Ja haluan todeta täällä että satamatyöläinen raskaasti käyttää, tai perustuu Copy-On-kirjoitusmekanismin. Niin että, todella, jos et ole muutosten tekeminen säiliöön, se ei tule ottaa ylimääräistä tilaa. Niin, että on periaatteessa miten yhteenveto Copy-On-Kirjoita. Se tulee ehdottomasti nopeuttamaan käynnistyksen aika säiliön. Koska jos et ole tehdä muutokset säiliöön, se hyödyntää mitä jo siellä. Joten, miten se todella toimii. Osa se on kuin, juuri nyt, se käyttää vähintään kaksi keskeistä kernel ominaisuudet. Ja se on periaatteessa mitä luotu että taso eristäminen sillä konttien itse. Nämä ominaisuudet ovat nimiavaruudet ja cgroups. Joten nimiavaruudet ovat tapa luoda eristetty resurssit, siten, että säiliön sisällä itse, vain sinä voit nähdä tiettyjä resursseja. Kuten verkottumista käyttöliittymä tai tietyille käyttäjille tai vaikka mitä. Ja ne näkyvät vain ja ainoastaan pääsee säiliössä. Cgroup toisella puolella rajoja miten käyttää näitä resursseja. CPU, muisti, ja levyn. Kun voit mennä, I tarkoitetaan niitä ovat todella ominaisuuksia, jotka on kehitetty by-- he ovat osa Linux-ytimen. Joten niitä ei uusittu toimesta tai rekonstruoida mukaan ikkunasta. Docker käyttää niitä. Mitä lääkäri todellakin tässä on oikeastaan ​​se Orkestroitu luominen nimiavaruudet kunkin kontin ja luoda cgroups niin, että se on naurettavan helppo luoda kontteja käyttää näitä ominaisuuksia. Tietenkin, kuten kuvasin aiemmin, unionin Tiedostojärjestelmien ja Copy-On-ilmaiseksi todella auttaa nopeus ja levy hyödyntäminen kontteja. Ja kun saat kädet ympärillä Docker, olet menossa, kuinka nopeasti se on todella spin ylös kontteja ja repiä ne alas. Joten, jos saatat kysyä, miten voit itse rakentaa kuvaa? Rakennamme kuvat luomassa säiliöt ja tehdä muutoksia, muuttamalla niitä, ja sitouttaminen osaksi tulossa kuvan. Joten se on kana ja muna viittaus täällä, koska kaikki astiat joudu kuvista ja kuvat tulevat alkaen sitoutunut kontit, suurimmaksi osaksi. On olemassa kolme vaihtoehtoa luoda kuvia. Aion kuvata ensimmäisen ja viimeisen. Voit joko manuaalisesti mennä ja ajaa säiliön ja tehdä näitä muutoksia, kuten te tekisitte tahansa VM tai minkä tahansa käyttöjärjestelmän, kuten asentamalla uudet binäärit, lisäämällä tiedostojärjestelmien, ja vaikka mitä. Ja sitten lopetat, kuten voit nähdä siellä. Olen poistuminen minun säiliö. Ja sitten mulla Docker sitoutua. Ja olen sitoudutaan että. Voit nähdä, että numero täällä on vain UUID, tai ensimmäinen 12 bittiä UUID. Tai tavua UUID. Ja sitten minä soitan se minun kuva. Joten nyt satamatyöläinen huolehtii tallennus kaiken tein sen ja luoda uusia kuva perustuu tähän. En aio puhua tarrapallon, mutta olemassa tapa saat yhden, luoda yhden tai tehdä yhden kerros kuvan käyttämällä Tar-paketit. Mitä aion puhua tästä ja mitä enimmäkseen käytetään tänään, on Dockerfile. Joka on teknisesti ensimmäinen vaihe automatisoida Docker itse. Joten Dockerfiles ovat asioita, joita olet menossa nähdä paljon GitHub repo tänään. Se on pohjimmiltaan vain tekstitiedosto kuvaava miten rakentaa kuvan. Ja jokaiselle riville, se todella luo kontti, suorittaa, että linja, sitoutuu että säiliö uusi kuva, ja te, pohjimmiltaan, käyttää sitä kaikissa seuraavissa toiminnot kunnes saat viimeiseen kuvaan. Joka on pohjimmiltaan end tavoite täällä, pää. Ja kun exec-- jälkeen kirjoita Dockerfile, joka on puhtaasti teksti, et Docker rakentaa ja kuvan nimi. Ja osoitat, että on jossa Dockerfile on. Ja voit odottaa nähdä kuva kuvana että sinulla on paikallisesti. Niin se on vain visuaalinen esimerkki siitä, mitä tapahtuu. Aloitat pohja kuva. Olet joutunut että astiaan, joka ei muuta pohja kuvan itse. Vaan tekevät kirjoittaa kerros sen päälle jossa voit tehdä muutoksia, jossa sitoudut ja toistat kunnes saat lopullisen kuvan. Ja näin, joka toinen rakentaa prosessi voi käyttää samaa kerrokset ja same-- pohjimmiltaan Docker välimuistit nämä kerrokset. Niin että jos olen tekemässä täsmälleen sama prosessi, mutta sen sijaan asentaa PHP, Olen asentanut Python. Se tulee käyttää Apache ja Ubuntu. Niin näin olet hyödyntämällä levyn. Se hyödyntää välimuisti ja saatavilla kuvia siellä. Viimeinen pala on rekisteri, joka Näin voit jakaa kuvia. Ja, kuten aiemmin mainitsin, siellä Cloud version, joka on Docker Hub. Voit mennä ja tutkia paljon, pohjimmiltaan se on julkinen SAS tuote että voit silti olla yksityiset kuvat mutta siellä on paljon julkisen kuvia. Se on oikeastaan ​​rajaton, voit push rajoittamaton julkinen kuvia siellä. Ja näin voit yhteistyötä tiimisi. Voit vain kohta ne sinulle Repo ja he voivat ladata sen tai kuvasi ja he voivat ladata sen. Joten tarpeeksi puhua. Kuka haluaa nähdä demoja todella nopeasti? Selvä. Joten tässä olen. Ca te nähdä näytössä? Selvä. Olen siis ikkunasta käynnissä täällä, joten en voi tarkistaa it's-- Tämä on versio ja satamatyöläinen joka on käynnissä. Voi tehdä Docker info. Tarkista kaikki tiedot siitä, kuinka monta kuvia heillä on, ja niin edelleen ja niin edelleen. Docker PS, ei mitään käynnissä. Ketjutettujen ne. Joten ensimmäinen asia, jonka haluan tehdä, on näyttää miten voit helposti käyttää astiaan. Joten kauneus noin Lääkäri aikavälillä, jos se todella ei löydä kuvaa paikallisesti, oletuksena se puhuu tohtori Hub ja yrittää löytää se siellä ja lataa sen sinulle. Joten se sisältää Docker vedä komento, luonnollisesti. Joten jos en ikkunasta aikavälillä hei-maailma. Joten, ensimmäinen se on menossa yrittää etsiä sitä. Muuten, kuten voitte nähdä täällä, se ei löydä sitä paikallisesti. Juuri nyt se vain veti kaksi kerrosta joka teki, että kuvan ja juoksin sen. Hello-maailma on vain pohjimmiltaan tuotokset, mitä olet tehnyt. Joten tämä on helpoin, yksi helpoimmista esimerkeistä. Joten itse asiassa vain juoksin ja päättynyt säiliö todella nopeasti. Jos haluan run-- ja muuten, jos Haluan aikaa, että juuri niin tiedät, tämä on kuinka kauan se kestää todella spin ylös ja sisältävät sitä. Olemme sen mittaaminen millisekunneissa. Voit siis nähdä kuinka paljon tämä voi todella auttaa sinua ei vain testaus, mutta myös jopa käyttöönottoa. Niin, että nopeasti huomata, että. Seuraava asia olen aikoo tehdä on todella ajaa kuva Olen jo valmis. Niin docker aikavälillä. -D on vain lippu kertoa se ajaa taustalla. Ja -p määrittää tietyissä satamissa. Koska oletuksena, säiliöt eristetään, niin sinun täytyy määritellä tarkasti miten se voi käyttää niitä. Ja tässä tapauksessa, minä kerron Docker kartoittaa satunnainen porttiin isäntä tietylle satamaan itse säiliön. Ja se on periaatteessa missä image-- toivottavasti tämä on oikea. Joten se rinnakkain lataukset kukin Näiden kerrosten näet tästä. Ne ovat kerroksissa loppuun kuva, että olen rakentanut. Se tulee ottaa toisen. Ja voila. Joten nyt jos en satamatyöntekijänä ps, minun pitäisi nähdä jotain, joka on käynnissä. Haluan nähdä tunnus, kuvan että tämä se perustuu pois, ja komento teloitettiin. Ja miten saada se on pohjimmiltaan menet kyseiseen porttiin. Joten aion mennä to-- tämä on olen käynnissä sitä AWS. Aion mennä 32769. Oho. Ja tässä sitä mennään. Joten tämä on oikeastaan ​​vain verkkopalvelu, joka näyttää joka säiliö se on tarjolla klo. Voit siis nähdä, että se on säiliöstä a9f. Ja tässä tämä on nimi säiliön. Joten te voi nähdä, kuinka nopeasti se oli oikeastaan ​​paitsi vetää vaan myös käyttöön tämä pakkaus. Nyt seuraava askel on tutkia Dockerfiles ja miten voimme todella rakentaa uusia kuvia. Olen juuri menossa saada klooni, maistella Dockerfile perustui aikaisempaan kaavio, yksi Apache ja PHP. Toivottavasti Muistan Repo. Joten minulla on arkistoon juuri nyt. Ja te tulette näkemään tämä paljon todella. En ole asentanut puu. Joten periaatteessa olet menossa nähdä, miten lähdekoodi dokumentaatio ympäri se, ja sitten Dockerfile päälle miten itse paketoida sitä. Joten se on vain näyte PHP että kaikuu hei CS50. Joten jos haluan käyttää sitä, Teen docker rakentaa. Minun täytyy rakentaa se ensin. Aion name it demo_cs50. Ja tarvitset tag sitä. Joten kutsua sitä V1 piste. Joten kuten kuvasin aiemmin, mitä teen tänään on Kerron satamatyöläinen mennä käyttö that-- todella, sorry, my bad. Emme katsomaan on Dockerfile itse. Joten ainoa asiat täällä ovat index.php sekä readme tiedosto ja Dockerfile. Joten jos katsomaan Dockerfile, joten se on hyvin samanlainen kuin Kuvailin aikaisemmin. Se on vain joukko vaiheet, jotka Docker suorittaa luomalla ja revittiin alas kontit ja [? laskenta?] ne kuvaa. Ja periaatteessa voit see-- [äänetön] se here-- mutta tämä on paikallisesta repo. Se tulee mennä ja napata index.php. Niin se on ainoa lähdekoodi, joka ovat itse asiassa osa hakemuksesi. Kaikki tämä on pohjimmiltaan käyttöjärjestelmä LVI, oikeat paketit ja Apache, ja PHP, ja vaikka mitä. Mutta tämä on todella ottaen index.php ja sitouttaa se astiaan, kuvaan. Joten jos mennä eteenpäin ja ajaa komento tekemällä seuraavat, se on going-- todella, tämä saattaa kestää hieman. Toivottavasti se ei vie liian kauan. Niin näet vaiheet. Ja kehotan teitä mennä takaisin kotiin tänään ja kokeilla sitä. Ja Mano kuvataan miten tarkalleen teet sen. Mutta se on todella hienoa nähdä tarkalleen mitä tapahtuu kulissien takana. Mutta se on naurettavan helppo rakentaa kuvia ja käyttää niitä käyttämällä ikkunasta. Se vie vähän kauemmin kuin odotin. Katsotaan, mitä tapahtuu, kun sinä-- jäähtyä. Joten kuten näette, jokainen näistä vaiheet edustavat rivit Dockerfile. Ja se osoittaa tässä, että se onnistunut rakentamaan tämän kuvan. Joten jos en ikkunasta kuvia, aion Katso kaikki kuvat, jotka minulla on paikallisesti. Ja yksi niistä on nimeltään minun käyttäjätunnus, ja kuvan nimi, ja tag representing-- lähinnä se on versio tunniste. Joten nyt jos haluan ajaa se, en docker aikavälillä. Ja haluan vain tehdä -D -P. Do V1. Joten näen nyt, että minulla on kaksi kontit käynnissä, joka olen vain luotu ja hei Docker yksi että sain viime. Ja näet tästä, että se liitetään se toiseen porttiin. Joten jos menen sama IP mutta määrittää sen eri port-- toivottavasti en. Joten nyt tämä on sovellus että olen juuri käyttöön. Jos haluan tehdä muutoksia, I voi nopeasti muokata lähdekoodia ja toimi seuraavasti. Tehdään hei Harvard. Joten nyt, mitä tapahtuu tapahtua on, että olen menossa merkitä sitä eri version-- oh, ei tämä guy-- merkitä sen eri versiota. Ja olet menossa see-- do te odottaa se ottaa saman verran aikaa rakentaa sitä toisen kerran vai ei? Kunnossa, ja joku tietää miksi? Puhu ylös. Yleisö: [äänetön] NICOLA kabar: Se on pohjimmiltaan me vain muuttaa jonkin myöhemmissä vaiheissa. Ja siksi se tulee käyttää välimuisti ja käyttää kyseisiä kerroksia. Ja se on todella joitakin tappaja ominaisuuksia Docker on miten se todella hyödyntää ja uudelleenkäyttö haltuunotto levy samasta tarkka paloja tiedot. Joten jos me tehdä sama asia, se kesti vain pari sekuntia. Jos haluamme redeploy-- niin nyt Minun olisi pitänyt kolme konttia. Mutta tämä on on tarjoillaan the-- seitsemän yksi. Joten nyt on kolmas säiliö. Jokainen ymmärtää mitä tein täällä? Joten nyt jos haluat jakaa tämän kontti todella nopeasti ystäviesi kanssa, voit vain tehdä docker työntää nimi säiliön, toivottavasti. Joten nyt se tulee viedä sitä to-- En allekirjoittanut täällä. Anteeksi tuosta. Mutta en aio vianmääritys nyt. Mutta pohjimmiltaan, että yksi komento on vain menee ylös työnnä sitä. Ja olet menossa pystyä katso, jos menet ikkunasta Hub Ja kirjaudut sisään, olet menossa nähdä se. Ja sitten voit vain kohta kuka on menossa käyttää tätä kuvan mennä ja vedä se. Ja he voivat käyttää sitä. Kanssa, että toivottavasti Olen sellainen osoittanut miten helppoa on työskennellä ikkunasta. Ja olen juuri menossa antaa takaisin Mano. Ja hän on menossa jatkamme tästä. MANO merkit: Selvä kiitos, kiitos Nico. Mitä sitten? Niin yksi niistä asioista, halusi tehdä on koota miksi tämä on important-- miksi ikkunan ja miksi säiliöt ovat sellaiset merkittäviä uusia kehitys, uusi tapa todella tekee ohjelmisto. Ja ennen kuin teen, aion vain esitellä muutamia tilastot. En aio lukea kaikki nämä. Mutta tämä näyttää paljon siitä, miten suosittu tämä on yhteisön. Ydin Docker teknologiat ovat avoimen lähdekoodin. Niin, että ikkunasta Engine, säveltää, Parvi, joukko muita juttuja on kaikki avoimen lähdekoodin. Ja meillä on, mitä tein sanoa, 1300 avustajat. Näette nyt, jos tarkastellaan määrä avoimista työpaikoista, viimeisen kerran me katsoimme, se oli noin 43000 työpaikkaa aukot erityisesti mainita perehtyneisyys Docker. Sadat miljoonat kuvat ovat on ladattu Docker Hub. Ja, no, paljon enemmän suuria tilastot. Niille, jotka ovat uteliaita, se alun perin kirjoitettu Pythonilla ja sitten kirjoittaa uudelleen Go. Ja se on vain ollut avaa source-- se on vain luovutettu noin 2 ja puoli vuotta, mikä tarkoittaa, että 2 ja puoli vuotta, olemme nähneet valtavan määrän Kasvun ja merkitys Tämän yhteisössä. Ja niin haluan puhua hieman siitä, miksi. Joten vain toistaa joitakin Nicon avainkohdat, satamatyöläinen on nopea. Se on kannettava. Se on toistettavissa. Ja se asettaa standardin ympäristö. Ja what-- tämä on minun kehno kitkemiseksi monoliitit slide-- mitä se auttaa ihmisiä tekemään, joka paljon ohjelmistoalan alkoi tehdä vuonna 2000-luvun alussa, on siirtymässä Näiden monoliitti yksittäinen sovellukset jossa jokainen riippuvuus piti olla testattu ennen koko sovellus oli voidaan ottaa käyttöön, mikä voisi tarkoittaa verkkosivusto sai vain käyttöön kerran kolmen kuukauden välein, tai enemmän, huomattavasti enemmän palvelu arkkitehtuurin tai componentized erityyppisiä hakemuksen arkkitehtuuri. Ja niin, että kyseisillä Tällainen arkkitehtuurit jotka hyödyntävät Docker juosta näissä kolmessa pääasiallinen kehityksen, joka on kehitys kirjoittanut itse koodi, testaus koodia, ja käyttöön se. Miksi tämä on tärkeää? Jos olet a-- haluaisin antaa esimerkin. Jos olet sivusto laite kehittäjä, olet kehittää verkkosivusto, joka on perustuu tietokanta että David tuotettu tänne. Anteeksi David, soitan sinulle ulos. Jos halusi ottaa käyttöön koko juttu, olisit on odotettava alle perinteinen monoliitti ohjelmistokehitys ympäristö, sinun on odotettava kunnes hän tehtiin tietokannan ennen kuin voit itse tehdä muutoksia sivustoosi. Sinun täytyy siirtää Koko sovellus tehdä niin. Ja mitä satamatyöläinen auttaa tekemään on kukin henkilö työtä eri osien ja päivittää niitä, koska ne menevät, vain tehdä Varmista, että liitännät pysyvät samana. Joten mitä se on tehnyt on se siirretään ihmisiä tekemästä näistä massiivinen monoliitti architected ohjelmisto, käyttöön kuukausittain jatkuva integraatio ja jatkuva kehittäminen ympäristö. Nyt tämä ei ole ainutlaatuinen ikkunasta, mutta satamatyöläinen tekee niin paljon helpompaa, mikä tarkoittaa olet pohjimmiltaan jatkuvasti käyttöön. Puhumme yrityksille, jotka ovat käyttöön julkinen päin sovellukset tuhansia kertoja päivässä, koska he näkevät arvo vain tehdä pieniä muutoksia, ja niin kauan koska se kulkee testit, antaa sen mennä ulos tuotantoon. Nico on aina kertoo minulle aiemmin, että monissa ympäristöissä, standardin elinkaaren säiliö mitataan sekunneissa, kun taas virtuaalikone voidaan kuukausina mitattuna. Halusin ottaa hieman käännä täällä, koska olen oppilaitoksessa. Halusin antaa esimerkin siitä, miten tämä toimii koulutuksen tutkimuksen tilanne. Joten ei organisaatio nimeltään bioboxes. Bioboxes tekee DNA analyysi tutkijoille. Nyt mitä he löysivät oli, että kun researcher-- ja tämä ei ole vika mitään erityisiä researcher-- mutta kun tutkija käyttöön algoritmi analysoida, Tietyllä tavalla, DNA-näyte, ne kirjoittaa ohjelmisto, julkaista, että ehkä GitHub tai jossain muualla, ja sitten ne tehtiin. No ongelma oli, että se ei välttämättä toistettavissa. Koska voidakseen ymmärtää ohjelmisto, he olisivat perustettu tarkka kehitysympäristö että tutkija käytetty, yleensä kannettavan tietokoneen tai palvelimen, tai tiedot keskustaan ​​että he käyttivät. Ja näin ollen se oli hyvin vaikea jäljentää tutkimustuloksia kun analysoimalla DNA-näytteitä näyttää asioita kuten incidence-- verrata esiintyvyys sydänkohtauksia perustuu tiettyjen geenien läsnäoloa, esimerkiksi, tai syövän riski, tai jollekin muulle juttuja. Joten mitä he tekivät sen sijaan oli he aloittivat kontteja. Ja voit mennä bioboxes.org, se on suuri organisaatio. Ja mitä he tekevät on ne tuottavat kontit perustuu tutkimukseen. Ja sitten kun joku lähettää niiden näytteessä, he voivat käyttää sitä. Ja se on kaikki ympäristö joita tarvitaan, että algoritmi ja tuottaa tuloksia. Ja he todennut, että ne ovat paljon todennäköisemmin ja paljon nopeammin pystyy palauttaa tulokset ihmisille. Ja itse asiassa, mitä ihmiset tekevät ovat käynnissä oman analyysinsä DNA, lähettämistä että sisään bioboxes, ja sitten biobox vie vain tiedot, kulkee se vastaan ​​lajike Eri säiliöiden nähdä erilaisia ​​tuloksia perustuvat eri tutkimukseen. Joten se on erittäin voimakas tapa, jolla tutkijat voi tehdä vain kertaalleen, jonka avulla muut ihmiset yrittää toistaa tulokset. Joten miten päästä alkuun? Olemme hyvin tuettu Linuxissa. Joten jos haluat asentaa mitään Linux, käytät standardi paketinhallinnan asentaa. Jos käytät Debianin, se on apt get. CentOS on yum. Fedora Red Hat on rpm-- En muista. Joka tapauksessa, se on kaikki siellä. Tuemme monenlaisia Linux-jakeluissa. Voit tarkistaa ne pois. Meillä on myös vaihtoehtoja, jotta voit voisi ajaa Macissa tai Windowsissa. Nyt Nico aiemmin mainittiin, että se oli vain tuettu Linuxissa. Se on totta, koska se tarvitsee Linux-ytimen. Mutta voit ajaa virtuaalikoneessa. Ja mitä Docker Toolbox ei, jonka voit ladata, se antaa sinulle, että virtuaalikone. Joten vain nopea 48 Toinen mielestäni ladata. Sinä vain etsiä Docker Työkalupakki, ladata sen Mac, ja tämä osa on Tietenkin nopeuttanut sillä kuka haluaa katsoa ladata signaali? Standardi Mac asennus, ja sitten olet menossa katsomaan Jerome laittaa hänen salasanan. Se on erittäin jännittävä. Ja sitten se asentaa koko joukko työkaluja. Ja erityisesti se tulee asentaa komentoriviltä. Ja sitten voisi nähdä Jerome testaus hänen kuvia. Ja sitten on tämä, voit nähdä, että YouTube- mielestä Nico on kiinnostunut Star Wars, Jimmy Kimmel show, ja mielestäni Ellen. Mielestäni viimeisin on leikkeen Ellen Show. Joten satamatyöläinen Toolbox vaikka tulee enemmän kuin vain Docker Machine. Joten satamatyöläinen Machine on asia, joka auttaa asetat virtuaalisen kone Windows tai Mac-- Windows laatikko tai Mac box-- ja auttaa tekemään varauksia, Mutta se myös tulee Parvi ja säveltää, jotka on suunniteltu auttamaan sinua tekemään suuria asteikko käyttöönottoja hakemuksesi. Joten jos haluat hallita klustereita solmuja, klustereita konttien, säveltää ja Parvi ovat tapa edetä, että. Ja tietenkin se tulee Docker Moottori ja Kitematic, joka on tämän työpöydän GUI. Haluan mainita myös ikkunasta rekisterin, joka ei sisälly Toolbox mutta se on tapa, jolla voit suorittaa oman rekistereistä satamatyöläinen Images kuten Docker Hub, mutta voit myös vain käyttää Docker Hub kuin tapa tehdä se. Ja juoni kierre, näette sen käynnissä astiaan. Ja näin olemme jakelevat dioja. Tämä koko esitys on todella HTML liukumäki kannella. Ja se on käynnissä kontti, jonka saat by-- NICOLA kabar: Kyllä, niin se on käynnissä koko ajan minun Max. Ja olen esittää siitä. Ja et vain Docker jälkeen asennat Toolbox. Voit vain tehdä satamatyöntekijänä ajaa ja saada se, ja käyttää dioja. MANO merkit: Ja se on siinä. Joten me kiitämme teitä kaikkia tulossa. Ja olemme iloisia voidessamme vastata kysymyksiin. Haluan mainita ennen kukaan lehdet on T-paitoja tuolla. Anteeksi ketään kuka vartioi tämä Livestream tai videon, mutta meillä on satamatyöläinen T-paitoja tuolla. Ja me tiedämme ikkunasta opiskelijoita, ja kokemukseni, professorit liian, kuten ilmainen vaatteet. Joten kiitos kaikille kun tulitte ulos. Ja seuraa meitä Twitterissä jos haluat, tai eivät. En välitä. Myös seurata satamatyöläinen Twitterissä. Se on myös mielenkiintoinen. Ja sitten se on siinä. Docker.com. Kiitos. [SUOSIONOSOITUKSET]