>> [За възпроизвеждане на музика]
DAVID Malan: Добре.
Благодаря ви много, че дойдохте.
Това е CS50 семинар на Docker, а технология, която себе си и ние CS50
са започнали да използват от известно време насам.
Така че моето име е Дейвид Malan, I преподава в Харвард Въведение
да Computer Science.
От доста години, ние сме били като ученици
сваляне от страна на клиента виртуални машини
на която те правят проблеми своите набори.
Че сега имаме прехвърлихме в среда облак
че всъщност използва тази технология наречено Docker, така че цялата CS50
учениците вече имат своя собствени Docker контейнери
че скоро ще чуят всички.
>> Освен това на сървъра на CS50 странична клъстер, за много години
сме използвали Cloud сървър на Amazon.
Бяхме работи индивидуално виртуални машини.
Това също, сме започнали да се премине към тези неща, наречени Docker контейнери
така че всички наши приложения са сега напълно изолирани един от друг.
Така че за това и още, позволете ми да запознаем нашите приятели, Нико и Mano,
от самия Docker.
NICOLA Кабарската: Благодаря, Дейвид.
Здравейте всички.
Моето име е Nico и това е Mano.
Ние сме от Docker.
Отиваме да се говори about-- като ви момчета интро да Docker,
и да се надяваме, към края на този разговор можете да реализирате
колко много можете да използвате лекар, за да оксалат си за разработка на приложения
и разгръщане.
>> Така че, ние ще започнем реално бърза с основна информация.
Опишете какво Docker е всичко.
Как работи?
Как е архитектурата?
Ще се правят някои демонстрации.
И Mano ще бъде описва как можете да използвате Docker
и ви дава конкретни стъпки как точно може да стане.
>> Бих се радвал, ако вие може да побере разстояние за вашите въпроси към края.
По този начин, може да съм справяне тези, въпроси в цялата презентация.
Така че ние ще оставим известно време към края на въпроса.
>> Така че просто много бързо, което има всъщност някога е работил върху Docker,
като играе с него?
Awesome.
Готино.
Страхотен.
Така че, аз отивам да започнете с малко история.
Така че още през 90-те и началото на 2000 г., основно
като уеб разработчици, разработчиците на приложения, когато те отидоха да разположи заявление
тя беше вързана върху метал.
Това беше един сървър.
Това беше едно заявление.
>> Традиционно пример ще бъде като комин LAMP,
където всъщност трябваше да отглеждане на басейна на ресурсите.
CPU, памет, диск, мрежа, инсталиране операционна система в началото на това.
Ако сте обслужващи нещо, ако е вие всъщност като уеб сървър,
имате нужда от нещо подобно Apache, за да го обслужва.
>> Ако вашето приложение нуждае от база данни, бекхенд,
бихте инсталирате нещо като MySQL, и така нататък.
И ако имате нужда от време на подготовката, PHPs и PHP Python работа са били там.
И така, ние всъщност трябваше да предприеме тези стъпки, за да
за да получите вашата кандидатура и се изпълняват.
>> Ако е необходимо повече изчислителна мощ вас, основно трябваше да се обадите на вашия Ops човек
или гал да отида и да се багажник на нова част от хардуера, свържете го,
и вие трябва да се повтарят тези, процеси отново и отново.
Така че този процес е относително скъпо.
Определено е много бавен.
>> Това е неефективно.
И в много от случаите, си хардуер се използва пълноценно.
Така че, в края на 90-те и началото на 2000 г., хардуерна виртуализация натъкнах.
И както можете да видите тук, в картина, в общи линии това, което направиха
се абстрахира къпалнята безплатни хардуерни ресурси
и вид на тези, сервира към горните слоеве,
в този случай, гост операционна система.
>> И цялата идея за виртуални машини натъкнах
и че наистина помогна Cloud компютинг, какъвто го познаваме днес.
Така че това, което означаваше, че е да текат множество виртуални машини, които
означаваше няколко купчини, множествена прилагане на същата физическа машина.
>> Това определено помогна с скорост на разгръщането им.
Определено с разходи.
Вие не трябва да отида и да прекарат енергийни, време и ресурси, за да багажник
повече сървъри, за да стигнем до по-голяма изчислителна.
И скоростта на действително привеждане тези ресурси се е много по-бързо.
Страхотен.
>> Така че ние решен глада по света, нали?
Не наистина.
Така че, виртуализация, колкото това е всъщност помогна, решаване на проблема,
тя действително въведени пред много предизвикателства.
The хипервизора определено въведен много на сложност,
работа с тези основни пул от ресурси.
>> Това е по-тежък в смисъл, че преди имахте една операционна система, която
е като три, четири участия на диска.
Сега, ако имате 10 машини на един хардуер
което трябва да се размножават, че на броя на машините.
Това определено е по- скъпо в известен смисъл все още
Трябва да се лицензира за технологията за виртуализация
ако това не е с отворен код.
>> Но, нека да не предприемат всички кредит от виртуализация.
Защото това, което се случи, е, че има много стакове и много софтуер
технологии, които са били активирани от това колко бързо сте били в състояние да получите
до ресурси с бума Cloud.
>> Така че, днес една единствена приложение или услуга може да да се използва някоя от следните Runtimes
или бази данни.
PHP, Python, MySQL, Redis, какво ли не.
Така че има много на сложност на този брой стекове действително да доведе до
една-единствена услуга.
И заедно с това, че имаш много базисни ресурси или инфраструктура
видове, за да тествате разгръщане и в общи линии отведе до производството на тези приложения
че сте се развива.
>> Особено като си отбори имат отглеждани работи по тези приложения,
има много сложност и предизвикателства
които са доведени до гарантира, че на cycle-- основно приложение
цикъл на развитие, е всъщност успешно.
Така че, фактът, че вашата кандидатура работи локално на вашия локален VM
не гарантира, че вашият колега ще очакваме същите резултати.
>> И когато екипът на операциите е участва при вземането на това, което имате
и разгръщане на производството мащаб, също няма гаранция
че това всъщност ще се случи.
Така че това ни оставя с наистина big-- много въпросителни знаци,
пред много предизвикателства в действителност изправени пред подобен обратно в дните.
И това ни напомня за корабната индустрия.
>> Така че корабната индустрия имаше много стоки,
както можете да видите от лявата страна.
И на дясната страна, има много, общо взето,
начини да се доставят тези стоки.
И това, което се случва като двойка хора се събраха и казаха:
ние трябва да се стандартизират как ние всъщност достави тези стоки.
И бум, имате интермодален транспортен контейнер.
>> Така че те се споразумяха за най- общите размери на контейнера.
Как да се справиш с тях.
Какво точно ви трябва метод да ги заредите и да ги разтовари.
И поради това, че наистина помогна на корабната индустрия.
Сега, повече от 90% фокус транспортирани глобално използвате тези контейнери.
И това определено намалява разходите, както и
вредите, дължащи се на корабоплаването.
>> Така че ние приемаме един и същ модел и ние прилага софтуера развитие два ап
архитектура, в смисъл че контейнеризация
взе виртуализация едно ниво нагоре.
Така че вместо да правиш, че на хардуерно ниво,
това стана повече от една операционна виртуализация на системно ниво.
>> И правим това чрез предоставяне на всяка приложение в собствената си лек,
изолирани, изпълнима и преносим, ​​най-важното е,
начин действително да опаковате всичко, което той трябва да се изпълнява.
Навсякъде тя може да бъде стартиран.
Така че, независимо дали сте го използвате за местно отклонение среда, производството си
среда, си постановка или изпитване.
Без значение какво стои в основата инфраструктурата е там,
сте имали функционално работи ап.
>> Така че това е точно това, което в общи линии контейнери направя на този проблем.
Те се отнасят с него тя опаковки по такъв начин,
че да може да се гарантира, че това е разгърнато успешно, без значение къде живее.
Така че, ако ти започваш харесват, Bob тя все още е ОК.
Ако сте се бърка с това, което искам да кажа, Отивам да се разсъждава върху това.
>> И така, как се Docker поберат в тази картина?
Така Docker е отворена платформа лесно, лесно се подчертае,
за изграждане на кораби, тичам, лек преносим самостоятелно
достатъчно контейнери ап навсякъде.
Така че, ако вземете нещо от този Забавление, моля, вземете следното.
>> Ако имате приложението си бягане на местно ниво и сте го развили
при използването на платформата Docker, очаквайте тя да бъде успешно разгърнати.
Без значение какъв е основната инфраструктура.
Така че, ако имате Docker контейнер и това е работа, а след това
толкова дълго, колкото има Docker двигател от друга side--
ако вашата работа инфраструктура се използва всеки облак, дали
е AWS, или от Google, или Microsoft, или някоя от публични облаци,
или свой собствен облак, или си отворен стак Cloud, или към местния среда.
>> Ако имате двигател бягане, че средства
това ще бъде успешно разгърнати там.
Това ще се работи точно същото поведение
както го архитектурата да бъде.
Така че, ако погледнем at-- Отивам да мине през това, което всъщност
са в основните компоненти на Docker.
>> Така Engine е в основата на Docker.
Той е на мозъка.
Той дирижира сграда, корабоплаването, и разгръщане и управление
самите контейнери.
Ще копаят в това, което прави Engine по-подробно в секунда.
По принцип, защото Doctor е построена около клиент-сървър архитектури,
така че, за да си взаимодействат с Engine имате нужда от някакъв клиент.
>> Изображенията са шаблоните в които контейнери са компилирани от.
Така изображения са основно просто статични файлове.
Templates и контейнери е всъщност това, което е
се изпълнява по време на изпълнение, които излежава вашата кандидатура
или прави нещо с данните.
>> Registry е адресирано като проблем на как всъщност разпространявате изображенията.
Така че, ако имате нужда да споделите снимка които сте работили, за да си колега
или на екипа за операции, вие го използвате с помощта на Registry.
Можете да изтеглите с отворен код версия на това, че е работил по Docker
и отворете произход.
>> Или можете да използвате Docker помощ, което е най-Cloud версия
до привличане и отблъскване снимки там.
Това е огромно нещо.
Защото там е огромен екосистема около Docker и това е
наистина силно използване на главината.
>> Така че да обобщя тук, това е начина, по който минималистичен Docker клиент на работния процес.
Можете да си взаимодействат с гостоприемника, в този случай това е демоните докер.
Това е същото нещо като Engine.
Можете да направите команди като Docker изграждане, издърпайте, бягай.
И самата Engine отива и върши тези неща.
>> Така че или тя си взаимодейства с Registry да изтегли тези изображения
и слоевете на изображенията.
Дали, ако искате да се мобилизират, бягай контейнери, ги убиват, да ги съборят,
какво ли още не.
Така че това обобщава работния процес на всички тези компоненти.
>> Така че, ако се възползват от всяка компонент сам по себе си.
Така Engine, това е просто един демон.
Ще вид го играе за подкрепа то на Linux, защото го прави
изискват определени функции на ядрото на Linux.
Но Windows работи да правиш едно и също нещо.
Той е трябвало да бъде подкрепена от Windows Server 2016.
>> Така че, отново, отговорностите с двигателя е да, или да, изграждане на изображения.
Издърпайте изображения от докер Hub или свой собствен регистър.
Ако сте приключили с тези снимки или създавате нови изображения,
можете да натиснете тези обратно в регистърни да ги разпределя по други отбори.
>> И се опитва да го съдържа локално и управление на жизнения цикъл контейнери
на местно ниво.
Тя е изградена около HTTP REST API.
Така че технически можете напишете своето собствено клиент
стига да използва HTTP, което е много стандартен механизъм да говоря с Engine
и много други услуги.
И можете да видите от тук, че независимо
от това, което инфраструктурата е, толкова дълго, колкото можете can-- всички
имате нужда е операционна система, Linux, специално.
>> И вие можете да инсталирате Docker Engine отгоре на това и да го използвате
и я оркестрира, общо взето, всички тези ап едно, две,
и трите са действителните контейнери.
Така че това е Engine.
Както споменах по-рано, защото трябва да си взаимодействат с Engine,
има клиента.
>> Но всъщност, когато инсталирате Докер, той се доставя с него.
Така че се инсталира, така че това е една единствена двоичен.
И вие можете да направите местни разговори да си Docker Engine.
Или дистанционното обаждания до отдалечени машини.
Той не използва HTTP, като Споменах по-рано.
Има един GUI клиент, наречен Kitematic от Docker.
И там определено са много други хора
които са изграждането на много GUIs, че основно приложат
някои HTTP призовава да говоря с Engine.
>> Просто някои примерни команди.
Ако го направите Docker версия, че ще ти покажа клиент версия, както и
версията на сървъра.
Ако го направите Docker информация тя ще ви кажа цялата информация
колко контейнери използвате или създадени, колко изображения имате,
и така нататък, и така нататък.
>> Тук имам, в непосредствена близост до Последният бокс, имам Doctor план.
Така че това е как аз съм всъщност създаване на контейнер.
И аз съм го дават ехо Hello World и спи за секунда и какво ли още не.
И можете да видите резултат. Така че това е в ход.
И подобно на Linux к.с., можете да видите всички процеси, и в този случай,
всички контейнери на движение.
Това нечии препращащо към контейнера Току-що създадох.
>> Така че, това е наистина важно, защото, като това може да бъде малко объркващо.
Така изображения са само за четене колекция от файлове, нали?
Те са това, което ни се основава на контейнера.
Но те са само за четене само.
Така че можете да започнете с база изображение.
Тя има тенденция да имитират OS подобни, така че Ubuntu, CentOS, какво ли не база изображение.
И тогава ще започне изграждането на върха че някои слоеве, които ще съставляват
вашия край на изображението, на края доведе тук.
>> И всеки от тези слоеве трябва да има изображение майка
че тя референцията, когато става всъщност иска да създаде.
Те са неизменни, в смисъл че тъй като те са само за четене,
не можеш действително правят промени в тях.
Можете да ги използвате, за да създадете контейнер от изображение, което
Ще се обадя на всички последователни изисквани изображения под него.
>> Можете да направите промени към друг слой,
това е пренаписване слой аз ще говорим за в секунда.
Но всеки от тези слоеве никога не са се променили.
По принцип изображения използват нещо наречена съюз System, UFS File.
И там са различни за съхранение Неуспех при които се използват тази технология.
И какво означава това е, че тя обединява различни файлови системи
за да ги направят да изглежда като един.
>> Така че можете действително, от перспектива заявление,
имате върха на мнение, че предавания всички различни файловата система е необходимо
за това приложение, за да се изпълнява.
Но те са в действителност, на този, те са всъщност в отделни места
и се използва от други съдове, както добре.
>> Така че, както можете да видите тук, че ако започнем с демона на изображението
като основа на изображението, а след това отидем в нея и добавете [? Emacs?]
и след това е още един слой.
И след това се добавя Apache.
Това е още един слой.
И тогава ние прекара контейнер от това.
Всяка от тези снимки, всеки от тези слоеве,
е различна и може да бъде повторно използвани от други контейнери.
>> Ако се вгледате в самите контейнери, те са по някакъв начин като VM-подобни,
но не третира едновременно.
Така че, те не разполагат с технически г. пълна операционна система под тях.
Те използват единната ядрото на операционната система.
И те се изгради отгоре на това.
Те имитират в това как изглеждат.
Те имитират им корен файл система на операционната система.
Но те всъщност не са се размножава.
>> Така че, вместо да се налага неизменими слоеве, последния слой, който е на контейнера
себе си, това е за четене и запис слой.
Това също работи процесите на вашата кандидатура.
И това зависи от долните слоеве.
Всеки контейнер е създаден от изображение.
И този образ може да бъде единична слой или многослойна изображение.
>> И аз искам да се отбележи, че Docker силно използва,
или се основава на Copy-On-Write механизъм.
Така че, всъщност, ако не сте извършване на промени в контейнера,
това няма да се вземат допълнително пространство.
Така че това е в общи линии как си обобщи Copy-On-Write.
Това ще ускори определено времето за зареждане за контейнера.
Защото, ако не сте прави промени в контейнера,
това е използване на това, което вече е там.
>> И така, как тя наистина работи.
Част от това е като, точно сега, тя използва най-малко две ключови ядрото
Характеристика.
И това е в общи линии това, което създаден, че нивото на изолация
за самите контейнери.
Тези функции са именни пространства и cgroups.
Така именни пространства са начин да се създаване на изолирани ресурси,
така че в рамките на самия контейнер, само вие можете да видите някои ресурси.
Такива като интерфейсът на мрежи или на определени потребители или какво ли не.
>> И тези, които са само видими и само достъпен в контейнера.
Cgroup от другата страна границите как се използват тези ресурси.
CPU, памет и диск.
Когато можете да отидете в, I означава това всъщност са
функции, които са разработени по-- те са част от ядрото на Линукс.
Така че те не са били преоткриване от или пресъздадени от Docker.
Docker ги използва.
>> Какво Doctor наистина тук е всъщност го
Orchestrated създаване именни пространства за всеки контейнер
и създаване на cgroups, така че това е абсурдно лесно да създадете контейнери
използване на тези функции.
Разбира се, както е описано по-рано I, Съюз Файлови системи и Copy-On-Напиши наистина
помогне на скоростта и на диск използване на контейнерите.
>> И след като получите вашия ръце около Docker,
започваш да видим колко бързо е да се всъщност се върти контейнери и сълзотворен
да ги надолу.
Така че, ако може да попитам, как може всъщност изгради изображения?
Ние изграждаме образи чрез процес на създаване контейнери и правят промени, променяне
тях, и ги задължат да станат изображение.
>> Така че това е пиле и референтната яйце тук,
защото всички контейнери са от снимки и изображения идват
от извършени контейнери, през по-голямата част.
Има три опции за създаване на изображения.
Отивам да се опише Първият и последният.
Можете или ръчно отида и да тичам контейнера
и да направи тези промени, като теб ще направя по всяко VM
или всяка операционна система, като като инсталиране на нови бинарни файлове,
добавяне на файлови системи, и какво ли още не.
>> И след това да излезете, като можете да видите там.
Аз съм излизане ми контейнер.
И след това, което правя Docker ангажират.
И аз съм извършване това.
Можете да видите, че броят тук е само на UUID, или първите 12
бита на UUID.
Или байтове на UUID.
И тогава аз съм го нарече моя образ.
Така че сега Docker се грижи за записвате всичко, аз го направих
и създаването на новото изображение на базата на това.
>> Аз няма да говоря за архив,, но има начин можете да получите един единствен,
Създаване на единна, или да направите еднократна слой на изображението с помощта на архиви.
Какво съм аз ще говоря за това и това, което е най-често се използва днес,
е Dockerfile.
Коя е технически първият стъпка автоматизиран от самия Docker.
Така Dockerfiles са неща, които сте ще видим в много GitHub репо сделки
днес.
Това е основно само една текстов файл, описващ
точно как да се изгради един образ.
>> И за всяка линия, тя всъщност създава контейнера, изпълнява тази линия,
ангажира, че в контейнер нов имидж, а вие, общо взето,
го използвате за всички последващи операции докато не стигнем до последното изображение.
Което е в общи линии в крайна цел тук, на края.
И след като сте exec-- след като сте напишете вашето Dockerfile, които
е чисто в текста, ти направя Docker изграждане и името на изображението.
>> И ти посоча, че това е където Dockerfile е.
И вие можете да очаквате да видите моето изображение като изображение, че имате локално.
Така че това е само визуален пример за това, което става.
Можете да започнете с база изображение.
Можете тичам, че в контейнер, който не променя основната самото изображение.
Но вместо да създава пренапише слой върху нея
, където можете да направите промените, в които да се ангажират
и вие повторете процеса, докато можете да получите до крайната си образ.
>> И по този начин, всеки друг строителство процес може да използва същите слоеве
и same-- основно Docker кешира тези слоеве.
Така че, ако аз правя същото точната процес, но вместо да инсталирате PHP,
Аз съм инсталиране на Python.
Това ще използвате Apache и Ubuntu.
Така че по този начин можете да започнете използването вашия диск.
Това е използване на кеш паметта и налични изображения там.
>> В последната част е Registry, която е как да разпространявате вашите изображения.
И, както споменах по-рано, има Cloud версията на играта,
което е Docker Hub.
Можете да отидете и да проучи много, основно
това е публична продукт SAS, че Все още можете да имате частни снимки,
но има много публични образи.
Това всъщност е неограничен, можете да бутнете неограничени публични образи там.
И това е как можете да сътрудничи с вашия екип.
>> Можете просто да ги посоча по вас репо и те могат да го изтеглите или изображението
и те могат да го изтеглите.
Така че достатъчно с приказки.
Кой иска да види някои демонстрации недвижими бърз?
Всичко е наред.
Така че тук имам.
Ca вие виждате на екрана си?
Всичко е наред.
>> Така че имам Docker работи тук, така че аз да проверите it's-- Това е версията
на Docker, че е движение.
Може направя Docker информация.
Проверете цялата информация за това колко те са изображения, и така нататък, и така нататък.
Docker PS, няма нищо бягане.
Свръхдълги тези.
>> Така че първото нещо, което искам да направя е шоу вие колко лесно можете да стартирате контейнер.
Така че красотата около Doctor тече, ако действително
не се намери един образ на местно ниво, по подразбиране тя разговаря с Doctor Hub
и се опитва да го намерите там и тя се сваля за вас.
Така че това включва Docker дръпнете команда, естествено.
>> Така че, ако аз правя Docker тичам, здравей свят.
Така че, от една страна, че ще ходи да се опита да го намерите.
В противен случай, както можете да видите тук, тя не може да го намерите на местно ниво.
Точно сега той просто извади два слоя които направиха този образ и аз се завтече.
The здравей-света е само в общи линии изходи, какво сте направили.
Така че това е най-лесният, един от най-лесните примери.
Така че всъщност аз просто избяга и прекратено контейнера бързо.
>> Ако искам да run-- и между другото, ако е Искам на време, че точно така че да знаете,
това е колко време е необходимо, за да всъщност се върти и да го съдържа.
Ние сме го измерване в милисекунди.
Така че можете да видите колко това може действително да ви помогне не само в тестването,
но и дори разполагане.
Така че това е един бърз бележка за това.
Следващото нещо, което съм ще направя, е всъщност
тичам изображение Вече съм подготвен.
Така Docker план.
-d е само на знамето да кажа му да работи във фонов режим.
И -p поставя определени пристанища.
Тъй като по подразбиране, на контейнери са изолирани,
така че трябва да се уточни точно как може да има достъп до тях.
И в този случай, че казвам Docker да съставят карта на случаен порт на хоста
до определена пристанище в рамките на самия контейнер.
И това е в общи линии, където image-- надявам се това е правилният.
>> Така че го прави паралелни сваляния всеки на тези слоеве, както можете да видите тук.
Това са на слоевете вземане крайния образ, който аз построих.
Това ще отнеме секунди.
И готово.
>> Така че сега, ако аз правя докер к.с., че трябва видите нещо, което се движи.
Аз трябва да видите ID, изображението че това се основава на разстояние,
и командването, че е бил екзекутиран.
И как да получите достъп до него е основно и да отидете до това пристанище.
Така че аз ще отида to-- това е аз съм го изпълнява на AWS.
Отивам да отидете на 32769.
Ами сега.
И ето го.
>> Така че това всъщност е просто уеб услуга, която показва,
който контейнер тя е се сервира от.
Така че можете да видите, че тя е от контейнер a9f.
И тук това е най- Име на контейнера.
Така че вие ​​може да видите колко бързо беше да всъщност не само дръпне, но също
разположи този контейнер.
>> Сега следващата стъпка е да се гледам в Dockerfiles
и как можем действително изграждане на нови изображения.
Аз съм просто ще отида да клонинг, а Пробата Dockerfile въз основа на по-ранната
диаграма, онзи, на Apache и PHP.
Надяваме Спомням си моя репо.
>> Така че аз имам хранилище в момента.
И ти започваш да се види това много реално.
Аз не се инсталира дърво.
>> Така че основно ти започваш да се види как изходен код документация около
го, а след това и на Dockerfile как всъщност да ги пакетират.
Така че това е само една проба PHP че отеква здравей CS50.
>> Така че, ако искам да го стартирате, Ще направя докер строителство.
Аз трябва да го изградим на първо място.
Отивам да го наречете demo_cs50.
И трябва маркер към него също.
Така че нека да го наречем v1 Дот.
Така, както е описано по-рано I, какво правя днес
е Казвам Docker да отида ползване that-- всъщност, съжалявам, моя лош.
Ние не ги накарайте да поглеждат в самата Dockerfile.
Така че единствените неща в тук са index.php, както и файла Readme
и Dockerfile.
>> Така че, ако да разгледаме най- на Dockerfile, така че това е
много подобно на това, Описах по-рано.
Това е просто един куп стъпки, които Docker изпълнява
чрез създаване и събаряне контейнери и [? броене?] ги в образ.
>> И в общи линии можеш see-- [недоловим] тя here--
но това е от местната репо.
Това ще отидете и вземете index.php.
Така че това е единственият източник код, който всъщност са част от вашата кандидатура.
Всичко това са основно операционна система ВиК,
избирането на правилните пакети и Apache, PHP и, и какво ли още не.
Но това всъщност се index.php и извършване на контейнера,
в образа.
>> Така че, ако отидете напред и да стартирате команда, като направите следното,
това е going-- всъщност, това може да отнеме малко.
Надяваме се, че не отнеме твърде много време.
Така че можете да видите стъпките.
И аз Ви препоръчваме да отидете обратно вкъщи днес и да я изпробвате.
И Mano ще опише как точно се прави това.
Но това е наистина страхотно да се види точно какво се случва зад кулисите.
Но това е абсурдно лесно да се изгради снимки и да ги разположи използвайки Docker.
>> То е като малко дълго, отколкото очаквах.
>> Нека видим какво се случва, когато you-- охлади.
Така че, както виждате, всяка от тези стъпки представляват линии в Dockerfile.
И това показва, че тук успешно изгради този образ.
>> Така че, ако го направя Docker изображения, аз отивам да виж всички изображения, които имам на местно ниво.
И един от тях се нарича ми потребителско име, както и името на изображението,
и representing-- таг основно това е маркер версия.
>> Така че сега, ако искам да тичам това, което правя докер план.
И аз просто искам да направя -d -Р. Смятате v1.
Така че мога да видя сега, че имам две контейнери, работещи, този, който аз просто
създаден и Здравейте Docker една, която аз имам последната.
>> И можете да видите тук, че тя друг порт възложени.
Така че, ако отида в една и съща ПР, но да я възложи различен port-- се надявам, че не го направих.
Така че сега това е заявка че аз просто разгърнати.
>> Ако искате да направите промени, I може бързо да редактирате изходния код
и направете следното.
Нека да направим здравей Харвард.
Така че сега какво става да се случи, е, че аз съм
отивам да го маркирате с различна version-- о,
Не това guy-- го маркирате с различна версия.
И ти започваш да се see-- направите вие ​​очаквате
тя да поеме същия период от време да се изгради втори път или не?
Добре, а някой знае ли защо?
Говори.
>> АУДИТОРИЯ: [недоловим]
>> NICOLA Кабарската: Това е основно ние само се промени един от по-късните етапи.
И поради това, че ще използвате кеш и да използвате всеки от тези слоеве.
И това е наистина някои от убийствени характеристики на Docker
е как всъщност използва и повторно използване, приемащи над
вашия диск за една и съща Точните парчета информация.
>> Така че, ако ние правим едно и също нещо, отне само няколко секунди.
Ако искаме да redeploy-- така че сега Аз трябва да има три контейнера.
Но това се е връчва на the-- седем един.
Така че сега това е третата контейнера.
Всеки разбере това, което аз просто направих тук?
>> Така че сега, ако искате да споделите тази контейнер недвижими бърза с приятелите си,
можете да направите, просто докер Избутайте Име на съда, да се надяваме.
Така че сега то се случва да го натиснете to-- аз не съм подписан тук.
Съжалявам за това.
Но аз няма да ходя при отстраняването на това сега.
Но в общи линии, че една команда е само качвах го бутам.
И ти започваш да бъде в състояние да я види, ако отидете на Docker Hub
И вие влезете в системата, ти си ще бъде в състояние да го види.
И тогава можете просто посоча, който се случва
да използвате този образ да отида и да го дръпнете.
И те могат да го използват.
>> С това, надявам се I вид демонстрирана
колко лесно е да се работи с Docker.
И аз съм просто ще я върна Mano.
И той ще го вземе от тук.
>> Мано MARKS: Добре Благодаря, благодаря Нико.
И какво?
Така че едно от нещата, които съм Исках да направите е да се съберат
защо това е important-- защо Docker и защо
контейнери са такива, на важно ново строителство,
нов начин за правене на софтуер всъщност.
>> И преди да го направя, аз ще Просто представим няколко статистики.
Аз няма да се чете всичко това.
Но това ви показва много за това как популярен това е в общността.
Основни технологии на докер са с отворен код.
Така че това е Docker Engine, Compose, Swarm, един куп други неща
е всичко, с отворен код.
И ние имаме, какво съм направил казват, 1300 сътрудници.
Вие виждате сега, ако се вгледате в брой работни места, за последен път
ще погледна, тя е около 43 000 работни места отвори специално споменава
познаване Docker.
Стотици милиони изображения имат била изтеглена от Docker Hub.
А, добре, много по-големи статистики.
>> За тези, които са любопитни, тя беше първоначално написан на Python
и след това се пренаписва в Go.
И това е било само отворите source-- това е само
бил освободен за около 2 и 1/2 години, което означава, че в 2 и 1/2 години,
сме виждали огромно количество на растеж и значение
на този в общността.
И така, аз искам да говоря малко за това защо.
>> Така че просто да повторя някои от Ключови точки Нико, Docker е бърз.
Това е портативен.
Това е възпроизводим.
И това създава стандартна среда.
>> И what-- това е моят креп ликвидиране монолити slide-- какво
тя помага на хората да правят, които много от софтуерната индустрия
Започнах да правя в началото на 2000 г., се движат в
от тях монолитна единични приложения
където всеки зависимостта трябваше да е тества преди цялата ап трябваше
да бъдат разгърнати, които може да означава един сайт
имам само веднъж разгърнати всеки три месеца, или повече,
до много по-услуги архитектура, ориентирана
или componentized различен тип на прилагане архитектура.
И така, който позволява тези вид архитектури
които се възползват от Docker да се движи в тези три
Основните области на развитие, които пише развитие действителната Ви код,
тестване на кода си, и да го разгръщане.
>> Така че, защо това е важно?
Ако сте A-- нека дам един пример.
Ако сте един сайт разработчик устройство, вие сте
разработване на уеб сайт, който е базиран на база данни, която David произведени тук.
Съжаляваме Дейвид, аз ви вика.
Ако искате да разположи цялото това нещо, щеше
трябва да изчакаме по традиционен монолитна разработка на софтуер
среда, вие ще трябва да почака докато той се прави с базата данни
преди в действителност можете да направите всякакви промени в уебсайта си.
Ще трябва да се преразпределят на Цялата заявление да го направят.
>> И това, което ви помага да направите Docker е всеки лице, работа по различни компоненти
и да ги актуализира, тъй като излизат, просто направи сигурни, че връзките остават същите.
Така че това, което той е направил е това е изместен хората
от извършването на тези масивна монолитна архитектурния софтуер, който
разгърнати всеки месец до непрекъснат интеграция и непрекъснато развитие
заобикаляща среда.
>> Сега това не е единствена за Docker, но Docker го прави много по-лесно,
което означава, че сте в общи линии постоянно разполагане.
Ние говорим за предприятия, които са разгръщане на приложения обществени настилка
хиляди пъти на ден, защото те виждат стойността само на вземане
малки промени и докато тъй като тя преминава през изпитанията,
позволим това да изляза в производство.
Нико винаги ми казваше по-рано, че в много среди,
стандартната жизнения цикъл на контейнер се измерва в секунди,
като има предвид, виртуална машина може да се измерва в месеца.
>> Исках да вземе леко включите тук, защото аз съм
в учебно заведение.
Исках да дам един пример за това как това работи в учебно изследвания
ситуация.
Така че има една организация наречени bioboxes.
Bioboxes прави ДНК анализ на изследователи.
>> Сега това, което намерих е, че когато а researcher-- и това не е
по вина на всеки отделен researcher-- но когато
изследовател разгърнати алгоритъм за анализиране,
В определен начин, ДНК проба, те ще пишат софтуера,
публикува, че, може би, за да GitHub или някъде другаде,
и след това те са били извършени.
>> Ами проблемът е, че тя Не е задължително да възпроизведе.
Защото, за да се разбере софтуера,
те ще бъдат създадени за Точната среда за разработка
изследовател, че се използва, обикновено си лаптоп или сървър, или данни
център, който те използват.
И следователно, че е много трудно да възпроизвежда резултатите от научните изследвания, когато
анализиране на ДНК проби, за да потърсите в неща като incidence--
сравни честотата на сърдечните пристъпи въз основа на определени гени, присъстващи,
например, или риск от рак, или някоя от другите видове неща.
>> Така че това, което направиха, вместо беше те започнаха създаването на контейнери.
И вие можете да отидете на bioboxes.org, това е голяма организация.
И това, което те правят, е те произвеждат контейнери, основани на научни изследвания.
И тогава, когато някой изпраща в тяхната проба, те могат да го стартирате.
И това е всичко, на околната среда необходима за работата, която алгоритъм
и получаване на резултатите.
И те намери, че те са Много по-вероятно и много по-
по-бързо в състояние да върне резултати за хората.
>> И в действителност, това, което правят хората използвате собствения си анализ на ДНК,
изпращане, че, за да bioboxes, и След biobox просто взема данните,
той работи срещу сорта на различни контейнери
за да видите различни резултати въз основа на различни изследвания.
Така че това е един много мощен начин, в което изследователите
може да направи една единствена инстанция, която позволява други хора, за да се опита и да се възпроизвеждат
резултатите.
>> Е, как да започна?
Ние сме добре поддържа на Linux.
Така че, ако искате да инсталирате нищо на Linux,
използвате стандартната ви управление на пакетите за инсталиране.
Ако сте с помощта на Debian, това е ап получите.
CentOS е Yum.
Fedora Red Hat е rpm-- аз не си спомням.
Както и да е, това е всичко, което съществува.
Ние подкрепяме по-голямо разнообразие на Линукс дистрибуции.
Можете да проверите тези навън.
>> Ние също имаме възможности, така че може да работи на Mac или Windows.
Сега Нико споменах по-рано, че тя бе подкрепена само от Linux.
Това е вярно, тъй като тя нуждае от Linux ядрото.
Но, можете да стартирате във виртуална машина.
И това, което Docker Toolbox върши, който можете да изтеглите,
той ви дава, че виртуалната машина.
>> Така че само един бърз 48 второ, мисля, изтегляне.
Можете просто търсене на Docker Toolbox, да го свалите на Mac,
и тази част е от Разбира се ускори, защото който
иска да гледа за сваляне на сигнала?
Standard Mac инсталация, и след това сте
Ще видите Jerome пробва паролата си.
Това е много вълнуващо.
И тогава се инсталира цял куп инструменти.
И по-специално тя ще инсталиране на командния ред.
И тогава можете да видите Jerome тестване образите му.
>> Тогава въз основа на това, можете да видите, че YouTube
мисли, че Нико е заинтересован Star Wars, The Jimmy Kimmel шоуто,
и аз мисля, Елън.
Мисля, че последният е щипка от Елън шоу.
>> Така Docker Toolbox че идва с повече от просто Docker Machine.
Така Docker машина е нещото, което помага
ви създаде виртуална машина на вашия Windows
или Mac-- вашата кутия Windows или Mac си box-- и ви помага да направите провизиране,
>> Но тя също така идва с Swarm и Compose,
които са предназначени да ви помогнат да направите голяма разгръщания на вашата кандидатура.
Така че, ако искате да управлявате клъстери от възли,
клъстери от контейнери, композира и Swarm са начин да отида за това.
>> И разбира се той идва с Docker Engine и Kitematic,
който е този настолен GUI.
Аз също трябва да споменем Docker Registry, която не е включена в Toolbox,
но това е начин за вас да стартирате свой собствен регистри на докер Images като докер
Hub, но можете да използвате само Docker Hub, като начин да се направи това.
>> И, парцел обрат, което виждате тя работи в контейнер.
И това е, как ние сме разпространение на нашите слайдове.
Цялата тази презентация е всъщност палубата на HTML пързалка.
И тя се изпълнява в контейнер, който можете да получите по--
>> NICOLA Кабарската: Да, така че това е тичане на пълен работен ден на моя Max.
И аз съм представяне от него.
А вие просто правя Docker след инсталирате вашия Toolbox.
Можете просто да се направи докер план и да се получи, както и използването на слайдовете.
>> Мано МАРКИРОВКА: И това е всичко.
Така че ние всички ви благодаря, че дойдохте.
И ние сме щастливи да отговаря на въпроси.
Трябва да спомена, преди някой оставя има тениски там.
За съжаление всеки, който гледа тази на Livestream или видео,
но ние имаме Docker тениски там.
И ние знаем, докер учениците, и в моя опит,
професори също, като безплатно облекло.
>> Така че благодаря на всички ви за излизане.
И ни последват в Twitter ако искате, или не.
Не ме е грижа.
Също следват Docker на Twitter.
Това също е интересна.
И тогава това е всичко.
Docker.com.
Благодаря.
>> [Аплодисменти]