1 00:00:00,000 --> 00:00:05,042 >> [За възпроизвеждане на музика] 2 00:00:05,042 --> 00:00:06,000 DAVID Malan: Добре. 3 00:00:06,000 --> 00:00:07,630 Благодаря ви много, че дойдохте. 4 00:00:07,630 --> 00:00:11,850 Това е CS50 семинар на Docker, а технология, която себе си и ние CS50 5 00:00:11,850 --> 00:00:13,392 са започнали да използват от известно време насам. 6 00:00:13,392 --> 00:00:15,766 Така че моето име е Дейвид Malan, I преподава в Харвард Въведение 7 00:00:15,766 --> 00:00:16,671 да Computer Science. 8 00:00:16,671 --> 00:00:18,670 От доста години, ние сме били като ученици 9 00:00:18,670 --> 00:00:20,435 сваляне от страна на клиента виртуални машини 10 00:00:20,435 --> 00:00:22,134 на която те правят проблеми своите набори. 11 00:00:22,134 --> 00:00:24,300 Че сега имаме прехвърлихме в среда облак 12 00:00:24,300 --> 00:00:27,396 че всъщност използва тази технология наречено Docker, така че цялата CS50 13 00:00:27,396 --> 00:00:29,270 учениците вече имат своя собствени Docker контейнери 14 00:00:29,270 --> 00:00:31,180 че скоро ще чуят всички. 15 00:00:31,180 --> 00:00:33,740 >> Освен това на сървъра на CS50 странична клъстер, за много години 16 00:00:33,740 --> 00:00:35,290 сме използвали Cloud сървър на Amazon. 17 00:00:35,290 --> 00:00:37,164 Бяхме работи индивидуално виртуални машини. 18 00:00:37,164 --> 00:00:40,330 Това също, сме започнали да се премине към тези неща, наречени Docker контейнери 19 00:00:40,330 --> 00:00:43,762 така че всички наши приложения са сега напълно изолирани един от друг. 20 00:00:43,762 --> 00:00:46,720 Така че за това и още, позволете ми да запознаем нашите приятели, Нико и Mano, 21 00:00:46,720 --> 00:00:48,574 от самия Docker. 22 00:00:48,574 --> 00:00:49,740 NICOLA Кабарската: Благодаря, Дейвид. 23 00:00:49,740 --> 00:00:51,410 Здравейте всички. 24 00:00:51,410 --> 00:00:54,230 Моето име е Nico и това е Mano. 25 00:00:54,230 --> 00:00:58,260 Ние сме от Docker. 26 00:00:58,260 --> 00:01:02,240 Отиваме да се говори about-- като ви момчета интро да Docker, 27 00:01:02,240 --> 00:01:08,100 и да се надяваме, към края на този разговор можете да реализирате 28 00:01:08,100 --> 00:01:12,890 колко много можете да използвате лекар, за да оксалат си за разработка на приложения 29 00:01:12,890 --> 00:01:14,200 и разгръщане. 30 00:01:14,200 --> 00:01:21,250 >> Така че, ние ще започнем реално бърза с основна информация. 31 00:01:21,250 --> 00:01:22,750 Опишете какво Docker е всичко. 32 00:01:22,750 --> 00:01:25,490 Как работи? 33 00:01:25,490 --> 00:01:27,400 Как е архитектурата? 34 00:01:27,400 --> 00:01:29,360 Ще се правят някои демонстрации. 35 00:01:29,360 --> 00:01:35,070 И Mano ще бъде описва как можете да използвате Docker 36 00:01:35,070 --> 00:01:37,720 и ви дава конкретни стъпки как точно може да стане. 37 00:01:37,720 --> 00:01:41,490 >> Бих се радвал, ако вие може да побере разстояние за вашите въпроси към края. 38 00:01:41,490 --> 00:01:46,800 По този начин, може да съм справяне тези, въпроси в цялата презентация. 39 00:01:46,800 --> 00:01:52,150 Така че ние ще оставим известно време към края на въпроса. 40 00:01:52,150 --> 00:01:55,170 >> Така че просто много бързо, което има всъщност някога е работил върху Docker, 41 00:01:55,170 --> 00:01:56,850 като играе с него? 42 00:01:56,850 --> 00:01:58,000 Awesome. 43 00:01:58,000 --> 00:01:58,520 Готино. 44 00:01:58,520 --> 00:01:59,817 Страхотен. 45 00:01:59,817 --> 00:02:01,525 Така че, аз отивам да започнете с малко история. 46 00:02:01,525 --> 00:02:04,350 47 00:02:04,350 --> 00:02:09,820 Така че още през 90-те и началото на 2000 г., основно 48 00:02:09,820 --> 00:02:16,940 като уеб разработчици, разработчиците на приложения, когато те отидоха да разположи заявление 49 00:02:16,940 --> 00:02:19,350 тя беше вързана върху метал. 50 00:02:19,350 --> 00:02:20,860 Това беше един сървър. 51 00:02:20,860 --> 00:02:22,870 Това беше едно заявление. 52 00:02:22,870 --> 00:02:25,260 >> Традиционно пример ще бъде като комин LAMP, 53 00:02:25,260 --> 00:02:30,630 където всъщност трябваше да отглеждане на басейна на ресурсите. 54 00:02:30,630 --> 00:02:37,110 CPU, памет, диск, мрежа, инсталиране операционна система в началото на това. 55 00:02:37,110 --> 00:02:40,060 Ако сте обслужващи нещо, ако е вие всъщност като уеб сървър, 56 00:02:40,060 --> 00:02:42,470 имате нужда от нещо подобно Apache, за да го обслужва. 57 00:02:42,470 --> 00:02:47,540 >> Ако вашето приложение нуждае от база данни, бекхенд, 58 00:02:47,540 --> 00:02:50,840 бихте инсталирате нещо като MySQL, и така нататък. 59 00:02:50,840 --> 00:02:55,910 И ако имате нужда от време на подготовката, PHPs и PHP Python работа са били там. 60 00:02:55,910 --> 00:02:59,480 И така, ние всъщност трябваше да предприеме тези стъпки, за да 61 00:02:59,480 --> 00:03:02,060 за да получите вашата кандидатура и се изпълняват. 62 00:03:02,060 --> 00:03:08,440 >> Ако е необходимо повече изчислителна мощ вас, основно трябваше да се обадите на вашия Ops човек 63 00:03:08,440 --> 00:03:16,260 или гал да отида и да се багажник на нова част от хардуера, свържете го, 64 00:03:16,260 --> 00:03:19,850 и вие трябва да се повтарят тези, процеси отново и отново. 65 00:03:19,850 --> 00:03:23,680 Така че този процес е относително скъпо. 66 00:03:23,680 --> 00:03:26,080 Определено е много бавен. 67 00:03:26,080 --> 00:03:27,550 >> Това е неефективно. 68 00:03:27,550 --> 00:03:33,890 И в много от случаите, си хардуер се използва пълноценно. 69 00:03:33,890 --> 00:03:38,830 Така че, в края на 90-те и началото на 2000 г., хардуерна виртуализация натъкнах. 70 00:03:38,830 --> 00:03:42,475 И както можете да видите тук, в картина, в общи линии това, което направиха 71 00:03:42,475 --> 00:03:46,390 се абстрахира къпалнята безплатни хардуерни ресурси 72 00:03:46,390 --> 00:03:49,680 и вид на тези, сервира към горните слоеве, 73 00:03:49,680 --> 00:03:52,360 в този случай, гост операционна система. 74 00:03:52,360 --> 00:03:54,940 >> И цялата идея за виртуални машини натъкнах 75 00:03:54,940 --> 00:03:59,110 и че наистина помогна Cloud компютинг, какъвто го познаваме днес. 76 00:03:59,110 --> 00:04:02,730 Така че това, което означаваше, че е да текат множество виртуални машини, които 77 00:04:02,730 --> 00:04:06,720 означаваше няколко купчини, множествена прилагане на същата физическа машина. 78 00:04:06,720 --> 00:04:10,570 79 00:04:10,570 --> 00:04:16,440 >> Това определено помогна с скорост на разгръщането им. 80 00:04:16,440 --> 00:04:17,629 Определено с разходи. 81 00:04:17,629 --> 00:04:22,810 Вие не трябва да отида и да прекарат енергийни, време и ресурси, за да багажник 82 00:04:22,810 --> 00:04:26,210 повече сървъри, за да стигнем до по-голяма изчислителна. 83 00:04:26,210 --> 00:04:30,950 И скоростта на действително привеждане тези ресурси се е много по-бързо. 84 00:04:30,950 --> 00:04:31,450 Страхотен. 85 00:04:31,450 --> 00:04:34,320 >> Така че ние решен глада по света, нали? 86 00:04:34,320 --> 00:04:36,390 Не наистина. 87 00:04:36,390 --> 00:04:42,410 Така че, виртуализация, колкото това е всъщност помогна, решаване на проблема, 88 00:04:42,410 --> 00:04:45,460 тя действително въведени пред много предизвикателства. 89 00:04:45,460 --> 00:04:49,210 The хипервизора определено въведен много на сложност, 90 00:04:49,210 --> 00:04:53,820 работа с тези основни пул от ресурси. 91 00:04:53,820 --> 00:04:57,910 >> Това е по-тежък в смисъл, че преди имахте една операционна система, която 92 00:04:57,910 --> 00:05:01,830 е като три, четири участия на диска. 93 00:05:01,830 --> 00:05:04,230 Сега, ако имате 10 машини на един хардуер 94 00:05:04,230 --> 00:05:09,060 което трябва да се размножават, че на броя на машините. 95 00:05:09,060 --> 00:05:11,440 Това определено е по- скъпо в известен смисъл все още 96 00:05:11,440 --> 00:05:14,430 Трябва да се лицензира за технологията за виртуализация 97 00:05:14,430 --> 00:05:18,210 ако това не е с отворен код. 98 00:05:18,210 --> 00:05:21,120 >> Но, нека да не предприемат всички кредит от виртуализация. 99 00:05:21,120 --> 00:05:27,530 Защото това, което се случи, е, че има много стакове и много софтуер 100 00:05:27,530 --> 00:05:33,900 технологии, които са били активирани от това колко бързо сте били в състояние да получите 101 00:05:33,900 --> 00:05:38,040 до ресурси с бума Cloud. 102 00:05:38,040 --> 00:05:46,675 >> Така че, днес една единствена приложение или услуга може да да се използва някоя от следните Runtimes 103 00:05:46,675 --> 00:05:47,216 или бази данни. 104 00:05:47,216 --> 00:05:50,250 105 00:05:50,250 --> 00:05:56,070 PHP, Python, MySQL, Redis, какво ли не. 106 00:05:56,070 --> 00:05:59,740 Така че има много на сложност на този брой стекове действително да доведе до 107 00:05:59,740 --> 00:06:02,210 една-единствена услуга. 108 00:06:02,210 --> 00:06:07,300 И заедно с това, че имаш много базисни ресурси или инфраструктура 109 00:06:07,300 --> 00:06:15,210 видове, за да тествате разгръщане и в общи линии отведе до производството на тези приложения 110 00:06:15,210 --> 00:06:16,900 че сте се развива. 111 00:06:16,900 --> 00:06:21,950 >> Особено като си отбори имат отглеждани работи по тези приложения, 112 00:06:21,950 --> 00:06:25,310 има много сложност и предизвикателства 113 00:06:25,310 --> 00:06:31,660 които са доведени до гарантира, че на cycle-- основно приложение 114 00:06:31,660 --> 00:06:34,040 цикъл на развитие, е всъщност успешно. 115 00:06:34,040 --> 00:06:40,440 Така че, фактът, че вашата кандидатура работи локално на вашия локален VM 116 00:06:40,440 --> 00:06:47,480 не гарантира, че вашият колега ще очакваме същите резултати. 117 00:06:47,480 --> 00:06:51,330 >> И когато екипът на операциите е участва при вземането на това, което имате 118 00:06:51,330 --> 00:06:54,480 и разгръщане на производството мащаб, също няма гаранция 119 00:06:54,480 --> 00:06:56,730 че това всъщност ще се случи. 120 00:06:56,730 --> 00:07:00,900 Така че това ни оставя с наистина big-- много въпросителни знаци, 121 00:07:00,900 --> 00:07:07,700 пред много предизвикателства в действителност изправени пред подобен обратно в дните. 122 00:07:07,700 --> 00:07:12,280 И това ни напомня за корабната индустрия. 123 00:07:12,280 --> 00:07:14,280 >> Така че корабната индустрия имаше много стоки, 124 00:07:14,280 --> 00:07:16,190 както можете да видите от лявата страна. 125 00:07:16,190 --> 00:07:19,840 И на дясната страна, има много, общо взето, 126 00:07:19,840 --> 00:07:22,160 начини да се доставят тези стоки. 127 00:07:22,160 --> 00:07:26,040 И това, което се случва като двойка хора се събраха и казаха: 128 00:07:26,040 --> 00:07:29,600 ние трябва да се стандартизират как ние всъщност достави тези стоки. 129 00:07:29,600 --> 00:07:33,280 И бум, имате интермодален транспортен контейнер. 130 00:07:33,280 --> 00:07:38,970 >> Така че те се споразумяха за най- общите размери на контейнера. 131 00:07:38,970 --> 00:07:40,160 Как да се справиш с тях. 132 00:07:40,160 --> 00:07:44,560 Какво точно ви трябва метод да ги заредите и да ги разтовари. 133 00:07:44,560 --> 00:07:49,590 И поради това, че наистина помогна на корабната индустрия. 134 00:07:49,590 --> 00:07:55,250 Сега, повече от 90% фокус транспортирани глобално използвате тези контейнери. 135 00:07:55,250 --> 00:08:01,010 И това определено намалява разходите, както и 136 00:08:01,010 --> 00:08:03,400 вредите, дължащи се на корабоплаването. 137 00:08:03,400 --> 00:08:09,660 >> Така че ние приемаме един и същ модел и ние прилага софтуера развитие два ап 138 00:08:09,660 --> 00:08:13,080 архитектура, в смисъл че контейнеризация 139 00:08:13,080 --> 00:08:15,842 взе виртуализация едно ниво нагоре. 140 00:08:15,842 --> 00:08:17,800 Така че вместо да правиш, че на хардуерно ниво, 141 00:08:17,800 --> 00:08:22,060 това стана повече от една операционна виртуализация на системно ниво. 142 00:08:22,060 --> 00:08:26,450 >> И правим това чрез предоставяне на всяка приложение в собствената си лек, 143 00:08:26,450 --> 00:08:31,180 изолирани, изпълнима и преносим, ​​най-важното е, 144 00:08:31,180 --> 00:08:35,049 начин действително да опаковате всичко, което той трябва да се изпълнява. 145 00:08:35,049 --> 00:08:36,100 Навсякъде тя може да бъде стартиран. 146 00:08:36,100 --> 00:08:42,039 Така че, независимо дали сте го използвате за местно отклонение среда, производството си 147 00:08:42,039 --> 00:08:44,490 среда, си постановка или изпитване. 148 00:08:44,490 --> 00:08:47,700 Без значение какво стои в основата инфраструктурата е там, 149 00:08:47,700 --> 00:08:51,410 сте имали функционално работи ап. 150 00:08:51,410 --> 00:08:54,100 151 00:08:54,100 --> 00:09:01,800 >> Така че това е точно това, което в общи линии контейнери направя на този проблем. 152 00:09:01,800 --> 00:09:04,070 Те се отнасят с него тя опаковки по такъв начин, 153 00:09:04,070 --> 00:09:09,490 че да може да се гарантира, че това е разгърнато успешно, без значение къде живее. 154 00:09:09,490 --> 00:09:12,120 Така че, ако ти започваш харесват, Bob тя все още е ОК. 155 00:09:12,120 --> 00:09:17,860 Ако сте се бърка с това, което искам да кажа, Отивам да се разсъждава върху това. 156 00:09:17,860 --> 00:09:20,900 >> И така, как се Docker поберат в тази картина? 157 00:09:20,900 --> 00:09:26,335 Така Docker е отворена платформа лесно, лесно се подчертае, 158 00:09:26,335 --> 00:09:30,500 за изграждане на кораби, тичам, лек преносим самостоятелно 159 00:09:30,500 --> 00:09:33,440 достатъчно контейнери ап навсякъде. 160 00:09:33,440 --> 00:09:37,660 Така че, ако вземете нещо от този Забавление, моля, вземете следното. 161 00:09:37,660 --> 00:09:40,980 >> Ако имате приложението си бягане на местно ниво и сте го развили 162 00:09:40,980 --> 00:09:45,930 при използването на платформата Docker, очаквайте тя да бъде успешно разгърнати. 163 00:09:45,930 --> 00:09:49,380 Без значение какъв е основната инфраструктура. 164 00:09:49,380 --> 00:09:53,830 Така че, ако имате Docker контейнер и това е работа, а след това 165 00:09:53,830 --> 00:09:58,130 толкова дълго, колкото има Docker двигател от друга side-- 166 00:09:58,130 --> 00:10:02,190 ако вашата работа инфраструктура се използва всеки облак, дали 167 00:10:02,190 --> 00:10:06,680 е AWS, или от Google, или Microsoft, или някоя от публични облаци, 168 00:10:06,680 --> 00:10:10,010 или свой собствен облак, или си отворен стак Cloud, или към местния среда. 169 00:10:10,010 --> 00:10:11,970 >> Ако имате двигател бягане, че средства 170 00:10:11,970 --> 00:10:14,537 това ще бъде успешно разгърнати там. 171 00:10:14,537 --> 00:10:16,620 Това ще се работи точно същото поведение 172 00:10:16,620 --> 00:10:21,480 както го архитектурата да бъде. 173 00:10:21,480 --> 00:10:26,080 Така че, ако погледнем at-- Отивам да мине през това, което всъщност 174 00:10:26,080 --> 00:10:29,160 са в основните компоненти на Docker. 175 00:10:29,160 --> 00:10:31,060 >> Така Engine е в основата на Docker. 176 00:10:31,060 --> 00:10:32,770 Той е на мозъка. 177 00:10:32,770 --> 00:10:39,360 Той дирижира сграда, корабоплаването, и разгръщане и управление 178 00:10:39,360 --> 00:10:41,570 самите контейнери. 179 00:10:41,570 --> 00:10:45,160 Ще копаят в това, което прави Engine по-подробно в секунда. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 По принцип, защото Doctor е построена около клиент-сървър архитектури, 182 00:10:51,720 --> 00:10:56,630 така че, за да си взаимодействат с Engine имате нужда от някакъв клиент. 183 00:10:56,630 --> 00:11:01,200 >> Изображенията са шаблоните в които контейнери са компилирани от. 184 00:11:01,200 --> 00:11:06,800 Така изображения са основно просто статични файлове. 185 00:11:06,800 --> 00:11:08,740 Templates и контейнери е всъщност това, което е 186 00:11:08,740 --> 00:11:12,280 се изпълнява по време на изпълнение, които излежава вашата кандидатура 187 00:11:12,280 --> 00:11:15,150 или прави нещо с данните. 188 00:11:15,150 --> 00:11:19,020 >> Registry е адресирано като проблем на как всъщност разпространявате изображенията. 189 00:11:19,020 --> 00:11:23,230 Така че, ако имате нужда да споделите снимка които сте работили, за да си колега 190 00:11:23,230 --> 00:11:27,220 или на екипа за операции, вие го използвате с помощта на Registry. 191 00:11:27,220 --> 00:11:31,720 Можете да изтеглите с отворен код версия на това, че е работил по Docker 192 00:11:31,720 --> 00:11:33,150 и отворете произход. 193 00:11:33,150 --> 00:11:38,040 >> Или можете да използвате Docker помощ, което е най-Cloud версия 194 00:11:38,040 --> 00:11:40,130 до привличане и отблъскване снимки там. 195 00:11:40,130 --> 00:11:41,160 Това е огромно нещо. 196 00:11:41,160 --> 00:11:44,520 Защото там е огромен екосистема около Docker и това е 197 00:11:44,520 --> 00:11:48,960 наистина силно използване на главината. 198 00:11:48,960 --> 00:11:59,780 >> Така че да обобщя тук, това е начина, по който минималистичен Docker клиент на работния процес. 199 00:11:59,780 --> 00:12:04,040 Можете да си взаимодействат с гостоприемника, в този случай това е демоните докер. 200 00:12:04,040 --> 00:12:06,490 Това е същото нещо като Engine. 201 00:12:06,490 --> 00:12:09,690 Можете да направите команди като Docker изграждане, издърпайте, бягай. 202 00:12:09,690 --> 00:12:14,280 И самата Engine отива и върши тези неща. 203 00:12:14,280 --> 00:12:18,010 >> Така че или тя си взаимодейства с Registry да изтегли тези изображения 204 00:12:18,010 --> 00:12:19,670 и слоевете на изображенията. 205 00:12:19,670 --> 00:12:25,030 Дали, ако искате да се мобилизират, бягай контейнери, ги убиват, да ги съборят, 206 00:12:25,030 --> 00:12:25,730 какво ли още не. 207 00:12:25,730 --> 00:12:32,190 Така че това обобщава работния процес на всички тези компоненти. 208 00:12:32,190 --> 00:12:34,710 >> Така че, ако се възползват от всяка компонент сам по себе си. 209 00:12:34,710 --> 00:12:37,690 Така Engine, това е просто един демон. 210 00:12:37,690 --> 00:12:40,800 Ще вид го играе за подкрепа то на Linux, защото го прави 211 00:12:40,800 --> 00:12:44,380 изискват определени функции на ядрото на Linux. 212 00:12:44,380 --> 00:12:48,820 Но Windows работи да правиш едно и също нещо. 213 00:12:48,820 --> 00:12:53,720 Той е трябвало да бъде подкрепена от Windows Server 2016. 214 00:12:53,720 --> 00:13:01,500 >> Така че, отново, отговорностите с двигателя е да, или да, изграждане на изображения. 215 00:13:01,500 --> 00:13:05,340 Издърпайте изображения от докер Hub или свой собствен регистър. 216 00:13:05,340 --> 00:13:07,840 Ако сте приключили с тези снимки или създавате нови изображения, 217 00:13:07,840 --> 00:13:14,770 можете да натиснете тези обратно в регистърни да ги разпределя по други отбори. 218 00:13:14,770 --> 00:13:18,300 >> И се опитва да го съдържа локално и управление на жизнения цикъл контейнери 219 00:13:18,300 --> 00:13:19,260 на местно ниво. 220 00:13:19,260 --> 00:13:22,010 Тя е изградена около HTTP REST API. 221 00:13:22,010 --> 00:13:24,480 Така че технически можете напишете своето собствено клиент 222 00:13:24,480 --> 00:13:31,650 стига да използва HTTP, което е много стандартен механизъм да говоря с Engine 223 00:13:31,650 --> 00:13:33,110 и много други услуги. 224 00:13:33,110 --> 00:13:35,780 И можете да видите от тук, че независимо 225 00:13:35,780 --> 00:13:39,010 от това, което инфраструктурата е, толкова дълго, колкото можете can-- всички 226 00:13:39,010 --> 00:13:42,170 имате нужда е операционна система, Linux, специално. 227 00:13:42,170 --> 00:13:45,460 >> И вие можете да инсталирате Docker Engine отгоре на това и да го използвате 228 00:13:45,460 --> 00:13:48,970 и я оркестрира, общо взето, всички тези ап едно, две, 229 00:13:48,970 --> 00:13:51,530 и трите са действителните контейнери. 230 00:13:51,530 --> 00:13:53,990 Така че това е Engine. 231 00:13:53,990 --> 00:13:58,040 Както споменах по-рано, защото трябва да си взаимодействат с Engine, 232 00:13:58,040 --> 00:13:59,200 има клиента. 233 00:13:59,200 --> 00:14:03,180 >> Но всъщност, когато инсталирате Докер, той се доставя с него. 234 00:14:03,180 --> 00:14:06,110 Така че се инсталира, така че това е една единствена двоичен. 235 00:14:06,110 --> 00:14:11,830 И вие можете да направите местни разговори да си Docker Engine. 236 00:14:11,830 --> 00:14:14,040 Или дистанционното обаждания до отдалечени машини. 237 00:14:14,040 --> 00:14:16,600 238 00:14:16,600 --> 00:14:19,590 Той не използва HTTP, като Споменах по-рано. 239 00:14:19,590 --> 00:14:24,200 Има един GUI клиент, наречен Kitematic от Docker. 240 00:14:24,200 --> 00:14:26,390 И там определено са много други хора 241 00:14:26,390 --> 00:14:29,740 които са изграждането на много GUIs, че основно приложат 242 00:14:29,740 --> 00:14:32,980 някои HTTP призовава да говоря с Engine. 243 00:14:32,980 --> 00:14:35,920 244 00:14:35,920 --> 00:14:39,280 >> Просто някои примерни команди. 245 00:14:39,280 --> 00:14:44,620 Ако го направите Docker версия, че ще ти покажа клиент версия, както и 246 00:14:44,620 --> 00:14:47,030 версията на сървъра. 247 00:14:47,030 --> 00:14:49,500 Ако го направите Docker информация тя ще ви кажа цялата информация 248 00:14:49,500 --> 00:14:54,300 колко контейнери използвате или създадени, колко изображения имате, 249 00:14:54,300 --> 00:14:56,530 и така нататък, и така нататък. 250 00:14:56,530 --> 00:15:01,850 >> Тук имам, в непосредствена близост до Последният бокс, имам Doctor план. 251 00:15:01,850 --> 00:15:04,970 Така че това е как аз съм всъщност създаване на контейнер. 252 00:15:04,970 --> 00:15:08,960 И аз съм го дават ехо Hello World и спи за секунда и какво ли още не. 253 00:15:08,960 --> 00:15:12,830 И можете да видите резултат. Така че това е в ход. 254 00:15:12,830 --> 00:15:16,930 И подобно на Linux к.с., можете да видите всички процеси, и в този случай, 255 00:15:16,930 --> 00:15:18,540 всички контейнери на движение. 256 00:15:18,540 --> 00:15:23,430 Това нечии препращащо към контейнера Току-що създадох. 257 00:15:23,430 --> 00:15:27,560 >> Така че, това е наистина важно, защото, като това може да бъде малко объркващо. 258 00:15:27,560 --> 00:15:33,050 Така изображения са само за четене колекция от файлове, нали? 259 00:15:33,050 --> 00:15:37,000 Те са това, което ни се основава на контейнера. 260 00:15:37,000 --> 00:15:40,340 Но те са само за четене само. 261 00:15:40,340 --> 00:15:44,330 Така че можете да започнете с база изображение. 262 00:15:44,330 --> 00:15:50,180 Тя има тенденция да имитират OS подобни, така че Ubuntu, CentOS, какво ли не база изображение. 263 00:15:50,180 --> 00:15:53,990 И тогава ще започне изграждането на върха че някои слоеве, които ще съставляват 264 00:15:53,990 --> 00:16:00,010 вашия край на изображението, на края доведе тук. 265 00:16:00,010 --> 00:16:03,220 >> И всеки от тези слоеве трябва да има изображение майка 266 00:16:03,220 --> 00:16:06,690 че тя референцията, когато става всъщност иска да създаде. 267 00:16:06,690 --> 00:16:09,922 Те са неизменни, в смисъл че тъй като те са само за четене, 268 00:16:09,922 --> 00:16:11,630 не можеш действително правят промени в тях. 269 00:16:11,630 --> 00:16:17,540 Можете да ги използвате, за да създадете контейнер от изображение, което 270 00:16:17,540 --> 00:16:23,530 Ще се обадя на всички последователни изисквани изображения под него. 271 00:16:23,530 --> 00:16:26,400 >> Можете да направите промени към друг слой, 272 00:16:26,400 --> 00:16:28,810 това е пренаписване слой аз ще говорим за в секунда. 273 00:16:28,810 --> 00:16:31,350 Но всеки от тези слоеве никога не са се променили. 274 00:16:31,350 --> 00:16:34,300 275 00:16:34,300 --> 00:16:38,670 По принцип изображения използват нещо наречена съюз System, UFS File. 276 00:16:38,670 --> 00:16:42,280 И там са различни за съхранение Неуспех при които се използват тази технология. 277 00:16:42,280 --> 00:16:49,430 И какво означава това е, че тя обединява различни файлови системи 278 00:16:49,430 --> 00:16:51,190 за да ги направят да изглежда като един. 279 00:16:51,190 --> 00:16:54,460 >> Така че можете действително, от перспектива заявление, 280 00:16:54,460 --> 00:16:59,570 имате върха на мнение, че предавания всички различни файловата система е необходимо 281 00:16:59,570 --> 00:17:01,120 за това приложение, за да се изпълнява. 282 00:17:01,120 --> 00:17:04,400 Но те са в действителност, на този, те са всъщност в отделни места 283 00:17:04,400 --> 00:17:06,410 и се използва от други съдове, както добре. 284 00:17:06,410 --> 00:17:09,569 285 00:17:09,569 --> 00:17:14,410 >> Така че, както можете да видите тук, че ако започнем с демона на изображението 286 00:17:14,410 --> 00:17:18,619 като основа на изображението, а след това отидем в нея и добавете [? Emacs?] 287 00:17:18,619 --> 00:17:20,720 и след това е още един слой. 288 00:17:20,720 --> 00:17:21,916 И след това се добавя Apache. 289 00:17:21,916 --> 00:17:22,790 Това е още един слой. 290 00:17:22,790 --> 00:17:25,470 И тогава ние прекара контейнер от това. 291 00:17:25,470 --> 00:17:29,760 Всяка от тези снимки, всеки от тези слоеве, 292 00:17:29,760 --> 00:17:35,530 е различна и може да бъде повторно използвани от други контейнери. 293 00:17:35,530 --> 00:17:40,070 >> Ако се вгледате в самите контейнери, те са по някакъв начин като VM-подобни, 294 00:17:40,070 --> 00:17:41,930 но не третира едновременно. 295 00:17:41,930 --> 00:17:49,180 Така че, те не разполагат с технически г. пълна операционна система под тях. 296 00:17:49,180 --> 00:17:52,630 Те използват единната ядрото на операционната система. 297 00:17:52,630 --> 00:17:54,440 И те се изгради отгоре на това. 298 00:17:54,440 --> 00:17:56,250 Те имитират в това как изглеждат. 299 00:17:56,250 --> 00:18:00,710 Те имитират им корен файл система на операционната система. 300 00:18:00,710 --> 00:18:04,930 Но те всъщност не са се размножава. 301 00:18:04,930 --> 00:18:12,080 >> Така че, вместо да се налага неизменими слоеве, последния слой, който е на контейнера 302 00:18:12,080 --> 00:18:14,690 себе си, това е за четене и запис слой. 303 00:18:14,690 --> 00:18:17,350 Това също работи процесите на вашата кандидатура. 304 00:18:17,350 --> 00:18:23,530 И това зависи от долните слоеве. 305 00:18:23,530 --> 00:18:26,730 Всеки контейнер е създаден от изображение. 306 00:18:26,730 --> 00:18:32,450 И този образ може да бъде единична слой или многослойна изображение. 307 00:18:32,450 --> 00:18:37,200 >> И аз искам да се отбележи, че Docker силно използва, 308 00:18:37,200 --> 00:18:40,370 или се основава на Copy-On-Write механизъм. 309 00:18:40,370 --> 00:18:44,350 Така че, всъщност, ако не сте извършване на промени в контейнера, 310 00:18:44,350 --> 00:18:45,930 това няма да се вземат допълнително пространство. 311 00:18:45,930 --> 00:18:49,600 Така че това е в общи линии как си обобщи Copy-On-Write. 312 00:18:49,600 --> 00:18:53,820 Това ще ускори определено времето за зареждане за контейнера. 313 00:18:53,820 --> 00:18:56,300 Защото, ако не сте прави промени в контейнера, 314 00:18:56,300 --> 00:18:57,800 това е използване на това, което вече е там. 315 00:18:57,800 --> 00:19:01,130 316 00:19:01,130 --> 00:19:02,955 >> И така, как тя наистина работи. 317 00:19:02,955 --> 00:19:06,920 318 00:19:06,920 --> 00:19:14,240 Част от това е като, точно сега, тя използва най-малко две ключови ядрото 319 00:19:14,240 --> 00:19:14,820 Характеристика. 320 00:19:14,820 --> 00:19:17,660 И това е в общи линии това, което създаден, че нивото на изолация 321 00:19:17,660 --> 00:19:19,550 за самите контейнери. 322 00:19:19,550 --> 00:19:22,290 Тези функции са именни пространства и cgroups. 323 00:19:22,290 --> 00:19:29,870 Така именни пространства са начин да се създаване на изолирани ресурси, 324 00:19:29,870 --> 00:19:36,290 така че в рамките на самия контейнер, само вие можете да видите някои ресурси. 325 00:19:36,290 --> 00:19:40,030 Такива като интерфейсът на мрежи или на определени потребители или какво ли не. 326 00:19:40,030 --> 00:19:44,160 >> И тези, които са само видими и само достъпен в контейнера. 327 00:19:44,160 --> 00:19:48,290 Cgroup от другата страна границите как се използват тези ресурси. 328 00:19:48,290 --> 00:19:50,950 CPU, памет и диск. 329 00:19:50,950 --> 00:19:53,900 Когато можете да отидете в, I означава това всъщност са 330 00:19:53,900 --> 00:19:57,410 функции, които са разработени по-- те са част от ядрото на Линукс. 331 00:19:57,410 --> 00:20:01,800 Така че те не са били преоткриване от или пресъздадени от Docker. 332 00:20:01,800 --> 00:20:03,770 Docker ги използва. 333 00:20:03,770 --> 00:20:05,560 >> Какво Doctor наистина тук е всъщност го 334 00:20:05,560 --> 00:20:08,680 Orchestrated създаване именни пространства за всеки контейнер 335 00:20:08,680 --> 00:20:13,320 и създаване на cgroups, така че това е абсурдно лесно да създадете контейнери 336 00:20:13,320 --> 00:20:14,870 използване на тези функции. 337 00:20:14,870 --> 00:20:22,910 Разбира се, както е описано по-рано I, Съюз Файлови системи и Copy-On-Напиши наистина 338 00:20:22,910 --> 00:20:26,810 помогне на скоростта и на диск използване на контейнерите. 339 00:20:26,810 --> 00:20:28,917 >> И след като получите вашия ръце около Docker, 340 00:20:28,917 --> 00:20:32,000 започваш да видим колко бързо е да се всъщност се върти контейнери и сълзотворен 341 00:20:32,000 --> 00:20:32,500 да ги надолу. 342 00:20:32,500 --> 00:20:36,060 343 00:20:36,060 --> 00:20:40,230 Така че, ако може да попитам, как може всъщност изгради изображения? 344 00:20:40,230 --> 00:20:45,940 Ние изграждаме образи чрез процес на създаване контейнери и правят промени, променяне 345 00:20:45,940 --> 00:20:50,220 тях, и ги задължат да станат изображение. 346 00:20:50,220 --> 00:20:54,330 >> Така че това е пиле и референтната яйце тук, 347 00:20:54,330 --> 00:20:57,350 защото всички контейнери са от снимки и изображения идват 348 00:20:57,350 --> 00:21:00,270 от извършени контейнери, през по-голямата част. 349 00:21:00,270 --> 00:21:03,830 Има три опции за създаване на изображения. 350 00:21:03,830 --> 00:21:06,580 Отивам да се опише Първият и последният. 351 00:21:06,580 --> 00:21:10,060 Можете или ръчно отида и да тичам контейнера 352 00:21:10,060 --> 00:21:14,280 и да направи тези промени, като теб ще направя по всяко VM 353 00:21:14,280 --> 00:21:17,060 или всяка операционна система, като като инсталиране на нови бинарни файлове, 354 00:21:17,060 --> 00:21:19,370 добавяне на файлови системи, и какво ли още не. 355 00:21:19,370 --> 00:21:22,620 >> И след това да излезете, като можете да видите там. 356 00:21:22,620 --> 00:21:24,330 Аз съм излизане ми контейнер. 357 00:21:24,330 --> 00:21:26,050 И след това, което правя Docker ангажират. 358 00:21:26,050 --> 00:21:28,390 И аз съм извършване това. 359 00:21:28,390 --> 00:21:31,560 Можете да видите, че броят тук е само на UUID, или първите 12 360 00:21:31,560 --> 00:21:32,810 бита на UUID. 361 00:21:32,810 --> 00:21:34,320 Или байтове на UUID. 362 00:21:34,320 --> 00:21:35,770 И тогава аз съм го нарече моя образ. 363 00:21:35,770 --> 00:21:39,510 Така че сега Docker се грижи за записвате всичко, аз го направих 364 00:21:39,510 --> 00:21:42,830 и създаването на новото изображение на базата на това. 365 00:21:42,830 --> 00:21:47,080 366 00:21:47,080 --> 00:21:52,560 >> Аз няма да говоря за архив,, но има начин можете да получите един единствен, 367 00:21:52,560 --> 00:21:58,200 Създаване на единна, или да направите еднократна слой на изображението с помощта на архиви. 368 00:21:58,200 --> 00:22:02,650 Какво съм аз ще говоря за това и това, което е най-често се използва днес, 369 00:22:02,650 --> 00:22:03,270 е Dockerfile. 370 00:22:03,270 --> 00:22:07,260 Коя е технически първият стъпка автоматизиран от самия Docker. 371 00:22:07,260 --> 00:22:11,920 Така Dockerfiles са неща, които сте ще видим в много GitHub репо сделки 372 00:22:11,920 --> 00:22:13,150 днес. 373 00:22:13,150 --> 00:22:16,420 Това е основно само една текстов файл, описващ 374 00:22:16,420 --> 00:22:19,780 точно как да се изгради един образ. 375 00:22:19,780 --> 00:22:25,540 >> И за всяка линия, тя всъщност създава контейнера, изпълнява тази линия, 376 00:22:25,540 --> 00:22:30,480 ангажира, че в контейнер нов имидж, а вие, общо взето, 377 00:22:30,480 --> 00:22:36,160 го използвате за всички последващи операции докато не стигнем до последното изображение. 378 00:22:36,160 --> 00:22:39,260 Което е в общи линии в крайна цел тук, на края. 379 00:22:39,260 --> 00:22:42,420 И след като сте exec-- след като сте напишете вашето Dockerfile, които 380 00:22:42,420 --> 00:22:46,750 е чисто в текста, ти направя Docker изграждане и името на изображението. 381 00:22:46,750 --> 00:22:50,000 >> И ти посоча, че това е където Dockerfile е. 382 00:22:50,000 --> 00:22:56,570 И вие можете да очаквате да видите моето изображение като изображение, че имате локално. 383 00:22:56,570 --> 00:22:59,100 Така че това е само визуален пример за това, което става. 384 00:22:59,100 --> 00:23:00,820 Можете да започнете с база изображение. 385 00:23:00,820 --> 00:23:05,150 Можете тичам, че в контейнер, който не променя основната самото изображение. 386 00:23:05,150 --> 00:23:08,310 Но вместо да създава пренапише слой върху нея 387 00:23:08,310 --> 00:23:10,340 , където можете да направите промените, в които да се ангажират 388 00:23:10,340 --> 00:23:15,050 и вие повторете процеса, докато можете да получите до крайната си образ. 389 00:23:15,050 --> 00:23:20,980 >> И по този начин, всеки друг строителство процес може да използва същите слоеве 390 00:23:20,980 --> 00:23:23,870 и same-- основно Docker кешира тези слоеве. 391 00:23:23,870 --> 00:23:30,040 Така че, ако аз правя същото точната процес, но вместо да инсталирате PHP, 392 00:23:30,040 --> 00:23:31,540 Аз съм инсталиране на Python. 393 00:23:31,540 --> 00:23:34,210 Това ще използвате Apache и Ubuntu. 394 00:23:34,210 --> 00:23:39,570 Така че по този начин можете да започнете използването вашия диск. 395 00:23:39,570 --> 00:23:42,330 Това е използване на кеш паметта и налични изображения там. 396 00:23:42,330 --> 00:23:45,320 397 00:23:45,320 --> 00:23:48,840 >> В последната част е Registry, която е как да разпространявате вашите изображения. 398 00:23:48,840 --> 00:23:52,710 И, както споменах по-рано, има Cloud версията на играта, 399 00:23:52,710 --> 00:23:54,290 което е Docker Hub. 400 00:23:54,290 --> 00:23:57,550 Можете да отидете и да проучи много, основно 401 00:23:57,550 --> 00:24:04,900 това е публична продукт SAS, че Все още можете да имате частни снимки, 402 00:24:04,900 --> 00:24:06,590 но има много публични образи. 403 00:24:06,590 --> 00:24:10,580 Това всъщност е неограничен, можете да бутнете неограничени публични образи там. 404 00:24:10,580 --> 00:24:13,730 И това е как можете да сътрудничи с вашия екип. 405 00:24:13,730 --> 00:24:17,159 >> Можете просто да ги посоча по вас репо и те могат да го изтеглите или изображението 406 00:24:17,159 --> 00:24:18,200 и те могат да го изтеглите. 407 00:24:18,200 --> 00:24:21,140 408 00:24:21,140 --> 00:24:24,990 Така че достатъчно с приказки. 409 00:24:24,990 --> 00:24:29,110 Кой иска да види някои демонстрации недвижими бърз? 410 00:24:29,110 --> 00:24:31,330 Всичко е наред. 411 00:24:31,330 --> 00:24:34,050 Така че тук имам. 412 00:24:34,050 --> 00:24:37,480 Ca вие виждате на екрана си? 413 00:24:37,480 --> 00:24:38,390 Всичко е наред. 414 00:24:38,390 --> 00:24:45,810 >> Така че имам Docker работи тук, така че аз да проверите it's-- Това е версията 415 00:24:45,810 --> 00:24:47,510 на Docker, че е движение. 416 00:24:47,510 --> 00:24:49,320 Може направя Docker информация. 417 00:24:49,320 --> 00:24:55,730 Проверете цялата информация за това колко те са изображения, и така нататък, и така нататък. 418 00:24:55,730 --> 00:24:58,890 Docker PS, няма нищо бягане. 419 00:24:58,890 --> 00:25:00,570 Свръхдълги тези. 420 00:25:00,570 --> 00:25:06,370 >> Така че първото нещо, което искам да направя е шоу вие колко лесно можете да стартирате контейнер. 421 00:25:06,370 --> 00:25:09,350 Така че красотата около Doctor тече, ако действително 422 00:25:09,350 --> 00:25:14,700 не се намери един образ на местно ниво, по подразбиране тя разговаря с Doctor Hub 423 00:25:14,700 --> 00:25:17,240 и се опитва да го намерите там и тя се сваля за вас. 424 00:25:17,240 --> 00:25:22,820 Така че това включва Docker дръпнете команда, естествено. 425 00:25:22,820 --> 00:25:26,130 >> Така че, ако аз правя Docker тичам, здравей свят. 426 00:25:26,130 --> 00:25:28,890 427 00:25:28,890 --> 00:25:31,200 Така че, от една страна, че ще ходи да се опита да го намерите. 428 00:25:31,200 --> 00:25:36,140 В противен случай, както можете да видите тук, тя не може да го намерите на местно ниво. 429 00:25:36,140 --> 00:25:41,830 Точно сега той просто извади два слоя които направиха този образ и аз се завтече. 430 00:25:41,830 --> 00:25:45,440 The здравей-света е само в общи линии изходи, какво сте направили. 431 00:25:45,440 --> 00:25:47,680 Така че това е най-лесният, един от най-лесните примери. 432 00:25:47,680 --> 00:25:53,840 Така че всъщност аз просто избяга и прекратено контейнера бързо. 433 00:25:53,840 --> 00:25:59,500 >> Ако искам да run-- и между другото, ако е Искам на време, че точно така че да знаете, 434 00:25:59,500 --> 00:26:03,572 това е колко време е необходимо, за да всъщност се върти и да го съдържа. 435 00:26:03,572 --> 00:26:05,030 Ние сме го измерване в милисекунди. 436 00:26:05,030 --> 00:26:10,600 Така че можете да видите колко това може действително да ви помогне не само в тестването, 437 00:26:10,600 --> 00:26:13,200 но и дори разполагане. 438 00:26:13,200 --> 00:26:17,221 Така че това е един бърз бележка за това. 439 00:26:17,221 --> 00:26:18,970 Следващото нещо, което съм ще направя, е всъщност 440 00:26:18,970 --> 00:26:21,930 тичам изображение Вече съм подготвен. 441 00:26:21,930 --> 00:26:24,460 Така Docker план. 442 00:26:24,460 --> 00:26:27,240 -d е само на знамето да кажа му да работи във фонов режим. 443 00:26:27,240 --> 00:26:30,290 И -p поставя определени пристанища. 444 00:26:30,290 --> 00:26:32,670 Тъй като по подразбиране, на контейнери са изолирани, 445 00:26:32,670 --> 00:26:36,080 така че трябва да се уточни точно как може да има достъп до тях. 446 00:26:36,080 --> 00:26:41,150 И в този случай, че казвам Docker да съставят карта на случаен порт на хоста 447 00:26:41,150 --> 00:26:44,560 до определена пристанище в рамките на самия контейнер. 448 00:26:44,560 --> 00:26:47,130 449 00:26:47,130 --> 00:26:56,460 И това е в общи линии, където image-- надявам се това е правилният. 450 00:26:56,460 --> 00:27:01,780 >> Така че го прави паралелни сваляния всеки на тези слоеве, както можете да видите тук. 451 00:27:01,780 --> 00:27:06,949 Това са на слоевете вземане крайния образ, който аз построих. 452 00:27:06,949 --> 00:27:08,115 Това ще отнеме секунди. 453 00:27:08,115 --> 00:27:11,290 454 00:27:11,290 --> 00:27:12,370 И готово. 455 00:27:12,370 --> 00:27:16,590 >> Така че сега, ако аз правя докер к.с., че трябва видите нещо, което се движи. 456 00:27:16,590 --> 00:27:22,250 Аз трябва да видите ID, изображението че това се основава на разстояние, 457 00:27:22,250 --> 00:27:23,880 и командването, че е бил екзекутиран. 458 00:27:23,880 --> 00:27:28,720 И как да получите достъп до него е основно и да отидете до това пристанище. 459 00:27:28,720 --> 00:27:33,240 Така че аз ще отида to-- това е аз съм го изпълнява на AWS. 460 00:27:33,240 --> 00:27:37,150 Отивам да отидете на 32769. 461 00:27:37,150 --> 00:27:37,650 Ами сега. 462 00:27:37,650 --> 00:27:40,495 463 00:27:40,495 --> 00:27:41,120 И ето го. 464 00:27:41,120 --> 00:27:44,550 >> Така че това всъщност е просто уеб услуга, която показва, 465 00:27:44,550 --> 00:27:46,240 който контейнер тя е се сервира от. 466 00:27:46,240 --> 00:27:50,450 Така че можете да видите, че тя е от контейнер a9f. 467 00:27:50,450 --> 00:27:52,850 И тук това е най- Име на контейнера. 468 00:27:52,850 --> 00:27:56,550 Така че вие ​​може да видите колко бързо беше да всъщност не само дръпне, но също 469 00:27:56,550 --> 00:28:00,440 разположи този контейнер. 470 00:28:00,440 --> 00:28:05,070 >> Сега следващата стъпка е да се гледам в Dockerfiles 471 00:28:05,070 --> 00:28:09,430 и как можем действително изграждане на нови изображения. 472 00:28:09,430 --> 00:28:15,250 Аз съм просто ще отида да клонинг, а Пробата Dockerfile въз основа на по-ранната 473 00:28:15,250 --> 00:28:17,755 диаграма, онзи, на Apache и PHP. 474 00:28:17,755 --> 00:28:26,740 475 00:28:26,740 --> 00:28:28,140 Надяваме Спомням си моя репо. 476 00:28:28,140 --> 00:28:36,410 477 00:28:36,410 --> 00:28:38,750 >> Така че аз имам хранилище в момента. 478 00:28:38,750 --> 00:28:43,080 И ти започваш да се види това много реално. 479 00:28:43,080 --> 00:28:45,110 Аз не се инсталира дърво. 480 00:28:45,110 --> 00:28:48,700 >> Така че основно ти започваш да се види как изходен код документация около 481 00:28:48,700 --> 00:28:51,240 го, а след това и на Dockerfile как всъщност да ги пакетират. 482 00:28:51,240 --> 00:28:57,970 Така че това е само една проба PHP че отеква здравей CS50. 483 00:28:57,970 --> 00:29:01,550 >> Така че, ако искам да го стартирате, Ще направя докер строителство. 484 00:29:01,550 --> 00:29:03,370 Аз трябва да го изградим на първо място. 485 00:29:03,370 --> 00:29:12,420 Отивам да го наречете demo_cs50. 486 00:29:12,420 --> 00:29:16,470 И трябва маркер към него също. 487 00:29:16,470 --> 00:29:19,802 Така че нека да го наречем v1 Дот. 488 00:29:19,802 --> 00:29:21,760 Така, както е описано по-рано I, какво правя днес 489 00:29:21,760 --> 00:29:26,840 е Казвам Docker да отида ползване that-- всъщност, съжалявам, моя лош. 490 00:29:26,840 --> 00:29:29,450 491 00:29:29,450 --> 00:29:32,500 Ние не ги накарайте да поглеждат в самата Dockerfile. 492 00:29:32,500 --> 00:29:39,020 Така че единствените неща в тук са index.php, както и файла Readme 493 00:29:39,020 --> 00:29:39,810 и Dockerfile. 494 00:29:39,810 --> 00:29:44,600 >> Така че, ако да разгледаме най- на Dockerfile, така че това е 495 00:29:44,600 --> 00:29:47,150 много подобно на това, Описах по-рано. 496 00:29:47,150 --> 00:29:51,220 Това е просто един куп стъпки, които Docker изпълнява 497 00:29:51,220 --> 00:29:56,330 чрез създаване и събаряне контейнери и [? броене?] ги в образ. 498 00:29:56,330 --> 00:29:59,570 >> И в общи линии можеш see-- [недоловим] тя here-- 499 00:29:59,570 --> 00:30:04,340 но това е от местната репо. 500 00:30:04,340 --> 00:30:06,410 Това ще отидете и вземете index.php. 501 00:30:06,410 --> 00:30:10,970 Така че това е единственият източник код, който всъщност са част от вашата кандидатура. 502 00:30:10,970 --> 00:30:16,800 Всичко това са основно операционна система ВиК, 503 00:30:16,800 --> 00:30:21,460 избирането на правилните пакети и Apache, PHP и, и какво ли още не. 504 00:30:21,460 --> 00:30:26,950 Но това всъщност се index.php и извършване на контейнера, 505 00:30:26,950 --> 00:30:28,210 в образа. 506 00:30:28,210 --> 00:30:33,120 >> Така че, ако отидете напред и да стартирате команда, като направите следното, 507 00:30:33,120 --> 00:30:36,155 това е going-- всъщност, това може да отнеме малко. 508 00:30:36,155 --> 00:30:40,870 509 00:30:40,870 --> 00:30:42,455 Надяваме се, че не отнеме твърде много време. 510 00:30:42,455 --> 00:30:45,129 511 00:30:45,129 --> 00:30:46,170 Така че можете да видите стъпките. 512 00:30:46,170 --> 00:30:49,320 И аз Ви препоръчваме да отидете обратно вкъщи днес и да я изпробвате. 513 00:30:49,320 --> 00:30:51,280 И Mano ще опише как точно се прави това. 514 00:30:51,280 --> 00:30:57,810 Но това е наистина страхотно да се види точно какво се случва зад кулисите. 515 00:30:57,810 --> 00:31:02,420 Но това е абсурдно лесно да се изгради снимки и да ги разположи използвайки Docker. 516 00:31:02,420 --> 00:31:12,170 517 00:31:12,170 --> 00:31:14,050 >> То е като малко дълго, отколкото очаквах. 518 00:31:14,050 --> 00:31:29,085 519 00:31:29,085 --> 00:31:32,690 >> Нека видим какво се случва, когато you-- охлади. 520 00:31:32,690 --> 00:31:36,260 Така че, както виждате, всяка от тези стъпки представляват линии в Dockerfile. 521 00:31:36,260 --> 00:31:42,570 И това показва, че тук успешно изгради този образ. 522 00:31:42,570 --> 00:31:46,480 >> Така че, ако го направя Docker изображения, аз отивам да виж всички изображения, които имам на местно ниво. 523 00:31:46,480 --> 00:31:52,160 И един от тях се нарича ми потребителско име, както и името на изображението, 524 00:31:52,160 --> 00:31:56,050 и representing-- таг основно това е маркер версия. 525 00:31:56,050 --> 00:31:58,040 >> Така че сега, ако искам да тичам това, което правя докер план. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 И аз просто искам да направя -d -Р. Смятате v1. 528 00:32:14,960 --> 00:32:18,500 Така че мога да видя сега, че имам две контейнери, работещи, този, който аз просто 529 00:32:18,500 --> 00:32:21,230 създаден и Здравейте Docker една, която аз имам последната. 530 00:32:21,230 --> 00:32:24,320 >> И можете да видите тук, че тя друг порт възложени. 531 00:32:24,320 --> 00:32:30,710 Така че, ако отида в една и съща ПР, но да я възложи различен port-- се надявам, че не го направих. 532 00:32:30,710 --> 00:32:33,060 Така че сега това е заявка че аз просто разгърнати. 533 00:32:33,060 --> 00:32:35,980 534 00:32:35,980 --> 00:32:43,900 >> Ако искате да направите промени, I може бързо да редактирате изходния код 535 00:32:43,900 --> 00:32:49,050 и направете следното. 536 00:32:49,050 --> 00:32:55,170 Нека да направим здравей Харвард. 537 00:32:55,170 --> 00:32:57,989 Така че сега какво става да се случи, е, че аз съм 538 00:32:57,989 --> 00:32:59,905 отивам да го маркирате с различна version-- о, 539 00:32:59,905 --> 00:33:03,080 Не това guy-- го маркирате с различна версия. 540 00:33:03,080 --> 00:33:05,735 И ти започваш да се see-- направите вие ​​очаквате 541 00:33:05,735 --> 00:33:11,020 тя да поеме същия период от време да се изгради втори път или не? 542 00:33:11,020 --> 00:33:14,470 Добре, а някой знае ли защо? 543 00:33:14,470 --> 00:33:15,020 Говори. 544 00:33:15,020 --> 00:33:16,350 >> АУДИТОРИЯ: [недоловим] 545 00:33:16,350 --> 00:33:19,830 >> NICOLA Кабарската: Това е основно ние само се промени един от по-късните етапи. 546 00:33:19,830 --> 00:33:23,110 И поради това, че ще използвате кеш и да използвате всеки от тези слоеве. 547 00:33:23,110 --> 00:33:27,080 И това е наистина някои от убийствени характеристики на Docker 548 00:33:27,080 --> 00:33:32,930 е как всъщност използва и повторно използване, приемащи над 549 00:33:32,930 --> 00:33:36,950 вашия диск за една и съща Точните парчета информация. 550 00:33:36,950 --> 00:33:40,700 >> Така че, ако ние правим едно и също нещо, отне само няколко секунди. 551 00:33:40,700 --> 00:33:48,860 Ако искаме да redeploy-- така че сега Аз трябва да има три контейнера. 552 00:33:48,860 --> 00:33:56,160 Но това се е връчва на the-- седем един. 553 00:33:56,160 --> 00:33:58,860 Така че сега това е третата контейнера. 554 00:33:58,860 --> 00:34:02,580 Всеки разбере това, което аз просто направих тук? 555 00:34:02,580 --> 00:34:06,320 >> Така че сега, ако искате да споделите тази контейнер недвижими бърза с приятелите си, 556 00:34:06,320 --> 00:34:14,840 можете да направите, просто докер Избутайте Име на съда, да се надяваме. 557 00:34:14,840 --> 00:34:20,130 Така че сега то се случва да го натиснете to-- аз не съм подписан тук. 558 00:34:20,130 --> 00:34:33,511 559 00:34:33,511 --> 00:34:34,219 Съжалявам за това. 560 00:34:34,219 --> 00:34:39,219 Но аз няма да ходя при отстраняването на това сега. 561 00:34:39,219 --> 00:34:42,780 Но в общи линии, че една команда е само качвах го бутам. 562 00:34:42,780 --> 00:34:45,670 И ти започваш да бъде в състояние да я види, ако отидете на Docker Hub 563 00:34:45,670 --> 00:34:48,587 И вие влезете в системата, ти си ще бъде в състояние да го види. 564 00:34:48,587 --> 00:34:50,420 И тогава можете просто посоча, който се случва 565 00:34:50,420 --> 00:34:52,750 да използвате този образ да отида и да го дръпнете. 566 00:34:52,750 --> 00:34:55,460 И те могат да го използват. 567 00:34:55,460 --> 00:34:57,760 >> С това, надявам се I вид демонстрирана 568 00:34:57,760 --> 00:35:01,230 колко лесно е да се работи с Docker. 569 00:35:01,230 --> 00:35:06,610 И аз съм просто ще я върна Mano. 570 00:35:06,610 --> 00:35:11,760 И той ще го вземе от тук. 571 00:35:11,760 --> 00:35:13,990 >> Мано MARKS: Добре Благодаря, благодаря Нико. 572 00:35:13,990 --> 00:35:18,700 573 00:35:18,700 --> 00:35:20,614 И какво? 574 00:35:20,614 --> 00:35:24,410 Така че едно от нещата, които съм Исках да направите е да се съберат 575 00:35:24,410 --> 00:35:28,820 защо това е important-- защо Docker и защо 576 00:35:28,820 --> 00:35:33,000 контейнери са такива, на важно ново строителство, 577 00:35:33,000 --> 00:35:36,890 нов начин за правене на софтуер всъщност. 578 00:35:36,890 --> 00:35:41,300 >> И преди да го направя, аз ще Просто представим няколко статистики. 579 00:35:41,300 --> 00:35:42,790 Аз няма да се чете всичко това. 580 00:35:42,790 --> 00:35:52,540 Но това ви показва много за това как популярен това е в общността. 581 00:35:52,540 --> 00:35:56,310 Основни технологии на докер са с отворен код. 582 00:35:56,310 --> 00:36:03,560 Така че това е Docker Engine, Compose, Swarm, един куп други неща 583 00:36:03,560 --> 00:36:05,210 е всичко, с отворен код. 584 00:36:05,210 --> 00:36:10,590 И ние имаме, какво съм направил казват, 1300 сътрудници. 585 00:36:10,590 --> 00:36:15,630 Вие виждате сега, ако се вгледате в брой работни места, за последен път 586 00:36:15,630 --> 00:36:19,640 ще погледна, тя е около 43 000 работни места отвори специално споменава 587 00:36:19,640 --> 00:36:22,230 познаване Docker. 588 00:36:22,230 --> 00:36:26,450 Стотици милиони изображения имат била изтеглена от Docker Hub. 589 00:36:26,450 --> 00:36:31,870 А, добре, много по-големи статистики. 590 00:36:31,870 --> 00:36:34,770 >> За тези, които са любопитни, тя беше първоначално написан на Python 591 00:36:34,770 --> 00:36:37,730 и след това се пренаписва в Go. 592 00:36:37,730 --> 00:36:40,320 И това е било само отворите source-- това е само 593 00:36:40,320 --> 00:36:44,950 бил освободен за около 2 и 1/2 години, което означава, че в 2 и 1/2 години, 594 00:36:44,950 --> 00:36:48,020 сме виждали огромно количество на растеж и значение 595 00:36:48,020 --> 00:36:50,190 на този в общността. 596 00:36:50,190 --> 00:36:52,400 И така, аз искам да говоря малко за това защо. 597 00:36:52,400 --> 00:36:54,940 598 00:36:54,940 --> 00:36:59,880 >> Така че просто да повторя някои от Ключови точки Нико, Docker е бърз. 599 00:36:59,880 --> 00:37:00,630 Това е портативен. 600 00:37:00,630 --> 00:37:02,500 Това е възпроизводим. 601 00:37:02,500 --> 00:37:06,130 И това създава стандартна среда. 602 00:37:06,130 --> 00:37:13,370 >> И what-- това е моят креп ликвидиране монолити slide-- какво 603 00:37:13,370 --> 00:37:17,990 тя помага на хората да правят, които много от софтуерната индустрия 604 00:37:17,990 --> 00:37:21,400 Започнах да правя в началото на 2000 г., се движат в 605 00:37:21,400 --> 00:37:24,200 от тях монолитна единични приложения 606 00:37:24,200 --> 00:37:28,590 където всеки зависимостта трябваше да е тества преди цялата ап трябваше 607 00:37:28,590 --> 00:37:31,280 да бъдат разгърнати, които може да означава един сайт 608 00:37:31,280 --> 00:37:36,240 имам само веднъж разгърнати всеки три месеца, или повече, 609 00:37:36,240 --> 00:37:42,650 до много по-услуги архитектура, ориентирана 610 00:37:42,650 --> 00:37:46,090 или componentized различен тип на прилагане архитектура. 611 00:37:46,090 --> 00:37:48,610 И така, който позволява тези вид архитектури 612 00:37:48,610 --> 00:37:52,250 които се възползват от Docker да се движи в тези три 613 00:37:52,250 --> 00:37:58,450 Основните области на развитие, които пише развитие действителната Ви код, 614 00:37:58,450 --> 00:38:00,140 тестване на кода си, и да го разгръщане. 615 00:38:00,140 --> 00:38:03,000 616 00:38:03,000 --> 00:38:05,420 >> Така че, защо това е важно? 617 00:38:05,420 --> 00:38:09,920 Ако сте A-- нека дам един пример. 618 00:38:09,920 --> 00:38:13,600 Ако сте един сайт разработчик устройство, вие сте 619 00:38:13,600 --> 00:38:19,020 разработване на уеб сайт, който е базиран на база данни, която David произведени тук. 620 00:38:19,020 --> 00:38:20,490 Съжаляваме Дейвид, аз ви вика. 621 00:38:20,490 --> 00:38:22,984 622 00:38:22,984 --> 00:38:24,900 Ако искате да разположи цялото това нещо, щеше 623 00:38:24,900 --> 00:38:28,870 трябва да изчакаме по традиционен монолитна разработка на софтуер 624 00:38:28,870 --> 00:38:32,710 среда, вие ще трябва да почака докато той се прави с базата данни 625 00:38:32,710 --> 00:38:36,030 преди в действителност можете да направите всякакви промени в уебсайта си. 626 00:38:36,030 --> 00:38:40,900 Ще трябва да се преразпределят на Цялата заявление да го направят. 627 00:38:40,900 --> 00:38:45,490 >> И това, което ви помага да направите Docker е всеки лице, работа по различни компоненти 628 00:38:45,490 --> 00:38:52,990 и да ги актуализира, тъй като излизат, просто направи сигурни, че връзките остават същите. 629 00:38:52,990 --> 00:38:56,350 Така че това, което той е направил е това е изместен хората 630 00:38:56,350 --> 00:39:03,950 от извършването на тези масивна монолитна архитектурния софтуер, който 631 00:39:03,950 --> 00:39:07,610 разгърнати всеки месец до непрекъснат интеграция и непрекъснато развитие 632 00:39:07,610 --> 00:39:08,490 заобикаляща среда. 633 00:39:08,490 --> 00:39:12,580 >> Сега това не е единствена за Docker, но Docker го прави много по-лесно, 634 00:39:12,580 --> 00:39:16,620 което означава, че сте в общи линии постоянно разполагане. 635 00:39:16,620 --> 00:39:20,690 Ние говорим за предприятия, които са разгръщане на приложения обществени настилка 636 00:39:20,690 --> 00:39:30,180 хиляди пъти на ден, защото те виждат стойността само на вземане 637 00:39:30,180 --> 00:39:33,740 малки промени и докато тъй като тя преминава през изпитанията, 638 00:39:33,740 --> 00:39:35,900 позволим това да изляза в производство. 639 00:39:35,900 --> 00:39:41,890 Нико винаги ми казваше по-рано, че в много среди, 640 00:39:41,890 --> 00:39:46,580 стандартната жизнения цикъл на контейнер се измерва в секунди, 641 00:39:46,580 --> 00:39:50,460 като има предвид, виртуална машина може да се измерва в месеца. 642 00:39:50,460 --> 00:39:54,590 643 00:39:54,590 --> 00:39:58,690 >> Исках да вземе леко включите тук, защото аз съм 644 00:39:58,690 --> 00:40:00,170 в учебно заведение. 645 00:40:00,170 --> 00:40:06,670 Исках да дам един пример за това как това работи в учебно изследвания 646 00:40:06,670 --> 00:40:07,670 ситуация. 647 00:40:07,670 --> 00:40:10,930 Така че има една организация наречени bioboxes. 648 00:40:10,930 --> 00:40:15,450 Bioboxes прави ДНК анализ на изследователи. 649 00:40:15,450 --> 00:40:22,029 >> Сега това, което намерих е, че когато а researcher-- и това не е 650 00:40:22,029 --> 00:40:24,070 по вина на всеки отделен researcher-- но когато 651 00:40:24,070 --> 00:40:31,240 изследовател разгърнати алгоритъм за анализиране, 652 00:40:31,240 --> 00:40:36,670 В определен начин, ДНК проба, те ще пишат софтуера, 653 00:40:36,670 --> 00:40:39,980 публикува, че, може би, за да GitHub или някъде другаде, 654 00:40:39,980 --> 00:40:42,680 и след това те са били извършени. 655 00:40:42,680 --> 00:40:47,440 >> Ами проблемът е, че тя Не е задължително да възпроизведе. 656 00:40:47,440 --> 00:40:51,610 Защото, за да се разбере софтуера, 657 00:40:51,610 --> 00:40:54,830 те ще бъдат създадени за Точната среда за разработка 658 00:40:54,830 --> 00:41:00,460 изследовател, че се използва, обикновено си лаптоп или сървър, или данни 659 00:41:00,460 --> 00:41:04,280 център, който те използват. 660 00:41:04,280 --> 00:41:11,530 И следователно, че е много трудно да възпроизвежда резултатите от научните изследвания, когато 661 00:41:11,530 --> 00:41:16,910 анализиране на ДНК проби, за да потърсите в неща като incidence-- 662 00:41:16,910 --> 00:41:23,830 сравни честотата на сърдечните пристъпи въз основа на определени гени, присъстващи, 663 00:41:23,830 --> 00:41:28,900 например, или риск от рак, или някоя от другите видове неща. 664 00:41:28,900 --> 00:41:33,900 >> Така че това, което направиха, вместо беше те започнаха създаването на контейнери. 665 00:41:33,900 --> 00:41:39,380 И вие можете да отидете на bioboxes.org, това е голяма организация. 666 00:41:39,380 --> 00:41:43,900 И това, което те правят, е те произвеждат контейнери, основани на научни изследвания. 667 00:41:43,900 --> 00:41:46,840 И тогава, когато някой изпраща в тяхната проба, те могат да го стартирате. 668 00:41:46,840 --> 00:41:52,770 И това е всичко, на околната среда необходима за работата, която алгоритъм 669 00:41:52,770 --> 00:41:55,370 и получаване на резултатите. 670 00:41:55,370 --> 00:41:58,250 И те намери, че те са Много по-вероятно и много по- 671 00:41:58,250 --> 00:42:01,300 по-бързо в състояние да върне резултати за хората. 672 00:42:01,300 --> 00:42:06,860 >> И в действителност, това, което правят хората използвате собствения си анализ на ДНК, 673 00:42:06,860 --> 00:42:11,220 изпращане, че, за да bioboxes, и След biobox просто взема данните, 674 00:42:11,220 --> 00:42:15,350 той работи срещу сорта на различни контейнери 675 00:42:15,350 --> 00:42:19,030 за да видите различни резултати въз основа на различни изследвания. 676 00:42:19,030 --> 00:42:21,860 Така че това е един много мощен начин, в което изследователите 677 00:42:21,860 --> 00:42:28,070 може да направи една единствена инстанция, която позволява други хора, за да се опита и да се възпроизвеждат 678 00:42:28,070 --> 00:42:28,650 резултатите. 679 00:42:28,650 --> 00:42:31,710 680 00:42:31,710 --> 00:42:34,360 >> Е, как да започна? 681 00:42:34,360 --> 00:42:37,950 682 00:42:37,950 --> 00:42:39,800 Ние сме добре поддържа на Linux. 683 00:42:39,800 --> 00:42:43,070 Така че, ако искате да инсталирате нищо на Linux, 684 00:42:43,070 --> 00:42:45,620 използвате стандартната ви управление на пакетите за инсталиране. 685 00:42:45,620 --> 00:42:47,600 Ако сте с помощта на Debian, това е ап получите. 686 00:42:47,600 --> 00:42:50,500 CentOS е Yum. 687 00:42:50,500 --> 00:42:53,500 Fedora Red Hat е rpm-- аз не си спомням. 688 00:42:53,500 --> 00:42:56,070 Както и да е, това е всичко, което съществува. 689 00:42:56,070 --> 00:42:59,610 Ние подкрепяме по-голямо разнообразие на Линукс дистрибуции. 690 00:42:59,610 --> 00:43:01,150 Можете да проверите тези навън. 691 00:43:01,150 --> 00:43:06,370 >> Ние също имаме възможности, така че може да работи на Mac или Windows. 692 00:43:06,370 --> 00:43:10,670 Сега Нико споменах по-рано, че тя бе подкрепена само от Linux. 693 00:43:10,670 --> 00:43:18,180 Това е вярно, тъй като тя нуждае от Linux ядрото. 694 00:43:18,180 --> 00:43:20,540 Но, можете да стартирате във виртуална машина. 695 00:43:20,540 --> 00:43:25,290 И това, което Docker Toolbox върши, който можете да изтеглите, 696 00:43:25,290 --> 00:43:27,610 той ви дава, че виртуалната машина. 697 00:43:27,610 --> 00:43:37,260 >> Така че само един бърз 48 второ, мисля, изтегляне. 698 00:43:37,260 --> 00:43:40,670 Можете просто търсене на Docker Toolbox, да го свалите на Mac, 699 00:43:40,670 --> 00:43:43,910 и тази част е от Разбира се ускори, защото който 700 00:43:43,910 --> 00:43:47,620 иска да гледа за сваляне на сигнала? 701 00:43:47,620 --> 00:43:54,190 Standard Mac инсталация, и след това сте 702 00:43:54,190 --> 00:43:59,795 Ще видите Jerome пробва паролата си. 703 00:43:59,795 --> 00:44:00,670 Това е много вълнуващо. 704 00:44:00,670 --> 00:44:03,510 705 00:44:03,510 --> 00:44:06,230 И тогава се инсталира цял куп инструменти. 706 00:44:06,230 --> 00:44:10,010 И по-специално тя ще инсталиране на командния ред. 707 00:44:10,010 --> 00:44:14,220 И тогава можете да видите Jerome тестване образите му. 708 00:44:14,220 --> 00:44:19,050 709 00:44:19,050 --> 00:44:22,640 >> Тогава въз основа на това, можете да видите, че YouTube 710 00:44:22,640 --> 00:44:27,420 мисли, че Нико е заинтересован Star Wars, The Jimmy Kimmel шоуто, 711 00:44:27,420 --> 00:44:29,020 и аз мисля, Елън. 712 00:44:29,020 --> 00:44:34,130 Мисля, че последният е щипка от Елън шоу. 713 00:44:34,130 --> 00:44:37,760 >> Така Docker Toolbox че идва с повече от просто Docker Machine. 714 00:44:37,760 --> 00:44:39,840 Така Docker машина е нещото, което помага 715 00:44:39,840 --> 00:44:43,710 ви създаде виртуална машина на вашия Windows 716 00:44:43,710 --> 00:44:52,080 или Mac-- вашата кутия Windows или Mac си box-- и ви помага да направите провизиране, 717 00:44:52,080 --> 00:44:54,040 >> Но тя също така идва с Swarm и Compose, 718 00:44:54,040 --> 00:45:00,840 които са предназначени да ви помогнат да направите голяма разгръщания на вашата кандидатура. 719 00:45:00,840 --> 00:45:04,000 Така че, ако искате да управлявате клъстери от възли, 720 00:45:04,000 --> 00:45:08,450 клъстери от контейнери, композира и Swarm са начин да отида за това. 721 00:45:08,450 --> 00:45:11,430 >> И разбира се той идва с Docker Engine и Kitematic, 722 00:45:11,430 --> 00:45:13,250 който е този настолен GUI. 723 00:45:13,250 --> 00:45:17,060 Аз също трябва да споменем Docker Registry, която не е включена в Toolbox, 724 00:45:17,060 --> 00:45:23,150 но това е начин за вас да стартирате свой собствен регистри на докер Images като докер 725 00:45:23,150 --> 00:45:28,970 Hub, но можете да използвате само Docker Hub, като начин да се направи това. 726 00:45:28,970 --> 00:45:32,955 >> И, парцел обрат, което виждате тя работи в контейнер. 727 00:45:32,955 --> 00:45:34,830 И това е, как ние сме разпространение на нашите слайдове. 728 00:45:34,830 --> 00:45:38,610 Цялата тази презентация е всъщност палубата на HTML пързалка. 729 00:45:38,610 --> 00:45:43,170 И тя се изпълнява в контейнер, който можете да получите по-- 730 00:45:43,170 --> 00:45:45,596 >> NICOLA Кабарската: Да, така че това е тичане на пълен работен ден на моя Max. 731 00:45:45,596 --> 00:45:47,540 И аз съм представяне от него. 732 00:45:47,540 --> 00:45:50,910 А вие просто правя Docker след инсталирате вашия Toolbox. 733 00:45:50,910 --> 00:45:57,340 Можете просто да се направи докер план и да се получи, както и използването на слайдовете. 734 00:45:57,340 --> 00:45:58,830 >> Мано МАРКИРОВКА: И това е всичко. 735 00:45:58,830 --> 00:46:02,160 Така че ние всички ви благодаря, че дойдохте. 736 00:46:02,160 --> 00:46:03,990 И ние сме щастливи да отговаря на въпроси. 737 00:46:03,990 --> 00:46:07,810 Трябва да спомена, преди някой оставя има тениски там. 738 00:46:07,810 --> 00:46:10,940 За съжаление всеки, който гледа тази на Livestream или видео, 739 00:46:10,940 --> 00:46:12,820 но ние имаме Docker тениски там. 740 00:46:12,820 --> 00:46:16,250 И ние знаем, докер учениците, и в моя опит, 741 00:46:16,250 --> 00:46:18,940 професори също, като безплатно облекло. 742 00:46:18,940 --> 00:46:22,490 >> Така че благодаря на всички ви за излизане. 743 00:46:22,490 --> 00:46:27,050 И ни последват в Twitter ако искате, или не. 744 00:46:27,050 --> 00:46:27,910 Не ме е грижа. 745 00:46:27,910 --> 00:46:29,430 Също следват Docker на Twitter. 746 00:46:29,430 --> 00:46:31,890 Това също е интересна. 747 00:46:31,890 --> 00:46:32,990 И тогава това е всичко. 748 00:46:32,990 --> 00:46:33,490 Docker.com. 749 00:46:33,490 --> 00:46:35,410 Благодаря. 750 00:46:35,410 --> 00:46:39,360 >> [Аплодисменти] 751 00:46:39,360 --> 00:46:41,625