[Гуляе музыка] Дэвід малая: Добра. Дзякуй, што прыйшлі. Гэта CS50 семінар па Докер, а тэхналогіі, якія мы самі і CS50 пачалі выкарыстоўваць на працягу некаторага часу. Так мяне завуць Дэвід малая, я навучыць Увядзенне Гарварда у галіне камп'ютэрных навук. Вось ужо некалькі гадоў, мы давалі студэнтам загружаны кліент-бок віртуальныя машыны на якім яны свае праблемы наборы. Тое, што мы зараз перайшлі у сераду Cloud што на самой справе выкарыстоўвае гэтую тэхналогію называецца Докер, напрыклад, што ўсе CS50 Студэнты цяпер маюць іх ўласныя кантэйнеры Docker што вы толькі пачуеце ўсё. Акрамя таго, на сэрвэры CS50 ў бок кластар, на працягу многіх гадоў мы выкарыстоўвалі Cloud сервер Амазонкі. Мы беглі твар віртуальныя машыны. Гэта таксама, мы пачалі пераход да гэтыя рэчы называюцца Docker кантэйнеры так што ўсе нашы прыкладання ў цяперашні час ідэальна ізаляваны адзін ад аднаго. Такім чынам, для што і больш, дазвольце мне ўвесці нашых сяброў, Ніка і Мано, ад самой Докер. Нікола КАБАР: Дзякуй, Дэвід. Прывітанне, усім. Мяне клічуць Ніка, і гэта Мано. Мы з Докер. Мы будзем казаць about-- даючы вам хлопцы інтра да Докер, і, спадзяюся, да канца з гэтай размовы вы можаце зразумець, колькі вы можаце выкарыстоўваць лекара оксалат свой распрацоўкі прыкладанняў і разгортванне. Так, мы збіраемся пачаць рэальны хутка з некаторай даведачнай інфармацыі. Апішыце, што Докер гэта ўсё аб. Як гэта працуе? Як гэта архітэктура? Я буду рабіць некалькі дэмак. І Мано будзе апісваючы, як вы можаце выкарыстоўваць Docker і дае вам канкрэтныя крокі як вы можаце пачаць. Я быў бы ўдзячны, калі вы, хлопцы, можаце трымаць ад вашых пытанняў да канца. Такім чынам, я мог бы быць звяртаючыся да пытанні ўсёй прэзентацыі. Такім чынам, мы пакінем некаторы час ў канцы для пытанняў. Так што вельмі хутка, хто мае на самай справе калі-небудзь працаваў на Докер, як гуляў з ім? Высокі. Прахладны. Выдатна. Такім чынам, я збіраюся пачаць з нейкай гісторыі. Такім чынам, вернемся ў 90-х і пачатку 2000-х, у асноўным як вэб-распрацоўшчыкаў, распрацоўшчыкаў дадаткаў, калі яны пайшлі, каб разгарнуць прыкладанне гэта было звязана з голага металу. Гэта быў адзін сервер. Гэта было адно прыкладанне. Традыцыйна прыклад будзе як стэк LAMP, дзе вы на самой справе было выхоўваць пул рэсурсаў. Працэсара, памяці, дыска, сеткі, ўстаноўка Аперацыйная сістэма на вяршыні гэтага. Калі вы нешта служыць, пры вы на самой справе маючы вэб-сервер, трэба нешта накшталт Apache, каб служыць. Калі ваша прыкладанне мае патрэбу базы дадзеных, наводмаш, Вы б ўсталяваць нешта як MySQL, і гэтак далей. А калі вам трэба час выканання, PHPs і праца PHP Python былі там. І такім чынам, мы фактычна павінны былі распачаць гэтыя крокі ў мэтах каб атрымаць ваша прыкладанне і працуе. Калі вам патрэбна больш вылічальную магутнасць, вам у большасці давялося выклікаць ваш хлопец Ops або галон ісці і нарошчваць новыя жалязяка, падключыце яго, і вам прыйдзецца паўтарыць тыя працэсы зноў і зноў. Так гэты працэс быў адносна дарагім. Быў, безумоўна, вельмі павольна. Гэта было неэфектыўна. І ў большасці выпадкаў, ваш абсталяванне было недастаткова. Так, у канцы 90-х гадоў і пачатку 2000-х, апаратная віртуалізацыя наткнуўся. І, як вы можаце бачыць тут у карціна, у асноўным тое, што яны зрабілі абстрагуюцца пул Бясплатныя апаратныя рэсурсы і выгляд служыў тых, у верхніх пластах, у гэтым выпадку, гасцявой аперацыйнай сістэмы. І ўся ідэя віртуальныя машыны наткнуўся і што сапраўды дапамагло Cloud вылічальная як мы яго ведаем сёння. Так што гэта азначала, што гэта вы можа працаваць некалькі віртуальных машын, які азначала некалькі стэкаў, некалькі Дадатак на адной фізічнай машыне. Гэта, безумоўна, дапамагло з Хуткасць разгортвання прыкладанняў. Вызначана з выдаткамі. Вы не павінны ісці і марнаваць энергіі, часу і рэсурсаў, каб набраць больш сервераў, каб дабрацца да больш вылічальных. І хуткасць фактычна чаго Гэтыя рэсурсы да значна хутчэй. Выдатна. Такім чынам, мы вырашылі з голадам у свеце, праўда? Не, не зусім. Так, віртуалізацыя, наколькі гэта на самай справе дапамаглі, вырашаць праблему, гэта на самай справе ўведзеныя шмат праблем. Гіпервізара вызначана прадставіла шмат складанасцяў, апрацоўкі якія ляжаць у аснове басейн рэсурсаў. Гэта цяжэй у тым сэнсе, што перад Вы былі адной аперацыйнай сістэмы, якая як тры, чатыры канцэртаў на дыску. Цяпер, калі ў вас ёсць 10 машын на адной апаратнай Вы павінны памножыць гэта па колькасці машын. Гэта, безумоўна, больш дорага ў сэнсе вы ўсё яшчэ павінны атрымаць ліцэнзіі для тэхналогія віртуалізацыі калі гэта не з адкрытым зыходным кодам. Але, давайце не будзем усё крэдыт ад віртуалізацыі. Таму што тое, што адбылося, ёсць шмат стэкаў і шмат праграмнага забеспячэння тэхналогіі, якія былі ўключаныя па тым, як хутка вы змаглі атрымаць да рэсурсаў з бумам Cloud. Так, сёння адзін дадатак або служба можа выкарыстоўваць любы з наступных асяроддзяў выканання на або базы дадзеных. PHP, Python, MySQL, Redis, яшчэ шмат чаго. Такім чынам, ёсць шмат складанасці на гэтым Колькасць штабялёў на самай справе выхоўваць адзін сэрвіс. І разам з тым, вы мелі шмат базавыя рэсурсы або інфраструктура Тыпы праверыць Deploy і ў асноўным прыняць да вытворчасці гэтыя прыкладання што вы распрацоўваеце. Тым больш, што вашы каманды маюць вырашчаны працуе на тых прыкладаннях, ёсць шмат Складанасць праблемы і што былі прыведзены для таго, каб cycle-- асноўным прыкладанне Цыкл развіцця, з'яўляецца на самай справе паспяховым. Такім чынам, той факт, што ваша прыкладанне працуе лакальна на вашым лакальным VM не гарантуе, што ваш калега будзе чакаць тыя ж самыя вынікі. І калі каманда аперацыі з'яўляецца ўдзел у прыняцці таго, што ў вас ёсць і разгортвання яго ў вытворчасць маштаб, таксама няма ніякай гарантыі, што гэта на самай справе адбудзецца. Такім чынам, гэта пакідае нас з сапраўды big-- шмат пытальных знакаў, шмат праблем на самай справе сутыкнуліся аналагічна ў тыя дні. І, што нагадалі нам пра суднаходства. Так суднаходнай галіны было шмат тавараў, як вы можаце бачыць на левай баку. А на правай баку, ёсць шмат, у асноўным, спосабы грузіць гэтыя тавары. І тое, што адбываецца, як пара людзі сабраліся разам і сказалі, мы павінны стандартаваць як мы на самай справе карабель гэтых тавараў. І бум, у вас ёсць інтэрмадальнага перавозкі кантэйнераў. Такім чынам, яны дамовіліся пра найбольш агульныя памеры для кантэйнера. Як з імі справіцца. Што дакладны метад вам трэба каб загрузіць іх і выгружаць іх. І таму, які сапраўды дапамог суднаходства. Зараз, больш чым 90% увагі транспартуецца ў глабальным маштабе, выкарыстоўваючы гэтыя кантэйнеры. І, безумоўна, зніжае што выдаткі, а таксама страты, звязаныя з дастаўкай. Такім чынам, мы прыняць тую ж мадэль, і мы прымяняць праграмнае забеспячэнне для распрацоўкі прыкладанняў двух Архітэктура, у тым сэнсе, што контейнеризации узяў віртуалізацыі на адзін узровень уверх. Такім чынам, замест рабіць што на апаратным узроўні, ён стаў больш аперацыйнай Віртуалізацыя на ўзроўні сістэмы. І мы робім гэта, падаючы кожнаму прымяненне ва ўласнай лёгкі, ізаляваныя, гатовы да працы, і партатыўны, самае галоўнае, спосаб на самай справе пакет усё, што ён павінен працаваць. Усюды ён можа быць запушчаны. Так, незалежна ад таго, вы працуеце яго на лакальная серада DEV, ваша вытворчасць навакольнае асяроддзе, ваш пастаноўка або тэставанне. Не важна, што ў аснове інфраструктура ёсць, ў вас ёсць функцыянальная прыкладанне. Дык вось менавіта тое, што ў асноўным Кантэйнеры зрабіць, каб гэтай праблемы. Яны датычацца яго ўпакоўкі яго такім чынам, што ён можа гарантаваць, што гэта разгорнута паспяхова няважна, дзе ён жыве. Так што, калі вы збіраецеся як Боб гэта яшчэ добра. Калі вы блытаць з тым, што я кажу, Я збіраюся быць на распрацоўцы, што. Такім чынам, як жа сам Докер ўпісваецца ў гэтую карціну? Так Докер з'яўляецца адкрытай платформай лёгка, падкрэсліваюць лёгка, пабудаваць карабель, бегаць, лёгкі партатыўны самакіравання дастатковыя прыкладанне кантэйнеры ўсюды. Так што калі вы нешта ўзяць з гэтага Абмеркаванне, калі ласка, наступнае. Калі ў вас ёсць прыкладанне працуе на мясцовым узроўні і вы распрацавалі яго ў выкарыстанні платформу Docker, чакаць гэта будзе паспяхова разгорнутыя. Незалежна ад таго, з'яўляецца не базавая інфраструктура. Так што, калі ў вас ёсць Докер кантэйнер, і гэта працуе, то тых часоў, пакуль гэта Докер рухавік на іншы side-- калі вашай аперацыйнай інфраструктуры выкарыстоўвае любы Cloud, няхай гэта будзе гэта AWS або Google, або Microsoft, або любой з адкрытых аблокаў, ці ваш уласны Воблака, ці ваш стэк адкрыты Воблака, ці ваш мясцовы сераду. Калі ў вас ёсць рухавік, працуе, што сродкі гэта будзе паспяхова разгорнута там. Гэта збіраецца быць запушчаны сапраўды гэтак жа паводзіны як вы яго архітэктура будзе. Так што, калі мы паглядзім at-- я збіраюся прайсці праз тое, што на самой справе у галоўных кампанентаў Докер. Так Рухавік на аснове Докер. Гэта мозгу. Гэта арганізуе будаўніцтва, перавозка грузу, і разгортвання і кіравання самі кантэйнеры. Я капаць у тое, што робіць рухавік больш падрабязна ў секунду. У асноўным, таму, што доктар быў пабудаваны вакол архітэктур кліент-сервер, таму для таго, каб ўзаемадзейнічаць з Рухавік вам трэба нейкае кліента. Выявы шаблоны ў якія кантэйнеры, пабудаваныя з. Так у асноўным малюнка толькі статычныя файлы. Шаблоны і кантэйнеры на самай справе тое, што працуе падчас выканання, што служыць прыкладанне ці рабіць нешта з дадзенымі. Рэестр звярнуўся ў праблеме як вы на самой справе распаўсюджваць выявы. Так што, калі вам трэба падзяліцца малюнак што вы працавалі на вашага калегу або каманды Ops, вы выкарыстоўваць яго з дапамогай рэестра. Вы можаце спампаваць з адкрытым зыходным кодам версія гэтым, што Докер працаваў на і з адкрытым зыходным кодам. Ці вы можаце выкарыстоўваць Docker дапамогу, які з'яўляецца версіяй Воблака каб штурхаць і цягнуць малюнка там. Гэта велізарная рэч. Таму што ёсць велізарная экасістэма Докер, і гэта сапраўды інтэнсіўна выкарыстоўвае канцэнтратар. Такім чынам, падвядзем вынік тут, гэта тое, як мінімалісцкі Докер кліент дакументаабароту. Вы ўзаемадзейнічаеце з гаспадаром, у гэты выпадак гэта дэманы Docker. Гэта тое ж самае, як рухавік. Вы робіце каманды, як Докер будаваць, цягнуць, працаваць. І сам рухавіка ідзе і робіць гэтыя рэчы. Так што альбо ён ўзаемадзейнічае з Рэестр цягнуць гэтыя выявы і слаі малюнкаў. Будзь, калі вы хочаце, каб разгарнуць, запусціць кантэйнеры, забіць іх, кідаць іх уніз, этажэрка. Такім чынам, гэта сумуе працоўны ўсіх гэтых кампанентаў. Так што, калі вы бераце кожны Кампанент сам па сабе. Так рухавіка, гэта проста дэман. Гэта будзе свайго роду гуляць, каб падтрымаць гэта на Linux, таму што ён робіць патрабуюць пэўных асаблівасцяў ядра Linux. Але Windows працуе рабіць тое ж самае. Гэта павінны падтрымлівацца па Windows Server 2016. Так, зноў жа, у абавязкі з Рухавік з, або з, пабудаваць малюнка. Пацягніце выявы з Докер Канцэнтратар ці ваш уласны рэестра. Калі вы зрабілі з гэтымі малюнкамі ці вы стварыць новыя вобразы, вы можаце націснуць іх назад у рэестр размеркаваць іх з іншымі камандамі. І спрабуючы стрымаць яго лакальна і кіраваць кантэйнеры жыццёвы цыкл на мясцовым узроўні. Ён пабудаваны вакол API HTTP REST. Тэхнічна вы можаце напісаць свой уласны кліент тых часоў, пакуль ён выкарыстоўвае HTTP, які з'яўляецца вельмі Стандартны механізм, каб пагаварыць з Engine і шмат іншых паслуг. І вы можаце бачыць з тут, што незалежна з якой інфраструктуры з'яўляецца, як доўга, як вы can-- ўсе Вы павінны гэта аперацыйная Сістэма, Linux у прыватнасці. І вы можаце ўсталяваць Docker Рухавік на вяршыні, што і гэта працуе і арганізуе, у асноўным, усё гэта прыкладанне адзін, два, і тры фактычныя кантэйнеры. Дык вось рухавік. Як я ўжо казаў раней, таму што Вы павінны ўзаемадзейнічаць з рухавіком, ёсць кліент. Але на самой справе, калі вы ўсталюеце Докер, ён пастаўляецца з ёй. Так ён атрымлівае усталяваны, так што гэта адзін двайковы. І вы можаце зрабіць мясцовыя званкі на ваш Docker Engine. Або выдаленыя выклікі ў аддаленыя рухавікоў. Гэта выкарыстанне HTTP, а Я згадваў раней. Там гэта называецца графічнага кліента Kitematic з Докер. І ёсць вызначана шмат іншых людзей хто будуе шмат ГПІ, што ў асноўным рэалізуюць некаторыя HTTP-выклікаў, каб пагаварыць з Engine. Проста некаторыя прыклады каманд. Калі вы Docker версію, што гэта будзе паказаць вам версію кліента, а таксама серверная версія. Калі вы інфармацыю Docker гэта будзе сказаць вам усю інфармацыю пра тое, колькі кантэйнераў працуе або створаны, колькі малюнкаў ў вас ёсць, і гэтак далей, і гэтак далей. Вось у мяне ёсць, у наступным, каб Апошняе шкло, у мяне ёсць доктар перспектыве. Дык вось, як я на самой справе стварэнне кантэйнер. І я даю яго рэха Hello World і спаць на другі, а яшчэ шмат чаго. І вы можаце ўбачыць Вынік. Так што гэта працягваецца. І падобна на Linux пс, вы можаце ўбачыць усе працэсы і, у дадзеным выпадку, усе хадавыя кантэйнеры. Гэта свайго вяртаючыся да кантэйнер Я толькі што стварыў. Такім чынам, гэта сапраўды важна, таму што, як гэта можа быць трохі заблытаным. Так выявы з'яўляюцца толькі для чытання набор файлаў, ці не так? Яны то, што наша кантэйнера на аснове. Але яны толькі для чытання. Такім чынам, вы пачынаеце з базавай выявы. Яна імкнецца пераймаць АС-як, так Ubuntu, CentOS, яшчэ шмат чаго база малюнка. І тады вы пачынаеце будаваць на вяршыні што некаторыя пласты, якія будуць складаць ваш канец малюнка, канчатковы вынік тут. І кожны з гэтых слаёў павінны мець бацькоўскі вобраз што ён спасылаецца, калі гэта на самай справе хоча стварыць. Яны нязменныя, у тым сэнсе, што, таму што яны толькі для чытання, Вы не можаце на самой справе унесці змены ў іх. Вы можаце выкарыстоўваць іх, каб стварыць Кантэйнер з выявы, які будзем называць ўсе наступныя неабходныя малюнка пад ім. Вы можаце ўнесці змены у іншы пласт, гэта перапісванне пласт я буду пагаварыць у секунду. Але кожнае з гэтых слаёў ніколі не змяняюцца. У асноўным малюнка выкарыстоўваць нешта называецца Саюз сістэма, UFS файла. І ёсць розныя спосабы захоўвання рухавічкі, якія выкарыстоўваюць гэтую тэхналогію. І што гэта значыць, што яна аб'ядноўвае розныя файлавыя сістэмы каб яны выглядалі як адзін. Такім чынам, вы можаце на самой справе, з пункту гледжання прыкладання, ў вас ёсць верх меркаванне, што шоў ўсе розныя файлавай сістэмы неабходныя для гэтага прыкладання для запуску. Але на самой справе яны, на гэтым, яны на самой справе ў асобных месцах і ў цяперашні час выкарыстоўваюцца іншыя кантэйнеры, а таксама. Такім чынам, як вы можаце бачыць тут, што калі мы пачнем з дэманам малюнка у якасці базавай выявы, а затым мы ідзем і дадаць [? Emacs?] а затым, што яшчэ адзін пласт. А потым дадаць Apache. Вось яшчэ адзін пласт. А потым мы праводзім Кантэйнер з гэтага. Кожны з гэтых малюнкаў, кожны з гэтых слаёў, адрозніваецца і можа быць выкарыстаных іншымі кантэйнерамі. Калі вы паглядзіце на саміх кантэйнерах, яны нейкім чынам, як В.М., як, але не лячыць той жа час. Такім чынам, яны не маюць, тэхнічна, поўны аперацыйнай сістэмы пад імі. Яны выкарыстоўваюць адзіную ядро ад аперацыйнай сістэмы. І яны будуюць на верхняй частцы, што. Яны імітуюць у тым, як яны выглядаюць. Яны імітуюць іх каранёвай файл Сістэма аперацыйнай сістэмы. Але яны на самой справе не капіяваць. Так, замест таго, нязменныя пласты, апошні пласт, які з'яўляецца кантэйнерам Сам, гэта пласт чытання-запісы. Гэта таксама працуе працэсы з вашага прыкладання. А гэта залежыць ад ніжэйшых слаёў. Кожны кантэйнер створаны з малюнка. І, што малюнак можа быць адзін пласт або шматслаёвы вобраз. І я хачу адзначыць, што Докер моцна выкарыстоўвае або на аснове капіраванне пры запісе механізму. Так што, на самай справе, калі вы не ўнясення змяненняў у кантэйнеры, гэта не зойме дадатковае прастору. Дык вось, як вы ў асноўным падсумаваць капіраванне пры запісе. Гэта будзе, безумоўна, паскорыць час загрузкі для кантэйнера. Таму што, калі вы не робіце Змены ў кантэйнеры, гэта выкарыстоўваючы тое, што ўжо ёсць. Так, як гэта на самай справе працуе. Частка з іх як, прама зараз, гэта выкарыстоўвае прынамсі, два ключавых ядро асаблівасці. І гэта ў асноўным тое, што створана што ўзровень ізаляцыі для саміх кантэйнераў. Гэтыя асаблівасці імёнаў і кантрольныя групы. Так імёнаў з'яўляюцца спосабам стварыць асобныя рэсурсы, такім чынам, каб у самым кантэйнеры, толькі вы можаце ўбачыць некаторыя рэсурсы. Такія, як сеткавы інтэрфейс або пэўныя карыстальнікі ці яшчэ шмат чаго. А тыя, бачныя толькі і толькі даступныя ў кантэйнеры. Кантрольнай групы на другім баку межах як вы выкарыстоўваеце гэтыя рэсурсы. Працэсара, памяці і дыскавай памяці. Калі вы можаце пайсці, я маю на ўвазе тых, на самай справе асаблівасці, якія былі распрацаваны по-- яны з'яўляюцца часткай ядра Linux. Такім чынам, яны не зноўку па або адноўлены Докер. Докер выкарыстоўвае іх. Што доктар сапраўды тут на самой справе гэта Стварэнне арганізаваных Прасторы імёнаў для кожнага кантэйнера і стварэнне кантрольных груп, так што гэта смешнага лёгка стварыць кантэйнеры выкарыстоўваючы гэтыя функцыі. Вядома, як я апісаў вышэй, саюз Файлавыя сістэмы і капіяванне пры запісе сапраўды дапамагчы хуткасць і дыск Выкарыстанне кантэйнераў. І як толькі вы атрымаеце ваш рукі вакол Докер, Вы ўбачыце, як хутка яна з'яўляецца на самай справе раскруціць кантэйнеры і слязу іх уніз. Так што, калі Вы маглі б спытаць, як можа вы на самой справе пабудаваць малюнка? Мы будуем малюнка, у працэсе стварэння кантэйнеры і ўнясенне змяненняў, які змяняе ім, і іх здзяйсненне у станаўленне малюнак. Так што гэта курыца і яйка спасылка тут, таму што ўсе кантэйнеры прыходзяць ад малюнкаў і вобразы прыходзяць ад учыненых кантэйнераў, па большай частцы. Ёсць тры варыянты для стварэння малюнкаў. Я збіраюся апісаць першы і апошні. Вы можаце альбо ўручную пайсці і запусціць кантэйнер і зрабіць гэтыя змены, як вы маглі б зрабіць на любым VM або любой аперацыйнай сістэмы, напрыклад як ўстаноўка новых двайковых файлаў, дадання файлавых сістэм, і яшчэ шмат чаго. А потым вы выходзіце, а Вы можаце ўбачыць там. Я выхаду майго кантэйнера. І тады я раблю Докер здзейсніць. І я здзяйснення гэтага. Вы можаце бачыць, што колькасць тут гэта проста UUID, або першыя 12 біты UUID. Або байт UUID. І тады я тэлефаную яго мой вобраз. Так што цяпер Докер клапоціцца аб запісы ўсё, што я зрабіў гэта і стварэнне новага малюнак на яго аснове. Я не збіраюся казаць аб архіва, але ёсць спосаб, вы можаце атрымаць адзін, стварыць адзіны, або зрабіць адзін пласт малюнка з дапамогай архівы. Тое, што я збіраюся пагаварыць пра гэта і тое, што ў асноўным выкарыстоўваецца сёння, гэта Dockerfile. Якія тэхнічна першы крок аўтаматызаваны сам Докер. Так Dockerfiles рэчы, што вы ўбачыце ў многіх GitHub РЭПО сёння. Гэта ў асноўным толькі тэкставы файл апісання дакладна, як пабудаваць малюнак. І для кожнага радка, на самай справе стварае кантэйнер, выконвае гэты радок, здзяйсняе гэты кантэйнер ў новы лад, і вы, у асноўным, выкарыстоўваць яго для ўсіх наступных аперацый пакуль вы не атрымаеце на апошнім малюнку. Якія ў асноўным Канчатковая мэта тут, канец. І пасля таго, як за табой exec-- напісаць Dockerfile, што чыста ў тэксце, вы робіце Docker пабудаваць і імя ладу. І вы ўказаць на тое што дзе Dockerfile знаходзіцца ў. І вы можаце чакаць убачыць мой лад як вобраз, які ў вас ёсць на мясцовым узроўні. Так што гэта проста візуальны прыклад таго, што працягваецца. Вы пачынаеце з базавай выявы. Вы запускаеце, што ў кантэйнер, які не змяняе саму базавы вобраз. Але замест таго, стварае перапісаць пласт па-над ім дзе вы ўнесці змены, у якім вы фіксуеце і вы паўторыце працэс, пакуль Вы атрымліваеце да канчатковага малюнка. І тым самым, кожны зборкі працэс можа выкарыстоўваць тыя ж пласты і ў асноўным same-- Докер кэшуецца гэтыя пласты. Так што, калі я раблю тое ж самае дакладнае працэс, але замест ўстаноўкі PHP, Я ўсталёўваю Python. Гэта збіраецца выкарыстоўваць Apache і Ubuntu. Так Такім чынам, вы, выкарыстоўваючы ваш дыск. Гэта выкарыстанне кэш і даступныя малюнка там. Канчатковы кавалак рэестра, якія як вы распаўсюджваць свае выявы. І, як я ўжо казаў раней, ёсць версія Воблака яго, што Докер-канцэнтратар. Вы можаце пайсці і даследаваць шмат, у асноўным гэта прадукт грамадскага SAS, што Вы ўсё яшчэ можаце мець асабістыя малюнка, але ёсць шмат адкрытых малюнкаў. Гэта на самай справе абмежавана, вы можаце націснуць неабмежаваныя грамадскія малюнкаў там. І гэта, як вы можаце супрацоўнічаць з вашай камандай. Вы можаце проста паказаць іх у вас РЭПО і яны могуць загрузіць гэта ці малюнак і яны могуць яе спампаваць. Так дастаткова з размовы. Хто хоча ўбачыць некаторыя дэма вельмі хутка? Добра. Дык вось у мяне ёсць. Ca вы, хлопцы, бачыце мой экран? Добра. Так што я Докер працуе тут, так што я можаце праверыць it's-- Гэта версія з Докер, які працуе. Можна зрабіць дадзеныя Docker. Праверце ўсю інфармацыю аб тым, колькі малюнка ў іх ёсць, і гэтак далей, і гэтак далей. Докер PS, няма нічога працуе. Каскадныя тых. Таму першае, што я хачу зрабіць, гэта паказаць Вы, як вы можаце лёгка запусціць кантэйнер. Такім чынам, цуд Доктар выканання, калі гэта на самай справе не знайсьці малюнак на мясцовым узроўні, па змаўчанні ён гаворыць на галоўную доктара і спрабуе знайсці яго там і загружае яго для вас. Так яна ўключае ў сябе Docker каманду цягнуць, натуральна. Так што, калі я раблю Докер перспектыве, прывітанне-свеце. Такім чынам, спачатку гэта будзе каб паспрабаваць знайсці яго. У адваротным выпадку, як вы можаце бачыць тут, ён не мог знайсці яго на мясцовым узроўні. Цяпер ён проста выцягнуў два пласта што зрабіў гэты вобраз, і я пабег. Прывітання-свет толькі ў асноўным выхады, тое, што вы зрабілі. Так што гэта самы просты, адзін самы просты прыклады. Так на самай справе я проста бег і спыняецца кантэйнер вельмі хутка. Калі я хачу, каб run-- і дарэчы, калі Я хачу, каб час, што проста так вы ведаеце, гэта, як доўга гэта бярэ, каб на самай справе спіна і ўтрымліваць яго. Мы яго вымярэння ў мілісекундах. Такім чынам, вы можаце бачыць, колькі гэта можа на самай справе дапаможа вам не толькі ў тэставанні, але нават і разгортвання. Так што гэта невялікае заўвагу па гэтым пытанні. Наступная рэч, якую я збіраюся зрабіць, гэта на самай справе запусціць файл я ўжо падрыхтаваны. Так докер перспектыве. -d толькі сцяг, каб сказаць гэта працаваць у фонавым рэжыме. І -p прызначае пэўныя парты. Таму што па змаўчанні, кантэйнеры ізаляваныя, так што вы павінны сапраўды паказаць як ён можа атрымаць да іх доступ. І ў гэтым выпадку, я кажу Docker Паказвае выпадковы порт на хасце ў названы порт у сам кантэйнер. І гэта ў асноўным, дзе image-- спадзяюся, гэта з'яўляецца правільным. Так што робіць паралельныя загрузкі кожны з тых слаёў, як вы можаце паглядзець тут. Тыя з слаёў робіць канец вобраз, які я пабудаваў. Гэта зойме секунду. І вуаля. Так што цяпер, калі я раблю Docker пс, я павінен убачыць тое, што працуе. Я павінен убачыць ідэнтыфікатар, малюнак што гэта было на аснове выключаны, і каманда, якая была выканана. І як атрымаць доступ да гэта у асноўным вы ідзяце да гэтага порце. Так што я збіраюся пайсці, мэтай якіх гэта з'яўляецца Я бягу гэта на AWS. Я збіраюся паехаць у 32769. Ай. І тут мы ідзем. Так што гэта на самай справе проста вэб-сэрвіс, які паказвае які кантэйнер гэты час падаецца з. Такім чынам, вы можаце бачыць, што гэта ад кантэйнера a9f. І вось гэта імя кантэйнера. Дык вы, хлопцы, можаце ўбачыць, як хутка ён быў на самай справе не толькі цягнуць, але таксама разгарнуць гэты кантэйнер. Цяпер наступны крок заключаецца ў шукаць у Dockerfiles і як мы можам на самай справе будаваць новыя вобразы. Я проста збіраюся пайсці атрымаць клон, А Прыклады Dockerfile на аснове раней схема, адзін, каб Apache і PHP. Спадзяюся, я памятаю РЭПО. Так у мяне ёсць рэпазітар прама цяпер. І вы ўбачыце, гэта шмат на самай справе. Я не ўсталяваць дрэва. Так у асноўным вы ўбачыце, як ваш зыходны код дакументацыі вакол гэта, а затым на Dockerfile як на самой справе спакаваць яго. Так што гэта проста ўзор PHP што пераклікаецца прывітанне CS50. Так што, калі я хачу, каб запусціць яго, Я зраблю Docker зборкі. Я павінен пабудаваць яго ў першую чаргу. Я збіраюся назваць яго demo_cs50. І вам трэба пазнаку з ёй таксама. Такім чынам, давайце называць яго v1 кропка. Так, як я апісаў вышэй, што я раблю сёння з'яўляецца Я кажу Docker ісці выкарыстанне that-- самай справе, прабачце, мой дрэнны. Мы не зірнуць на самай Dockerfile. Такім чынам, толькі рэчы ў тут index.php, а таксама файл звестак і Dockerfile. Так што, калі вы паглядзіце на Dockerfile, так што вельмі падобна на тое Я апісаў раней. Гэта проста куча крокі, якія выконвае Докер шляхам стварэння і зрываючы кантэйнеры і [? падліку?] іх у малюнак. І ў асноўным вы можаце see-- [неразборліва] гэта here-- але гэта з мясцовага РЭПО. Гэта збіраецца пайсці і захапіць index.php. Так што гэта толькі зыходны код, які на справе з'яўляюцца часткай вашага прыкладання. Усё гэта ў асноўным сантэхнічныя сістэмы аперацыйнай, атрымліваць неабходныя пакеты і Apache, PHP і, і яшчэ шмат чаго. Але гэта адбываецца на самай справе index.php і здзяйсненне яго ў кантэйнер, ў малюнак. Так што, калі вы ідзяце наперад і запусціць Каманда, выканаўшы наступныя, гэта на самай справе going--, гэта можа заняць крыху. Спадзяюся, гэта не зойме занадта шмат часу. Такім чынам, вы можаце бачыць крокі. І я заклікаю вас ісці дадому сёння і паспрабаваць яго. І Мано апішу як менавіта ты гэта робіш. Але гэта сапраўды выдатна, каб убачыць менавіта тое, што адбываецца за кулісамі. Але гэта да смешнага лёгка пабудаваць Выявы і разгарнуць іх з дапамогай Docker. Гэта займае трохі больш, чым я чакаў. Давайце паглядзім, што адбываецца, калі you-- астыць. Такім чынам, як вы бачыце, кожная з гэтых крокаў ўяўляюць лініі ў Dockerfile. А вось гэта паказвае, што гэта паспяхова пабудаваў гэты вобраз. Так што, калі я Docker малюнка, я збіраюся ўбачыць ўсе выявы, якія я маю на мясцовым узроўні. І адзін з іх завецца мой імя карыстальніка і назва малюнка, а тэг representing-- у асноўным гэта версія тэгаў. Так што цяпер, калі я хачу, каб запусціць гэта, я Docker перспектыве. І я проста хачу, каб зрабіць -d -P. У v1. Так я бачу цяпер, што ў мяне два кантэйнеры працуе, той, што я проста створаны і прывітанне Докер, які я атрымаў у мінулым. І вы можаце бачыць тут, што гэта прызначаны яго іншы порт. Так што, калі я іду ў той жа IP, але прызначыць яго іншае port--, спадзяюся, я не зрабіў. Так што цяпер гэта дадатак што я проста разгорнуты. Калі я хачу, каб унесці змены, я можа хутка змяніць зыходны код і выканайце наступныя дзеянні. Давайце зробім прывітанне Гарвард. Так што цяпер, што адбываецца адбудзецца тое, што я збіраецца пазначыць яго з адрозніваецца version-- аб, гэта не guy-- пазначыць яго з другога версіяй. І вы збіраецеся see-- вы, хлопцы чакаць гэта ўзяць такое ж колькасць часу пабудаваць яго ў другі раз ці не? Добра, і хто ведае, чаму? Кажаце. АЎДЫТОРЫЯ: [неразборліва] Нікола КАБАР: Гэта ў асноўным мы змяніць толькі адзін з пазнейшых этапаў. І таму ён збіраецца выкарыстоўваць Кэш і выкарыстоўваць кожны з гэтых слаёў. І гэта сапраўды адны з забойца асаблівасці Докер як гэта на самай справе выкарыстоўвае і паўторна захоп ваш дыск на тое ж самае Дакладныя часткі інфармацыі. Так што, калі мы робім тое ж самае, ён узяў толькі пару секунд. Калі мы хочам, каб redeploy-- так што зараз Я павінен мець тры кантэйнера. Але гэта адзін быўшы служыў на the-- сем адзін. Так што цяпер гэта трэці кантэйнер. Усе разумеюць што я толькі што зрабіў тут? Так што цяпер, калі вы хочаце падзяліцца гэтым Кантэйнер вельмі хутка з сябрамі, вы можаце проста зрабіць Докер націснуць імя кантэйнера, з надзеяй. Так што цяпер гэта будзе штурхаць яго , Мэтай якіх я не падпісаны тут. На жаль пра гэта. Але я не збіраюся ліквідаваць гэта цяпер. Але ў асноўным, што адна каманда проста падышоўшы штурхаць яго. І вы збіраецеся быць у стане см, калі вы ідзяце ў Докер-канцэнтратар І вы увайсці, вы будзе ў стане бачыць гэта. І тады вы можаце проста пазначыць, хто будзе выкарыстаць гэты вобраз, каб пайсці і выцягнуць яго. І яны могуць выкарыстоўваць яго. Пры тым, што мы спадзяемся, Я накшталт прадэманстраваў як лёгка гэта для працы з Докер. І я проста хачу, каб вярнуць яе Мано. І ён збіраецца ўзяць яго адсюль. Мано МАРКІ: Усе правы дзякуй, дзякуй Ніка. І што? Такім чынам, адна з рэчаў, якія я хацеў зрабіць, гэта пакласці разам чаму гэта important-- чаму і навошта Докер кантэйнеры такое важная новая распрацоўка, новы спосаб на самой справе робіць праграмнае забеспячэнне. І перш, чым я раблю, я збіраюся проста ўвесці некалькі статыстыцы. Я не збіраюся чытаць усе гэтыя. Але гэта паказвае вам шмат пра тое, як папулярны гэта ў грамадстве. Асноўныя тэхналогіі Docker з адкрытым зыходным кодам. Дык вось Докер рухавіка, складаць, Рой, куча іншых рэчаў усё з адкрытым зыходным кодам. І ў нас ёсць, што ж я кажуць, 1300 ўкладчыкаў. Вы бачыце цяпер, калі вы паглядзіце на Колькасць вакансій, у апошні раз мы глядзелі, гэта было каля 43000 вакансіі Адтуліны адмыслова адзначыць, знаёмства з Докер. Сотні мільёнаў малюнкаў ёсць былі загружаныя з Докер-канцэнтратар. А, ну, значна больш буйныя статыстыка. Для тых, хто цікавіцца, яго была першапачаткова напісана ў Python а затым перапісаць ў Go. І гэта толькі было адкрыць source-- гэта толькі быў выпушчаны на працягу прыблізна 2 і 1/2 гадоў, што азначае, што ў 2 і 1/2 гадоў, мы бачылі велізарная колькасць росту і важнасці гэта ў грамадстве. І таму я хачу пагаварыць крыху аб тым, чаму. Так што проста паўтарыць, некаторыя з Ключавыя моманты Ніка, Докер хутка. Гэта партатыўны. Гэта з'яўляецца прайграваных. І ён усталёўвае стандартную сераду. І што-гэта мой дерьмовый выкараніць маналіты slide--, што гэта дапамагае людзям рабіць, што шмат у індустрыі праграмнага забеспячэння пачаў рабіць у пачатку 2000-х, рухаецца ад іх маналітны адзінкавыя прыкладання дзе кожны залежнасцяў павінен быць выпрабаваныя перад Увесь прыкладанне было павінны быць разгорнутыя, які можа азначаць сайт толькі атрымаў разгорнутыя адразу кожныя тры месяцы, або больш, у значна больш службы арыентаваная архітэктура ці іншы тып кампанентная архітэктуры прыкладання. І так гэта дазваляе выгляд архітэктур што скарыстацца Докер працаваць у гэтыя тры Асноўнымі напрамкамі развіцця, якія з'яўляецца развіццё напісанні фактычны код, тэставанне кода, а разгортванне яе. Дык чаму гэта важна? Калі вы a-- дазвольце мне даць прыклад. Калі вы з'яўляецеся вэб-сайт Распрацоўшчык прылады, вы распрацоўка вэб-сайта, які заснаваны на базы дадзеных, што Дэвід вырабляецца тут. Выбачайце Дэвід, я тэлефаную вам. Калі вы хочаце, каб разгарнуць усё гэта, вы б прыйдзецца чакаць пад традыцыйны Развіццё маналітнага праграмнага забеспячэння серада, вам прыйдзецца чакаць пакуль ён не быў зроблены з базай дадзеных перш чым вы маглі на самай справе зрабіць любыя змены ў свой вэб-сайт. Вы павінны былі б перадыслакаваць Увесь дадатак, каб зрабіць так. І тое, што Докер дапаможа вам зрабіць кожны чалавек работа па розных кампанентаў і абнавіць іх, як яны ідуць, проста зрабіць Пераканайцеся, што інтэрфейсы застаюцца тымі ж. Так што гэта было зроблена гэта перамясціўся людзей рабіць гэта масіўная маналітная архітэктура праграмнага забеспячэння, разгарнуць кожны месяц бесперапыннай інтэграцыя і бесперапыннае развіццё навакольнае асяроддзе. Зараз гэта не з'яўляецца унікальным для Докер, але Докер робіць гэта значна лягчэй, які азначае, што вы ў асноўным пастаянна разгортвання. Мы гаворым з прадпрыемстваў, якія разгортвання прыкладанняў грамадскіх абліцавальныя тысячы разоў у дзень, таму што яны бачаць каштоўнасць у проста зрабіць невялікія змены, і да таго часу, як гэта праходзіць праз выпрабаванні, даючы яму выйсці ў вытворчасць. Ніка заўсёды казаў мне, раней, у многіх асяроддзях, стандарт жыццёвага цыклу Кантэйнер вымяраецца ў секундах, у той час як на віртуальнай машыне можа быць вымераная ў месяцаў. Я хацеў узяць невялікае ўключыць сюды, таму што я ў адукацыйным установе. Я хацеў, каб даць прыклад таго, як гэта працуе ў адукацыйным даследаванняў Сітуацыя. Так што арганізацыя званыя bioboxes. Bioboxes робіць ДНК аналіз даследчыкаў. Цяпер тое, што яны выявілі, што, калі researcher-- і гэта не няспраўнасць якога-небудзь канкрэтнага researcher-- але калі даследчык разгорнутыя алгарытм для аналізу, У пэўным чынам, ўзор ДНК, яны пішуць праграмнае забеспячэнне, публікаваць, што, можа быць, у GitHub або дзесьці яшчэ, а затым яны былі зробленыя. Ну праблема ў тым, што гэта не абавязкова прайграваным. Таму што для таго, каб зразумець праграмнага забеспячэння, яны будуць створаны для Дакладная асяроддзе распрацоўкі што гэта даследчык выкарыстоўваецца, як правіла, іх ноўтбук або сервер, або дадзеныя цэнтр, які яны выкарыстоўваюць. І, такім чынам, гэта было вельмі цяжка каб прайграць вынікі даследавання, калі Аналізуючы ўзоры ДНК, каб паглядзець на рэчы, як incidence-- параўнаць узровень сардэчных прыступаў на аснове пэўных генаў, прысутных, напрыклад, або рызыка рака, або любы з іншых відаў рэчаў. Так што яны зрабілі, а не быў яны пачалі ствараць кантэйнеры. І вы можаце перайсці па bioboxes.org, гэта вялікая арганізацыя. І тое, што яны робяць, яны вырабляюць кантэйнеры на аснове навуковых даследаванняў. А потым, калі хтосьці адпраўляе у іх выбарцы, яны могуць запусціць яго. І яна мае ўсе асяроддзе неабходныя для запуску, што алгарытм і атрымання вынікаў. І яны знаходзяць, што яны значна больш верагодна і значна хутчэй стане вярнуцца да вынікаў людзей. І на самай справе, тое, што людзі робяць працуеце свой уласны аналіз на ДНК, адпраўка што і bioboxes, і Затым Биобокс проста бярэ дадзеныя, запускае яго супраць розных з розных кантэйнераў каб убачыць розныя вынікі на аснове розных даследаванняў. Так што гэта вельмі магутны спосаб, у якім даследчыкі можа зрабіць адзін асобнік, які дазваляе іншыя людзі, каб паспрабаваць прайграць і вынікі. Так як вы пачыналі? Мы добра падтрымліваецца на Linux. Так што, калі вы хочаце ўсталяваць небудзь на Linux, Вы выкарыстоўваеце свой стандарт менеджэр пакетаў для ўстаноўкі. Калі вы выкарыстоўваеце Debian, гэта схільныя атрымаць. CentOS з'яўляецца ням. Fedora Red Hat з'яўляецца rpm-- я не памятаю. Ва ўсякім выпадку, усё гэта ёсць. Мы падтрымліваем вялікая разнастайнасць размеркаванняў Linux. Вы можаце праверыць тыя. У нас таксама ёсць варыянты, каб вы можа працаваць на Mac ці Windows. Цяпер Ніка згадвалася раней, што было падтрымліваецца толькі на Linux. Гэта праўда, таму што гэта мае патрэбу ў ядро ​​Linux. Але, вы можаце працаваць у віртуальнай машыне. І тое, што Докер Інструменты робіць, што вы можаце спампаваць, гэта дае вам, што віртуальную машыну. Так проста хутка 48 па-другое, я думаю, што, запампоўка. Вы проста пошук па Докер Скрыню для інструмента, загрузіць яго ў Mac, і гэтая частка ўяўляе Вядома паскорыўся, таму што хто хоча, каб паглядзець спампаваць сігнал? Ўстаноўка Стандартны Mac, і тады вы ўбачыце Джером паклаў у яго пароль. Гэта вельмі цікава. І тады Ён ўсталёўвае цэлая куча інструментаў. І асабліва гэта будзе ўсталяваць камандную радок. І тады можна было ўбачыць Джером тэставання свае вобразы. А затым на аснове гэтага, Вы можаце бачыць, што YouTube лічыць, што Ніка зацікаўлены ў Зорныя вайны, Джымі Кімэла шоў, і я думаю, Элен. Я думаю, што ў мінулым адзін кліп з Элен-шоў. Так Докер Інструменты хоць прыходзіць больш, чым проста машына Докер. Так Докер Машына рэч, якая дапамагае вы стварылі віртуальны машына на АС Windows або Mac-- ваш скрыню вокны ці ваш Mac box-- і дапаможа вам зрабіць прадастаўленне, Але ён таксама пастаўляецца з Рой і складаць, якія прызначаны, каб дапамагчы вам зрабіць вялікі маштабныя разгортвання вашага прыкладання. Так што, калі вы хочаце кіраваць кластары вузлоў, кластары кантэйнераў, Стварэнне і Рой з'яўляюцца спосаб пайсці пра гэта. І, вядома, яна пастаўляецца з Докер Рухавік і Kitematic, што гэта настольнае інтэрфейс. Я павінен таксама згадаць Docker рэестра, якая не ўваходзіць у Toolbox, але гэта спосаб для вас, каб запусціць свой уласны рэестры Docker малюнкаў, як Докер Канцэнтратар, але вы таксама можаце проста выкарыстоўваць Докер-канцэнтратар, як спосаб, каб зрабіць гэта. І, паварот сюжэту, вы бачыце гэта працуе ў кантэйнеры. І гэта, як мы распаўсюдзе нашых слайдаў. Уся гэтая прэзентацыя на самай справе HTML слайд палубе. І гэта працуе ў Кантэйнер, які вы можаце атрымаць по-- Нікола КАБАР: Так, так што гэта працуе поўны працоўны дзень на маім Макс. І я ўяўляю з яго. І вы проста зрабіць Docker пасля ўсталяваць панэль інструментаў. Вы можаце проста зрабіць Docker прабег і атрымаць яго, і выкарыстоўваць слайды. Мано марак: А вось гэта. Такім чынам, мы дзякуем Вам усім за тое. І мы з задавальненнем адкажам на пытанні. Я павінен згадаць, перш чым хто-небудзь пакідае там футболкі там. На жаль кожны, хто глядзіць гэта на Livestream або відэа, але ў нас ёсць Docker футболкі там. І мы ведаем, Docker студэнтаў, і на маю вопыту, прафесара таксама, як бясплатны адзення. Так што дзякуй вам усім за выходзіў. І ісці за намі на Twitter калі вы хочаце, ці не. Я не хвалюе. Таксама прытрымлівайцеся Docker на Twitter. Гэта таксама цікава. А потым гэта ўсё. Docker.com. Дзякуй. [Апладысменты]