>> [Muzika]
DAVID Malan: Të gjithë të drejtë.
Thank you so much për të ardhur.
Kjo është CS50 seminar mbi Docker, a teknologji që ne vetë dhe CS50
kanë filluar të përdorin për një kohë tani.
Pra, emri im është David Malan, unë mësojnë Hyrje i Harvardit
të Shkencave Kompjuterike.
Për mjaft disa vite, ne kemi qenë duke i dhënë nxënësve
shkarkohen klient-side makina virtuale
në të cilën ata bëjnë problemeve grupe e tyre.
Që kemi bartur tani në një mjedis Cloud
që në fakt përdor këtë teknologji quajtur Docker, të tilla që të gjithë CS50
Studentët tani kanë tyre kontejnerët vet Docker
që ju së shpejti do të dëgjoni të gjithë rreth.
>> Për më tepër, në serverin CS50 e grup anë, për shumë vite
ne kemi qenë duke përdorur Cloud serverin Amazon.
Ne ishim duke individ makina virtuale.
Kjo shumë, ne kemi filluar të kalojnë në këto gjëra quajtur kontenierë Docker
në mënyrë që të gjitha kërkesave tona janë tani izoluar perfekte nga njëra-tjetra.
Kështu që për këtë dhe më shumë, më lejoni të prezantoj miqtë tanë, Nico dhe Mano,
nga vetë Docker.
Nicola Kabar: Faleminderit, David.
Përshëndetje të gjithëve.
Emri im është Nico dhe kjo është Mano.
Ne jemi nga Docker.
Ne jemi duke shkuar për të folur? Për duke ju djema një intro për Docker,
dhe me shpresë, drejt përfundimit i kësaj bisede ju mund të realizojnë
se sa ju mund të përdorni mjeku për oxalate zhvillimin e aplikimit tuaj
dhe vendosjen.
>> Pra, ne jemi duke shkuar për të nisem reale shpejtë me disa informata.
Përshkruani se çfarë Docker është mbi të gjitha.
Si punon?
Si është ajo architected?
Unë do të jetë duke bërë disa popull.
Dhe Mano do të jetë përshkruan se si mund të përdorni Docker
dhe duke ju dhënë hapat specifike si ju mund të merrni filluar.
>> Unë do të vlerësoj nëse ju djema mund të mbajë off për pyetjet tuaja nga fundi.
Në këtë mënyrë, unë mund të adresuar ato pyetje të gjithë prezantimit.
Pra, ne do të lënë disa kohë në fund për pyetje.
>> Pra, vetëm i vërtetë i shpejtë, i cili ka në fakt ka punuar ndonjëherë në Docker,
si ka luajtur me të?
Mbresëlënës.
Ftohtë.
I madh.
Pra, unë jam duke shkuar për të filluar me disa histori.
Pra, përsëri në vitet '90 dhe fillim të viteve 2000, në thelb
si web developers, zhvilluesit app, kur ata shkuan për të vendosur një kërkesë
ajo ishte e lidhur për të zhveshur metalike.
Ajo ishte një server.
Ajo ishte një aplikim.
>> Tradicionalisht, një shembull do të jetë si një pirg LAMP,
ku ju në të vërtetë kishte për sjellë deri pishinë të burimeve.
CPU, memorie, disk, rrjeti, instalimi Sistemi operativ në krye të kësaj.
Nëse ju jeni duke shërbyer diçka, në qoftë se ju jeni në të vërtetë duke pasur web server,
ju keni nevojë për diçka si Apache për të shërbyer atë.
>> Nëse kërkesa juaj ka nevojë bazës së të dhënave, i pabesë,
ju do të instaloni diçka si MySQL, dhe kështu me radhë.
Dhe në qoftë se keni nevojë për kohë Run, PHPs dhe puna e PHP Python ishin atje.
Dhe kështu ne fakt duhej të marrë këto hapa në mënyrë
për të marrë e aplikimit tuaj dhe drejtimin.
>> Nëse keni nevojë për më shumë pushtet llogaritin, ju në thelb kishte për të thirrur Ops djalë tuaj
ose gal për të shkuar dhe raft deri një të ri pjesë e pajisjeve, lidhë atë,
dhe ju keni për të përsëritur ato Proceset përsëri dhe përsëri.
Pra, ky proces ishte relativisht të shtrenjta.
Ishte patjetër shumë të ngadaltë.
>> Ajo ishte joefikas.
Dhe në shumë raste, juaj hardware u underutilized.
Pra, në fund të viteve '90 'dhe fillim të viteve 2000, Virtualization hardware erdhën të gjithë.
Dhe si ju mund të shihni këtu në foto, në thelb atë që ata vepruan
është i përhumbur pishinë e burime të lirë hardware
dhe lloji i shërbyer atyre në shtresat e sipërme,
në këtë rast, një mysafir sistemit operativ.
>> Dhe e gjithë ideja e makina virtuale erdhën të gjithë
dhe që ndihmuan me të vërtetë Cloud informatikë siç e njohim ne sot.
Pra, çfarë do të thotë kjo është që ju mund të kandidojë shumta VMS, i cili
do të thotë paratë të shumta, të shumta Aplikimi në një makinë të njëjtë fizike.
>> Kjo i ndihmoi padyshim me Shpejtësia e vendosjes aplikimit.
Definitely me shpenzimet.
Ju nuk keni për të shkuar dhe të shpenzojnë energjisë, kohë dhe burime për të raft
më shumë servera për të marrë në më shumë të llogaritin.
Dhe shpejtësia e vërtetë të sjellë këto burime up është shumë më shpejt.
I madh.
>> Pra, ne zgjidhur urisë në botë, e drejtë?
Jo, jo të vërtetë.
Pra, Virtualization sa më shumë që është e ndihmoi në fakt, të trajtuar problemin,
ai në fakt futi shumë sfida.
Hypervisor definitivisht prezantuar një shumë prej kompleksitetit,
trajtimin ato themelor pishinë të burimeve.
>> Është e rëndë në kuptimin që para keni pasur një sistem të vetëm operativ që
është si tre, katër koncerte në disk.
Tani, në qoftë se ju keni 10 makina në një hardware të vetme
ju duhet të shumohen atë me numrin e makina.
Është patjetër më shumë shtrenjtë në një kuptim ju ende
duhet të merrni licencimit për teknologji Virtualization
nëse nuk është burim i hapur.
>> Por, le të mos marrin të gjitha kredi nga Virtualization.
Sepse ajo që ka ndodhur është se ka një shumë e oxhaqet dhe shumë të softuerit
teknologjitë që janë të aktivizuara nga sa shpejt ju jeni në gjendje për të marrë
të burimeve me bum Cloud.
>> Pra, sot një aplikacion të vetëm ose shërbim mund të të jetë duke përdorur ndonjë nga runtimes vijim
ose bazat e të dhënave.
PHP, Python, MySQL, Redis, gjësend.
Pra, ka një shumë e kompleksitetit për këtë Numri i oxhaqet që në fakt të sjellë deri
një shërbim i vetëm.
Dhe së bashku me atë, keni pasur një shumë të Burimet themelore ose infrastruktura
Lloje të provuar të vendosur dhe në thelb marrë me prodhimin ato aplikacione
se ju jeni në zhvillim.
>> Sidomos si ekipet tuaja kanë kultivuara duke punuar në ato Apps,
ka një shumë të Kompleksiteti dhe sfidat
që u sollën për të siguruar që cycle-- thelb aplikimi
Cikli i zhvillimit, është fakt i suksesshëm.
Pra, fakti që kërkesa juaj është duke punuar në nivel lokal në VM tuaj lokale
nuk garanton se kolegut tuaj do të presim rezultate të njëjta.
>> Dhe kur ekipi operacionet është të përfshirë në marrjen e atë që ju keni
dhe vendosjen atë në prodhimin e shkallë, gjithashtu nuk ka asnjë garanci
se kjo është në të vërtetë do të ndodhë.
Pra, kjo na lë me një të vërtetë big-- shumë pikëpyetjeve,
shumë sfida në fakt u përball në mënyrë të ngjashme përsëri në ditët.
Dhe kjo na kujtoi industria e transportit detar.
>> Pra, industrinë e anijeve kishte një shumë të mallrave,
si ju mund të shihni në anën e majtë.
Dhe në anën e djathtë, nuk është një shumë e, në thelb,
mënyra për të transportuar këto mallra.
Dhe çfarë ndodh si një çift folks u mblodhën dhe i tha:
ne kemi nevojë për të standardizuar si ne fakt anije ato mallra.
Dhe bum, ju keni enë intermodal anijeve.
>> Kështu ata ranë dakord në më Madhësive të përbashkëta për enë.
Si për të trajtuar ato.
Çfarë metodë e saktë ju duhet për të ngarkesës së tyre dhe zbraz ato.
Dhe për këtë arsye, që me të vërtetë ndihmuar industrinë e anijeve.
Tani më shumë se 90% fokus transportohen globalisht janë duke përdorur këto kontejnerë.
Dhe që patjetër zvogëlon shpenzimet, si dhe
dëmet për shkak të anijeve.
>> Pra, ne marrim të njëjtin model dhe ne aplikojnë dy app zhvillimit të softuerit
Arkitektura, në kuptimin që Containerization
mori Virtualization deri një nivel.
Pra, në vend që të bëjnë këtë në nivelin e pajisjeve,
ajo u bë më shumë një operative nivel sistemi Virtualization.
>> Dhe ne bëjmë këtë duke ofruar çdo Aplikimi në lehtë e vet,
izoluar, runnable, dhe portativ, më e rëndësishmja,
një mënyrë për të vërtetë paketë çdo gjë që ajo ka nevojë për të kandiduar.
Kudo ajo mund të kandidojë.
Pra, pa marrë parasysh nëse ju jeni drejtimin e tij në mjedis dev lokal, prodhimi juaj
mjedisi, në skenë tuaj ose testimit.
Pa marrë parasysh se çfarë themelor infrastruktura është atje,
keni pasur një app funksionale pune.
>> Pra, kjo është pikërisht në thelb ajo që kontejnerët bëjmë për këtë problem.
Ata e trajtojnë atë me paketimit atë në mënyrë të tillë
që ajo mund të garantojë se ajo është vendosur sukses ska rëndësi se ku ai jeton.
Pra, nëse ju jeni duke shkuar si, Bob është ende në rregull.
Nëse jeni të hutuar me atë që unë jam duke thënë: Unë jam duke shkuar për të elaboruar në atë.
>> Pra, si e bën vetë Docker përshtaten në këtë foto?
Pra Docker është një platformë e hapur të lehtë, të theksuar lehtë,
për të ndërtuar anije, të drejtuar, vetë lehtë portative
kontejnerët mjaftueshme app kudo.
Pra, nëse ju merrni diçka nga kjo flasim, ju lutem merrni në vijim.
>> Nëse keni app tuaj running në nivel lokal dhe të zhvilluar atë
në përdorimin e platformës Docker, presin ajo që do të vendoset me sukses.
Pa marrë parasysh se çfarë është infrastrukturë themelor.
Pra, nëse ju keni një Docker enë dhe se është duke punuar, atëherë
për aq kohë sa nuk ka një Docker motor në side-- tjetër
nëse infrastrukturën tuaj operacion është duke përdorur ndonjë Cloud, nëse ajo
është AWS, apo Google apo Microsoft, apo ndonjë nga Clouds publike,
ose vet Cloud tuaj, ose rafte tuaj të hapur Re, ose mjedisin tuaj lokal.
>> Nëse ju keni një motor drejtimin, që do të thotë
ajo do të jetë vendosur me sukses atje.
Ajo do të konkurrojnë saktësisht njëjtë sjellja
si ju architected që ajo të jetë.
Pra, nëse ne shikojmë at-- unë jam duke shkuar të kalojnë nëpër atë që në fakt
janë në komponentët kryesorë të Docker.
>> Pra Engine është në thelbin e Docker.
Ajo është truri-së.
Ajo orkestron ndërtimit, anijeve, dhe vendosjen dhe menaxhimin e
vetë kontejnerët.
Unë do të gërmoj në atë që bën Engine në më shumë detaje në një të dytë.
Në thelb, sepse Doktor ishte ndërtuar rreth arkitektura klient server,
kështu që në mënyrë për të bashkëvepruar me Engine ju keni nevojë për një lloj të një klienti.
>> Imazhet janë templates në të cilat kontejnerët janë ndërtuar nga.
Pra, imazhet janë në thelb Fotografi vetëm statike.
Templates dhe kontejnerë është në fakt çfarë është
po kandidon në kohën e duhur që po shërben aplikimin tuaj
apo duke bërë diçka me të dhënat.
>> Regjistri trajtohet si një problem i si ju në fakt shpërndani imazhe.
Pra, nëse keni nevojë për të ndarë një imazh që keni punuar në për kolegun tuaj
ose për ekipin ops, ju e përdorin atë duke përdorur Regjistrit.
Ju mund të shkarkoni një burim të hapur version i saj që Docker punuar në
dhe të hapur burim.
>> Ose ju mund të përdorni ndihmë Docker, që është version Cloud
për të nxitur dhe tërhequr imazhe atje.
Kjo është një gjë e madhe.
Sepse ka një të madhe ekosistemit përreth Docker dhe kjo është
të vërtetë të rëndë shfrytëzuar qendër.
>> Pra, për të përmbledhur këtu, kjo është se si minimalist Docker punës klient.
Ju të ndërveprojnë me të presë, në ky rast është edhe demonët Docker.
Kjo është e njëjta gjë si Engine.
Ju bëni komandat si Docker ndërtuar, tërheq, drejtuar.
Dhe Engine vetë shkon dhe bën ato gjëra.
>> Pra, ose ajo ndërvepron me Regjistrit për të tërhequr ato imazhe
dhe shtresat e imazheve.
Nëse qoftë se ju doni për të vendosur, të drejtuar kontejnerët, vrasin ata, ata hedhin poshtë,
gjësend.
Pra, kjo përmbledh punës të gjitha këto komponente.
>> Pra, nëse ju merrni çdo komponent në vetvete.
Pra Engine, kjo është vetëm një daemon.
Ajo do lloj i të luajtur atë për të mbështetur ajo në Linux për shkak se ajo ka
kërkojnë të caktuara Linux kernel tipare.
Por Windows është duke punuar për të bërë të njëjtën gjë.
Është menduar që të mbështeten nga Windows Server 2016.
>> Pra, përsëri, përgjegjësitë me motor është që, ose janë të, të ndërtuar imazhe.
Tërhiqe imazhe nga Docker Hub ose vetë regjistrit tuaj.
Në qoftë se ju jeni bërë me këto imazhe ose keni krijuar një pamje të reja,
ju mund të shtyjë ata përsëri për të regjistrit për shpërndarjen e tyre në ekipet e tjera.
>> Dhe duke u përpjekur për të kontrolluar atë në nivel lokal dhe menaxhuar ciklin e jetës kontejnerët
në nivel lokal.
Ajo është ndërtuar rreth HTTP REST API.
Pra, teknikisht ju mund të shkruani klientin tuaj
për aq kohë sa ajo përdor HTTP, e cila është një shumë mekanizëm standarde për të biseduar me Engine
dhe shumë shërbime të tjera.
Dhe ju mund të shihni nga këtu se pavarësisht
e asaj infrastrukturës është, për aq kohë sa ju can-- gjithë
ju duhet është një operativ sistem, Linux në mënyrë specifike.
>> Dhe ju mund të instaloni Docker Engine në krye të se e kanë atë të rrjedhshëm
dhe orkestron, në thelb, të gjitha këto app një, dy,
dhe tre janë kontenierë aktuale.
Pra, kjo është Engine.
Siç e përmenda më parë, sepse ju keni nevojë për të bashkëvepruar me Engine,
ka klienti.
>> Por në fakt, kur ju instaloni Docker, kjo anije me të.
Pra, ajo merr instaluar, kështu që kjo është një binar të vetëm.
Dhe ju mund të bëni thirrje lokale në Docker Engine tuaj.
Ose thirrjet largët për motorët e largët.
Ajo do të përdorin HTTP, si Përmenda më parë.
Ka një klient i quajtur GUI Kitematic nga Docker.
Dhe nuk janë patjetër një shumë e folks të tjera
të cilët po ndërtojnë një shumë të GUIs që në thelb zbatojnë
disa HTTP thirrje për të biseduar me Engine.
>> Vetëm disa komandat mostër.
Nëse ju bëni versionin Docker, ajo do të t'ju tregojë versionin e klientit, si dhe
versioni server.
Nëse ju bëni info Docker ajo do të t'ju them gjitha informatat
për sa kontejnerë do të vrapojnë ose krijuar, sa imazhet që ju keni,
dhe kështu me radhë e kështu me radhë.
>> Këtu unë kam, në e ardhshme për të kutia e fundit, unë kam drejtuar Doctor.
Pra, kjo është se si unë jam në të vërtetë krijuar enë.
Dhe unë jam duke i dhënë atë për echo Përshëndetje Të Gjithëve dhe fle për një të dytë dhe gjësend.
Dhe ju mund të shihni rezultat. Pra, kjo është në vazhdim.
Dhe të ngjashme me Linux ps, ju mund të shihni të gjitha proceset dhe, në këtë rast,
të gjithë kontejnerët running.
Ky i fundit i referohet përsëri në enë Unë vetëm krijuar.
>> Pra, kjo është me të vërtetë e rëndësishme sepse, si, ajo mund të jetë pak konfuze.
Pra, imazhet janë read-only Mbledhja e dosjeve, e drejtë?
Ata janë ato që enë jonë është e bazuar në.
Por ata janë vetëm read-only.
Pra, ju nisem me një imazh bazë.
Ajo tenton për të imituar OS-si, kështu që Ubuntu, CentOS, imazhi bazë gjësend.
Dhe pastaj ju të fillojë ndërtimin në krye që, shtresa të caktuara, që do të përbëjnë
imazhin tuaj në fund, në fund të rezultojë këtu.
>> Dhe secili prej këtyre shtresave duhet të ketë një imazh prind
se ai i referohet kur atë në fakt do të krijojë.
Ata janë të pandryshueshme, në kuptimin se për shkak se ata janë read-only,
ju nuk mund të vërtetë të bëjë ndryshime në to.
Ju mund të përdorni ato për të krijuar një enë nga një imazh, i cili
do të thërrasë të gjithë pasuese Imazhet të nevojshme nën atë.
>> Ju mund të bëni ndryshime në një shtresë të ndryshme,
kjo është një shtresë rishkruaj unë do mundësitë për të marrë një të dytë.
Por secili prej këtyre shtresave nuk janë ndryshuar.
Në thelb images përdorni diçka quajtur Bashkimi file sistemit, UFS.
Dhe ka ruajtje të ndryshme backends që përdorin këtë teknologji.
Dhe çka do të thotë është se ajo bashkon sistemet dallueshme fotografi
për të bërë ato të duken si një.
>> Kështu që ju mund të vërtetë, nga një perspektivë kërkesë,
ju keni një top të një pamje që tregon gjithë sistemin e fotografi të ndryshme të nevojshme
për të cilat aplikimi për të kandiduar.
Por ata janë në fakt, në këtë, ata janë në fakt në vende të veçanta
dhe duke u shfrytëzuar nga kontenierë të tjera.
>> Kështu si ju mund të shihni këtu se në qoftë se ne fillojmë me imazhin daemon
si një imazh bazë, dhe pastaj ne do të shkojmë në dhe shtoni [? Emacs?]
dhe pastaj kjo është një tjetër shtresë.
Dhe pastaj shtoni Apache.
Kjo është një tjetër shtresë.
Dhe pastaj ne kalojmë enë nga ajo.
Secili prej këtyre imazheve, secili prej këtyre shtresa,
është i veçantë dhe mund të jetë ripërdoren nga kontejnerët tjerë.
>> Nëse ju shikoni në vetë kontejnerë, ata janë disi si VM-si,
por jo trajtohen në të njëjtën kohë.
Pra, ata nuk kanë, teknikisht, sistem i plotë operativ nën to.
Ata përdorin bërthamën e vetme e sistemit operativ host.
Dhe ata ndërtojnë në krye të kësaj.
Ata imitojnë në mënyrën se si ata shikojnë.
Ata imitojnë dosjen e tyre rrënjë Sistemi i sistemit operativ.
Por ata në të vërtetë nuk janë përsëritur.
>> Pra, në vend që shtresa pandryshueshme, shtresa e fundit, e cila është enë
vetë, kjo është një shtresë read-shkruaj.
Që gjithashtu drejton proceset e aplikimit tuaj.
Dhe kjo varet nga shtresa themelore.
Çdo enë është krijuar nga një imazh.
Dhe se imazhi mund të jetë një e vetme Shtresa apo imazhit multilayer.
>> Dhe unë dua të theksohet këtu që Docker rëndë përdor,
ose është i bazuar në mekanizmin Copy-On-shkruaj.
Kështu që, në të vërtetë, në qoftë se ju nuk jeni bërjen e ndryshimeve te konteinerit,
kjo nuk do të marrë hapësirë ​​shtesë.
Pra, kjo është në thelb se si ju përmbledh një Copy-On-shkruaj.
Ajo do të patjetër të përshpejtojë koha boot për enë.
Sepse në qoftë se ju nuk jeni duke e bërë ndryshimet në enë,
ajo është shfrytëzuar atë që është tashmë atje.
>> Pra, se si në fakt funksionon.
Një pjesë e tij është si, tani, atë përdor të paktën dy kernel kyçe
karakteristika.
Dhe kjo është në thelb ajo që krijuar atë nivel të izolimit
për vetë kontejnerë.
Këto karakteristika janë hapësira dhe cgroups.
Pra, hapësira janë një mënyrë për të të krijojë burime të izoluara,
në mënyrë që brenda vete konteinerit, vetëm ju mund të shihni burime të caktuara.
Të tilla si interface rrjeteve ose përdoruesit të caktuara ose gjësend.
>> Dhe ata janë të dukshme vetëm dhe vetëm të arritshme brenda enë.
Cgroup në kufijtë e tjera anësore si ju përdorni këto burime.
CPU, memorie, dhe disk.
Kur ju mund të shkoni në, unë do të thotë ata që janë në të vërtetë
karakteristika që janë zhvilluar by-- ata janë pjesë e kernel Linux.
Pra, ata nuk ishin të reinvented nga ose rikrijuar nga Docker.
Docker përdor ato.
>> Çfarë Doktor vërtetë ka këtu është në fakt ajo
krijimi orkestruar hapësira për çdo enë
dhe krijimin e cgroups në mënyrë që ajo është ridiculously lehtë për të krijuar kontejnerët
duke përdorur këto tipare.
Sigurisht, siç kam përshkruar më parë, Bashkimi Sisteme skedarësh dhe Copy-On-Shkruaj vërtet
të ndihmojë shpejtësinë dhe disk shfrytëzimin e kontejnerëve.
>> Dhe një herë ju merrni tuaj duart rreth Docker,
ju jeni duke shkuar për të parë se sa shpejt ajo është për të në fakt tjerr deri kontenierë dhe lot
ata poshtë.
Pra, në qoftë se ju mund të pyesni, se si mund të ju në të vërtetë të ndërtuar imazhe?
Ne ndërtojmë imazhe nga një proces i krijimit të kontejnerë dhe duke bërë ndryshime, ndryshuar
ata, dhe kryerjen e tyre në duke u bërë një imazh.
>> Pra, kjo është një pulë dhe referencë vezë këtu,
sepse të gjithë kontejnerët vijnë nga imazhet dhe imazhet vijnë
nga kontejnerët e kryera, per pjesen me te madhe.
Ka tre opsione për të krijuar imazhe.
Unë jam duke shkuar për të përshkruar i pari dhe i fundit.
Ju ose mund të manualisht shkoni dhe të drejtuar enë
dhe të bëjnë këto ndryshime, si ju do të bëni në çdo VM
ose çdo sistem operativ, të tilla si instalimi i binareve të reja,
duke shtuar file sistemeve, dhe gjësend.
>> Dhe pastaj të dalë, si ju mund të shihni deri atje.
Unë jam daljes enë tim.
Dhe atëherë unë jam duke bërë Docker kryer.
Dhe unë jam kryerjes se.
Ju mund të shihni se numri këtu është vetëm një UUID, ose 12 për herë të parë
bit e UUID.
Ose bytes e UUID.
Dhe atëherë unë jam duke e quajtur atë imazhi im.
Deri tani Docker kujdeset për të regjistruar çdo gjë unë e bëri atë
dhe krijimin e ri Imazhi bazuar në atë.
>> Unë nuk jam do të flasim për tarball, por ka një mënyrë ju mund të merrni një të vetme,
të krijojë një të vetme, ose të bëjë një të vetme Imazhi shtresë përdorur tarball.
Ajo që unë jam duke shkuar për të folur në lidhje me këtë dhe çfarë është përdorur kryesisht sot,
është Dockerfile.
E cila është teknikisht i pari hap automatizuar nga vetë Docker.
Pra Dockerfiles janë gjëra që ju jeni do të shohim në një shumë të repove GitHub
sot.
Kjo është në thelb vetëm një Teksti skedar përshkruar
saktësisht se si për të ndërtuar një imazh.
>> Dhe për çdo linjë, ai në fakt krijon enë, ekzekuton atë vijë,
kryen atë enë në një imazh të ri, dhe ti, në thelb,
e përdorin atë për të gjitha operacionet e mëvonshme derisa ju të merrni në imazhin e fundit.
E cila është në thelb fund qëllimi këtu, fundin.
Dhe pasi të keni exec-- pas teje shkruaj Dockerfile tuaj, e cila
është thjesht në tekst, ju bëni një Docker ndërtuar dhe emri i imazhit.
>> Dhe ju pikë në se kjo është ku Dockerfile është në.
Dhe ju mund të presin për të parë imazhin tim si një imazh që ju keni në nivel lokal.
Pra, kjo është vetëm një vizuale Shembulli i asaj që vazhdon.
Ju filloni me një imazh bazë.
Ju drejtuar se në një enë që nuk ndryshon imazhin e vetë qerren.
Por në vend krijon një rishkruaj shtresë në krye të saj
ku ju bëni ndryshimet, në të cilën ju të kryer
dhe ju përsëris procesin deri ju merrni për imazhin tuaj përfundimtar.
>> Dhe duke bërë kështu, çdo ndërtuar të tjera Procesi mund të përdorni të njëjtat shtresa
dhe same-- thelb Docker arka ato shtresa.
Kështu që në qoftë se unë jam duke bërë të njëjtën gjë e saktë proces, por në vend të instalimit të PHP,
Unë jam instalimit Python.
Ajo do të përdorin Apache dhe Ubuntu.
Pra, në këtë mënyrë ju jeni duke përdorur diskun tuaj.
Është shfrytëzuar cache dhe imazhe në dispozicion atje.
>> Pjesa përfundimtare është Regjistrit, i cili është se si ju shpërndani imazhet tuaja.
Dhe, siç e përmenda më herët, ka një version cloud të saj,
e cila është Docker Hub.
Ju mund të shkoni dhe të eksplorojnë shumë, në thelb
kjo është një produkt publik SAS se ju ende mund të ketë imazhe private,
por ka një shumë e imazheve publike.
Është në fakt pakufizuar, ju mund të shtytje imazhe pakufizuar publike atje.
Dhe kjo është se si ju mund të bashkëpunojnë me ekipin tuaj.
>> Ju vetëm mund të nxjerr ato në ju repo dhe ata mund ta shkarkoni apo imazhin tuaj
dhe ata mund ta shkarkoni.
Pra, mjaft me biseda.
Kush dëshiron të shohë disa popull vërtetë të shpejtë?
Në rregull.
Kështu që këtu unë kam.
Ca ju djema shikoni ekranin tim?
Në rregull.
>> Pra, unë kam Docker drejtimin këtu, kështu që unë mund të kontrolloni it's-- Ky është versioni
i Docker që është running.
Mund të bëjë info Docker.
Kontrolloni të gjitha informatat në lidhje me sa Imazhet ata kanë, dhe kështu me radhë e kështu me radhë.
Docker PS, nuk ka asgjë running.
Concatenated ato.
>> Pra, gjëja e parë që unë dua të bëj është shfaqje ju si ju lehtë mund të kandidojë një enë.
Pra, bukuria për Drejtuar mjeku, në qoftë se ajo në fakt
nuk gjejnë një imazh në nivel lokal, nga default ajo flet për Hub Doktor
dhe përpiqet për të gjetur atë atje dhe shkarkime atë për ju.
Pra, ajo përfshin një Docker tërheq komandën, natyrisht.
>> Pra, nëse unë bëj një Docker drejtuar, Hello-botë.
Pra, së pari ajo do në përpjekje për të gjetur atë.
Përndryshe, si ju mund të shihni këtu, ajo nuk mund të gjeni atë në nivel lokal.
Tani për tani ai thjesht u tërhoq dy shtresa që e bëri atë imazh dhe unë u zhvillua atë.
Hello-botë është vetëm në thelb rezultatet, çfarë keni bërë.
Pra, kjo është më e lehtë, një ndër shembujt më të lehta.
Pra, në fakt unë vetëm u zhvillua dhe ndërpritet enë vërtetë të shpejtë.
>> Nëse unë dua të run-- dhe nga mënyra, nëse Unë dua të kohës që, vetëm kështu që ju e dini,
kjo është se sa kohë duhet për të në fakt tjerr dhe përmbajnë atë.
Ne jemi të matur atë në milisekonda.
Kështu që ju mund të shihni se sa kjo mund të në të vërtetë ju ndihmojë jo vetëm në testim,
por gjithashtu edhe vendosjen.
Pra, kjo është një shënim të shpejtë për këtë.
Gjë tjetër unë jam do të bëni në fakt është
drejtuar një imazh që kam përgatitur tashmë.
Pra Docker drejtuar.
-d është vetëm një flamur për të treguar ajo për të kandiduar në sfond.
Dhe -p cakton porte të caktuara.
Sepse nga default, kontejnerët janë të izoluar,
kështu që ju duhet të përcaktojë saktësisht se si ajo mund të përdorni ato.
Dhe në këtë rast, unë them Docker të ndajë një port të rastit në të presë
në një port të caktuar brenda enë vetë.
Dhe kjo është në thelb ku image-- shpresojmë se kjo është një e drejtë.
>> Pra, kjo e bën shkarkime paralele secila nga ato shtresa si ju mund të shihni këtu.
Ata janë nga shtresat e bërë imazhi fund që kam ndërtuar.
Ajo do të marrë një të dytë.
Dhe voila.
>> Kështu që tani, nëse unë bëj VV Docker, unë duhet shihni diçka që po kandidon.
Unë duhet të shoh ID, imazhin se kjo ishte bazuar jashtë,
dhe komanda që u ekzekutua.
Dhe si për të hyrë është thelb ju shkoni në këtë port.
Kështu që unë jam duke shkuar për të shkuar to-- këtë po unë jam running atë në AWS.
Unë jam duke shkuar për të shkuar në 32769.
Oops.
Dhe këtu ne do të shkojmë.
>> Pra, kjo është në fakt vetëm një shërbim web që tregon
të cilat enë është duke u shërbyer nga.
Kështu që ju mund të shihni se ajo është nga a9f enë.
Dhe këtu kjo është emrin e enës.
Kështu që ju djema mund të shihni se sa shpejt ajo ishte në fakt jo vetëm që tërheq, por edhe
të vendosur këtë kontejner.
>> Tani hapi tjetër është për të shikoni në Dockerfiles
dhe se si ne mund të vërtetë ndërtuar imazhe të reja.
Unë jam vetëm duke shkuar për të shkuar të marrë klon, një Sample Dockerfile bazuar në më parë
diagram, ai për të Apache dhe PHP.
Shpresojmë kujtohet repo time.
>> Pra, unë kam depo time tani.
Dhe ju jeni duke shkuar për të parë kjo shumë në fakt.
Unë nuk e kam instaluar pemë.
>> Pra, në thelb ju jeni duke shkuar për të parë se si Dokumentacioni juaj kod burim rreth
ajo, dhe pastaj a Dockerfile në si të vërtetë paketojnë atë.
Pra, kjo është vetëm një mostër PHP që i bën jehonë Hello CS50.
>> Pra, nëse unë dua të drejtuar atë, Unë do të bëj Docker ndërtuar.
Unë kam për të ndërtuar atë më parë.
Unë jam duke shkuar për të përmendur atë demo_cs50.
Dhe ju keni nevojë për një tag për atë shumë.
Pra, le të thërrasë atë v1 dot.
Pra, si unë përshkruar më herët, Çfarë unë jam duke bërë sot
po unë jam i thënë Docker për të shkuar përdorimit that-- fakt, keq, keq e mia.
Ne nuk të marrë një sy në Dockerfile vetë.
Pra, të vetmet gjëra në këtu janë index.php si file README
dhe a Dockerfile.
>> Pra, nëse ju merrni një vështrim në Dockerfile, kështu që është
shumë të ngjashme me atë që I përshkruar më herët.
Kjo është vetëm një bandë e hapa që Docker zbaton
duke krijuar dhe marramendës poshtë kontenierë dhe [? numëruar?] ato në një imazh.
>> Dhe në thelb ju mund të see-- [e padëgjueshme] atë here--
por kjo është nga repo lokale.
Ajo do të shkojë dhe të kap index.php.
Pra, kjo është vetëm kod burim që janë në fakt pjesë e aplikimit tuaj.
E gjithë kjo në thelb janë sistemit operativ hidraulik,
marrjen e paketave të drejtë dhe Apache, PHP dhe, dhe gjësend.
Por kjo është në të vërtetë duke marrë index.php dhe kryerjen atë në enë,
në imazhin.
>> Pra, nëse ju shkoni përpara dhe të drejtuar komandën duke bërë në vijim,
kjo është going-- fakt, kjo mund të marrë një grimë.
Shpresojmë se ajo nuk ka marrë shumë kohë.
Kështu që ju mund të shihni hapat.
Dhe unë ju inkurajoj që të shkoni në shtëpi sot dhe përpiqen atë.
Dhe Mano do të përshkruaj pikërisht si ju bëni këtë.
Por është e vërtetë e madhe për të parë saktësisht çfarë po ndodh prapa skenave.
Por kjo është qesharake lehtë për të ndërtuar imazhe dhe për të vendosur ato duke përdorur Docker.
>> Ajo është duke marrë një grimë më shumë sesa e prisja.
>> Le të shohim se çfarë ndodh kur ju, duke filluar ftohtë.
Kështu si ju mund të shihni, secili prej këtyre hapave paraqesin linja në Dockerfile.
Dhe kjo tregon këtu se ndërtuar me sukses këtë imazh.
>> Pra, nëse unë bëj imazhe Docker, unë jam duke shkuar për të parë të gjitha imazhet që kam në nivel lokal.
Dhe një prej tyre është quajtur tim emrin, dhe emrin e imazhit,
dhe representing-- tag kryesisht kjo është një tag version.
>> Kështu që tani, nëse unë dua të drejtuar ajo, unë do të kandidojë Docker.
Dhe unë vetëm dua të bëj një -P -D. Bëjnë v1.
Kështu që unë mund të shoh tani që unë kam dy kontejnerët drejtimin, atë që unë vetëm
krijuar dhe përshëndetje Docker ai që kam marrë e kaluar.
>> Dhe ju mund të shihni këtu se ajo caktuar atë një port tjetër.
Pra, nëse unë shkoj në të njëjtën IP, por të caktojë atë një port-- tjetër shpresojmë se unë nuk e bëri.
Deri tani kjo është kërkesë që unë sapo vendosur.
>> Nëse unë dua të bëj ndryshime, unë shpejt mund të redaktoni kodin burim
dhe të bëjë të mëposhtme.
Le të bëjmë Hello Harvard.
Pra, tani çfarë po ndodh të ndodhë është se unë jam
do të tag atë me një ndryshe version-- oh,
jo kjo guy-- tag atë me një version tjetër.
Dhe ju jeni duke shkuar për të see-- bëni ju djema presin
ajo për të marrë të njëjtën sasi e kohës për të ndërtuar atë për herë të dytë apo jo?
Të gjithë të drejtë, dhe dikush e di pse?
Fol.
>> Audienca: [padëgjueshme]
>> Nicola Kabar: Kjo është në thelb ne vetëm të ndryshojë një nga hapat më vonë.
Dhe për këtë arsye ajo do të përdorni cache dhe përdorim secili prej këtyre shtresa.
Dhe kjo është me të vërtetë disa nga Karakteristika killer të Docker
është se si ai në fakt përdor dhe reuses duke marrë përsipër
disku juaj për të njëjtën pjesë e sakta të informacionit.
>> Pra, nëse ne bëjmë të njëjtën gjë, ai mori vetëm disa sekonda.
Në qoftë se ne duam të redeploy-- kështu tani Unë duhet të ketë tre kontejnerë.
Por kjo është duke u shërbeu në the-- shtatë një.
Pra, tani është enë e tretë.
Gjithkush e kuptoj ajo që unë vetëm e bëri këtu?
>> Kështu që tani, nëse ju doni që të ndajnë këtë enë vërtetë të shpejtë me miqtë tuaj,
ju mund të bëni vetëm Docker shtyjë emrin e enë, me shpresë.
Kështu që tani ajo do të shtyjë atë to-- Unë nuk jam duke nënshkruar këtu.
Me fal per ate.
Por unë nuk jam duke shkuar për të troubleshoot këtë tani.
Por në thelb se një komandë është vetëm duke shkuar deri shtyjnë atë.
Dhe ju jeni do të jetë në gjendje të shohin atë në qoftë se ju shkoni në Docker Hub
Dhe ju hyni në, ju jeni do të jetë në gjendje për të parë atë.
Dhe pastaj ju mund të vetëm pika kush po shkon
për të përdorur këtë imazh për të shkuar dhe të tërheqë atë.
Dhe ata mund ta përdorin atë.
>> Me këtë, shpresojmë se Unë lloj i treguar
sa e lehtë është për të punuar me Docker.
Dhe unë jam vetëm do të jap atë përsëri në Mano.
Dhe ai do të marrë atë nga këtu.
>> MANO MARKS: Në rregull Faleminderit, faleminderit Nico.
Edhe çfarë?
Pra, një nga gjërat që unë donte të bëni është vënë së bashku
pse kjo është një important-- pse Docker dhe pse
kontejnerët janë të tilla një zhvillim të ri të rëndësishëm,
një mënyrë të re të vërtetë për ta bërë software.
>> Dhe para se të bëj, unë jam duke shkuar për vetëm futur një stats pak.
Unë nuk jam duke shkuar për të lexuar të gjitha këto.
Por, kjo ju tregon shumë për mënyrën se si popullor kjo është në komunitet.
Teknologjitë e Docker kryesore janë burim të hapur.
Pra, kjo është Docker Engine, Shkruaj, Tufë, një bandë e sende të tjera
është e gjitha burim të hapur.
Dhe ne kemi, çfarë nuk kam thonë, 1300 kontribuesit.
Ju jeni duke parë tani, në qoftë se ju shikoni në numri i vendeve të punës, hera e fundit
kemi shikuar, ajo ishte rreth 43.000 punë hapje në mënyrë specifike përmendet
familjaritet me Docker.
Qindra miliona e imazheve të ketë janë shkarkuar nga Docker Hub.
Dhe, edhe, statistikat shumë më të mëdha.
>> Për ata që janë kurioz, atë fillimisht ishte shkruar në Python
dhe pastaj rishkruar në Go.
Dhe kjo ka qenë vetëm hapur source-- kjo është vetëm
është liruar për rreth 2 dhe 1/2 vjet, që do të thotë se në 2 dhe 1/2 vjet,
ne kemi parë një sasi të madhe e rritjes dhe rëndësia
e kjo në komunitet.
Dhe kështu që unë dua të flas pak në lidhje me pse.
>> Pra, vetëm për të përsëritur disa nga Pikat kyçe Nico, Docker është i shpejtë.
Ai është i lëvizshëm.
Ajo është e riprodhueshme.
Dhe kjo krijon një ambient standarde.
>> Dhe what-- kjo është mutit im zhdukur të monolite slide-- çfarë
kjo është të ndihmuar njerëzit të bëjnë, e cila një shumë e industrinë e softuerit
filluar duke bërë në fillim të viteve 2000, është duke lëvizur
nga këto monolit Aplikacionet vetme
ku çdo varësia duhej të ishte testuar para se të gjithë app kishte
që do të vendoset, e cila mund të thotë një website
vetëm u vendosur një herë çdo tre muaj, ose më shumë,
për një shërbim shumë më tepër Arkitektura e orientuar
ose tipi componentized ndryshme e arkitekturës aplikimit.
Dhe kështu duke i lejuar këto lloj i arkitekturave
që përfitojnë nga Docker për të kandiduar në këto tre
Fushat kryesore të zhvillimit, të cilat është zhvillimi i shkruar kodin tuaj aktuale,
testimin kodin tuaj, dhe vendosjen atë.
>> Pra, pse është kjo e rëndësishme?
Nëse ju jeni a-- më lejoni të jap një shembull.
Nëse ju jeni një website zhvilluesi pajisje, ju jeni
zhvillimin e një faqe interneti që e bazuar në bazë të dhënash që Davidi prodhuar mbi këtu.
Na vjen keq Davidi, unë jam duke bërë thirrje ju.
Në qoftë se ju të kërkuar për të vendosur gjithë gjë, ju do të
duhet të presin në një tradicionale zhvillimit të softuerit monolit
Mjedisi, ju do të duhet të presin derisa ai ishte bërë me bazën e të dhënave
para se ju mund të bëjë në fakt çdo ndryshim në faqen tuaj te internetit.
Ju do të keni për të rivendosur tërë kërkesë për ta bërë këtë.
>> Dhe çfarë Docker ju ndihmon të bëni është të çdo Puna personi në komponentë të ndryshëm
dhe përditësimin e tyre si ata të shkojnë, vetëm duke e bërë Sigurohuni që interfaces të qëndrojnë të njëjta.
Pra, çfarë ka bërë është ajo e zhvendosur njerëz
nga duke bërë këto monolite masiv software architected se
vendosur çdo muaj në një të vazhdueshëm integrimi dhe zhvillimi i vazhdueshëm
mjedis.
>> Tani kjo nuk është unike për Docker, por Docker bën atë në mënyrë shumë më të lehtë,
që do të thotë ju jeni në thelb vazhdimisht vendosjen.
Ne flasim për ndërmarrjet që janë vendosjen e aplikacioneve të cilat përballet publike
mijëra herë në ditë, sepse ata e shohin vlerën në vetëm duke bërë
ndryshime të vogla, dhe për sa kohë si ajo shkon përmes testeve,
lënë të dalë në prodhim.
Nico ishte gjithmonë më thoshte më herët se në shumë mjedise,
cikli standardi jeta e një enë është i matur në sekonda,
ndërsa një makinë virtuale mund të matet në muaj.
>> Unë të kërkuar për të marrë një të vogël kthehen këtu, sepse unë jam i
në një institucion arsimor.
Unë të kërkuar për të dhënë një shembull se si kjo punon në një hulumtim edukativ
gjendja.
Kështu që nuk ka një organizatë quajtur bioboxes.
Bioboxes bën ADN Analiza për hulumtuesit.
>> Tani ajo që ata gjetën ishte se kur një researcher-- dhe kjo nuk është e
faji i ndonjë të veçantë researcher-- por kur
një studiues vendosur një algoritmi për të analizuar,
Në mënyrë të veçantë, një mostër ADN-së, ata do të shkruajnë software,
publikojë që, ndoshta për Github apo diku tjetër,
dhe atëherë ata ishin bërë.
>> E pra problemi ishte se ajo nuk ishte domosdoshmërisht riprodhueshme.
Sepse në mënyrë që të kuptojnë software,
ata do të ngrihet për Mjedisi saktë të zhvillimit
se kjo studiues përdorur, zakonisht laptop e tyre, ose nje server, ose nje dhënat
qendrës se ata ishin duke përdorur.
Dhe si pasojë, ishte shumë e vështirë për të riprodhuar rezultatet e hulumtimit kur
analizuar mostrat e ADN-së për të kërkuar në gjëra të tilla si incidence--
krahasoni rastet e sulmeve të zemrës bazuar në gjenet e caktuara të qenë të pranishëm,
për shembull, apo rrezikut të kancerit, apo ndonjë nga llojet e tjera të gjërave.
>> Pra, në vend atë që ata vepruan ishte ata filluan të krijojnë kontejnerë.
Dhe ju mund të shkoni në bioboxes.org, kjo është një organizatë e madhe.
Dhe atë që ata bëjnë është se ata prodhojnë Kontejnerët bazuar në hulumtimet.
Dhe pastaj kur dikush e dërgon në mostër e tyre, ata mund të kandidojë atë.
Dhe kjo ka të gjitha ambient të e nevojshme për të drejtuar atë algorithm
dhe të prodhojë rezultate.
Dhe ata janë gjetur se ata janë shumë më shumë gjasa dhe shumë
më shpejt në gjendje të kthehen rezultatet për njerëzit.
>> Dhe në fakt, ajo që njerëzit janë duke bërë të vrapojnë analizat e tyre mbi ADN,
dërguar që në të bioboxes, dhe pastaj biobox vetëm merr të dhënat,
drejton atë kundër ndryshme kontejnerët e ndryshme
të shohin rezultate të ndryshme bazuar në hulumtimet e ndryshme.
Pra, kjo është një shumë e fuqishme mënyra në të cilën studiuesit
mund të bëjë një shembull të vetëm që lejon njerëz të tjerë për të përpiqen dhe të riprodhoni
rezultatet.
>> Pra, si ju merrni filluar?
Ne jemi të mbështetur mirë në Linux.
Pra, nëse ju dëshironi të instaloni çdo gjë në Linux,
ju përdorni standardin tuaj menaxher paketë për të instaluar.
Nëse jeni duke përdorur një Debian, kjo të Get Apt.
CentOS është yum.
Fedora Red Hat është rpm-- Unë nuk e mbani mend.
Gjithsesi, kjo është e gjitha atje.
Ne mbështesim një larmi të madhe e shpërndarjeve Linux.
Ju mund të kontrolloni ato jashtë.
>> Ne gjithashtu kemi mundësi kështu që ju mund të kandidojë në Mac ose Windows.
Tani Nico përmendur më herët se ajo u mbështet vetëm në Linux.
Kjo është e vërtetë sepse ajo ka nevojë për një kernel Linux.
Por, ju mund të kandidojë në një makinë virtuale.
Dhe çfarë Docker Toolbox bën, të cilat ju mund të shkarkoni,
kjo ju jep atë makinë virtuale.
>> Pra, vetëm një të shpejtë 48 Së dyti, unë mendoj, shkarko.
Ju vetëm kërkoni në Docker Veglave, ta shkarkuar atë në Mac,
dhe kjo pjesë është e Sigurisht përshpejtuar sepse kush
dëshiron të shikojë një sinjal shkarko?
Instalimi standarde Mac, dhe pastaj ju jeni
do të shohim Jerome vënë në fjalëkalimin e tij.
Kjo është shumë emocionuese.
Dhe pastaj instalon një tërë bandë e mjeteve.
Dhe veçanërisht kjo do të instaluar një command line.
Dhe pastaj ju mund të shihni Jerome testimi imazhet e tij.
>> Dhe pastaj në bazë të kësaj, ju mund të shihni se YouTube
mendon se Nico është i interesuar në Star Wars, tregojnë Jimmy Kimmel,
dhe unë mendoj Ellen.
Unë mendoj se e fundit është një klip nga një shfaqje Ellen.
>> Pra Docker Toolbox pse vjen me më shumë se vetëm Machine Docker.
Pra Docker Machine është gjë që ndihmon
ju ngritur një virtuale makinë në Windows tuaj
ose Mac-- kutinë tuaj Windows ose Mac tuaj box-- dhe ju ndihmon të bëni sigurimin,
>> Por ajo gjithashtu vjen me Tufë dhe shkruaj,
të cilat janë projektuar për t'ju ndihmuar të bëni të madh vendosjet shkallë e aplikimit tuaj.
Pra, nëse ju doni të menaxhuar vile nyje,
vile kontejnerëve, Harto dhe Swarm janë rruga për të shkuar në lidhje me atë.
>> Dhe sigurisht ajo vjen me Docker Engine dhe Kitematic,
e cila është ky GUI desktop.
Unë duhet të përmend Docker Regjistrit, e cila nuk është përfshirë në Toolbox,
por kjo është një mënyrë për ju për të drejtuar tuaj Regjistrat e Images Docker si Docker
Hub, por ju gjithashtu mund të përdorni vetëm Docker Hub si një mënyrë për të bërë atë.
>> Dhe, komplot kthesë, ju jeni duke parë ajo konkurrojnë në një enë.
Dhe kjo është se si ne jemi shpërndarjen slides tona.
Ky prezantim tërë është në fakt një kuvertë rrëshqitje HTML.
Dhe ajo po kandidon në një enë, të cilat ju mund të merrni by--
>> Nicola Kabar: Po, kështu është running kohë të plotë në Max tim.
Dhe unë jam paraqitur prej saj.
Dhe ju vetëm bëni Docker pas ju instaloni Toolbox tuaj.
Ju vetëm mund të bëjë një të kandidojë Docker dhe për të marrë atë, dhe të përdorin slides.
>> MANO Marks: Dhe kjo është ajo.
Pra, ne ju falënderoj të gjithëve për të ardhur.
Dhe ne jemi të lumtur për t'iu përgjigjur pyetjeve.
Unë duhet të përmend para askujt lë nuk ka T-shirts atje.
Na vjen keq dikush i cili është shikuar kjo në Livestream ose video,
por ne kemi Docker T-shirts atje.
Dhe ne e dimë studentë Docker, dhe në përvojën time,
profesorë shumë, si veshje të lirë.
>> Pra, ju faleminderit të gjithëve për të ardhur nga.
Dhe na ndiqni në Twitter në qoftë se ju dëshironi, apo jo.
Unë nuk e kujdesit.
Gjithashtu të ndjekë Docker në Twitter.
Kjo është gjithashtu interesante.
Dhe pastaj kjo është ajo.
Docker.com.
Faleminderit.
>> [Duartrokitje]