1 00:00:00,000 --> 00:00:05,042 >> [Играет музыка] 2 00:00:05,042 --> 00:00:06,000 Дэвид Малан: Ладно. 3 00:00:06,000 --> 00:00:07,630 Спасибо, что пришли. 4 00:00:07,630 --> 00:00:11,850 Это CS50 семинар по Докер, а технологии, которые мы сами и CS50 5 00:00:11,850 --> 00:00:13,392 начали использовать в течение некоторого времени. 6 00:00:13,392 --> 00:00:15,766 Так меня зовут Дэвид Малан, я научить Введение Гарварда 7 00:00:15,766 --> 00:00:16,671 в области компьютерных наук. 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 То, что мы сейчас перешли в среду Cloud 12 00:00:24,300 --> 00:00:27,396 что на самом деле использует эту технологию называется Докер, например, что все 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 сервер Амазонки. 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 Таким образом, для что и больше, позвольте мне ввести наших друзей, Нико и Мано, 21 00:00:46,720 --> 00:00:48,574 от самой Докер. 22 00:00:48,574 --> 00:00:49,740 Никола КАБАР: Спасибо, Дэвид. 23 00:00:49,740 --> 00:00:51,410 Всем привет. 24 00:00:51,410 --> 00:00:54,230 Меня зовут Нико, и это Мано. 25 00:00:54,230 --> 00:00:58,260 Мы из Докер. 26 00:00:58,260 --> 00:01:02,240 Мы будем говорить about-- давая вам ребята интро к Докер, 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 Опишите, что Докер это все о. 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 И Мано будет описывая, как вы можете использовать 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 >> Так что очень быстро, кто имеет на самом деле когда-либо работал на Докер, 41 00:01:55,170 --> 00:01:56,850 как играл с ним? 42 00:01:56,850 --> 00:01:58,000 Потрясающие. 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 Процессора, памяти, диска, сети, установка Операционная система на вершине этого. 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 Гипервизор определенно представила много сложностей, 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 >> Так, сегодня один приложение или служба может использовать любой из следующих сред выполнения на 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 Типы проверить Deploy и в основном принять к производству эти приложения 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 Так, независимо от того, вы работаете его на локальная среда DEV, ваше производство 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 Так что, если вы собираетесь как Боб это еще хорошо. 155 00:09:12,120 --> 00:09:17,860 Если вы путать с тем, что я говорю, Я собираюсь быть на разработке, что. 156 00:09:17,860 --> 00:09:20,900 >> Итак, как же сам Докер вписывается в эту картину? 157 00:09:20,900 --> 00:09:26,335 Так Докер является открытой платформой легко, подчеркивают легко, 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 Так что, если у вас есть Докер контейнер, и это работает, то 165 00:09:53,830 --> 00:09:58,130 тех пор, пока это Докер двигатель на другой side-- 166 00:09:58,130 --> 00:10:02,190 если вашей операционной инфраструктуры использует любой Cloud, будь то 167 00:10:02,190 --> 00:10:06,680 это AWS или Google, или Microsoft, или любой из открытых облаков, 168 00:10:06,680 --> 00:10:10,010 или ваш собственный Облако, или ваш стек открыт Облако, или ваш местный среда. 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 в главных компонентов Докер. 175 00:10:29,160 --> 00:10:31,060 >> Так Двигатель на основе Докер. 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 Я копать в то, что делает двигатель более подробно в секунду. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 В основном, потому, что доктор был построен вокруг архитектур клиент-сервер, 182 00:10:51,720 --> 00:10:56,630 поэтому для того, чтобы взаимодействовать с Двигатель вам нужно какое-то клиента. 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 Шаблоны и контейнеры на самом деле то, что 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 >> Реестр обратился в проблеме как вы на самом деле распространять изображения. 189 00:11:19,020 --> 00:11:23,230 Так что, если вам нужно поделиться изображение что вы работали на вашего коллегу 190 00:11:23,230 --> 00:11:27,220 или команды Ops, вы использовать его с помощью реестра. 191 00:11:27,220 --> 00:11:31,720 Вы можете скачать с открытым исходным кодом версия этом, что Докер работал на 192 00:11:31,720 --> 00:11:33,150 и с открытым исходным кодом. 193 00:11:33,150 --> 00:11:38,040 >> Или вы можете использовать Docker помощь, который является версией Облако 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 Потому что есть огромная экосистема Докер, и это 197 00:11:44,520 --> 00:11:48,960 действительно интенсивно использует концентратор. 198 00:11:48,960 --> 00:11:59,780 >> Итак, подведем итог здесь, это то, как минималистский Докер клиент документооборота. 199 00:11:59,780 --> 00:12:04,040 Вы взаимодействуете с хозяином, в этот случай это демоны Docker. 200 00:12:04,040 --> 00:12:06,490 Это то же самое, как двигатель. 201 00:12:06,490 --> 00:12:09,690 Вы делаете команды, как Докер строить, тянуть, работать. 202 00:12:09,690 --> 00:12:14,280 И сам двигателя идет и делает эти вещи. 203 00:12:14,280 --> 00:12:18,010 >> Так что либо он взаимодействует с Реестр тянуть эти изображения 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 Так двигателя, это просто демон. 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 Потяните изображения из Докер Концентратор или ваш собственный реестра. 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 Он построен вокруг API HTTP REST. 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 Двигатель на вершине, что и это работает 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 Так вот двигатель. 231 00:13:53,990 --> 00:13:58,040 Как я уже говорил раньше, потому что Вы должны взаимодействовать с двигателем, 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 Там это называется графического клиента Kitematic из Докер. 240 00:14:24,200 --> 00:14:26,390 И есть определенно много других людей 241 00:14:26,390 --> 00:14:29,740 кто строит много ГПИ, что в основном реализуют 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 >> Вот у меня есть, в следующем, чтобы Последнее окно, у меня есть доктор перспективе. 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 Она стремится подражать ОС-как, так 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 В основном изображения использовать что-то называется Союз система, UFS файла. 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 >> Если вы посмотрите на самих контейнерах, они каким-то образом, как В.М., как, 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 >> И я хочу отметить, что Докер сильно использует 308 00:18:37,200 --> 00:18:40,370 или на основе копирование при записи механизма. 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 Так вот, как вы в основном суммировать копирование при записи. 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 Эти особенности имен и контрольные группы. 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 Контрольной группы на другой стороне пределах как вы используете эти ресурсы. 328 00:19:48,290 --> 00:19:50,950 Процессора, памяти и дисковой памяти. 329 00:19:50,950 --> 00:19:53,900 Когда вы можете пойти, я имею в виду тех, на самом деле 330 00:19:53,900 --> 00:19:57,410 особенности, которые были разработаны по-- они являются частью ядра Linux. 331 00:19:57,410 --> 00:20:01,800 Таким образом, они не заново по или воссозданы Докер. 332 00:20:01,800 --> 00:20:03,770 Докер использует их. 333 00:20:03,770 --> 00:20:05,560 >> Что доктор действительно здесь на самом деле это 334 00:20:05,560 --> 00:20:08,680 Создание организованных Пространства имен для каждого контейнера 335 00:20:08,680 --> 00:20:13,320 и создание контрольных групп, так что это смешного легко создать контейнеры 336 00:20:13,320 --> 00:20:14,870 используя эти функции. 337 00:20:14,870 --> 00:20:22,910 Конечно, как я описал выше, союз Файловые системы и копирование при записи действительно 338 00:20:22,910 --> 00:20:26,810 помочь скорость и диск Использование контейнеров. 339 00:20:26,810 --> 00:20:28,917 >> И как только вы получите ваш руки вокруг Докер, 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 И тогда я делаю Докер совершить. 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 Так что теперь Докер заботится о записи все, что я сделал это 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 Какие технически первый шаг автоматизирован сам Докер. 371 00:22:07,260 --> 00:22:11,920 Так Dockerfiles вещи, что вы увидите во многих GitHub РЕПО 372 00:22:11,920 --> 00:22:13,150 Cегодня. 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-- Докер кэширует эти слои. 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 >> Окончательный кусок реестра, которые как вы распространять свои изображения. 398 00:23:48,840 --> 00:23:52,710 И, как я уже говорил ранее, есть версия Облако него, 399 00:23:52,710 --> 00:23:54,290 что Докер-концентратор. 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 >> Так что я Докер работает здесь, так что я можете проверить it's-- Это версия 415 00:24:45,810 --> 00:24:47,510 из Докер, который работает. 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 Докер 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 Таким образом, прелесть Доктор выполнения, если это на самом деле 422 00:25:09,350 --> 00:25:14,700 не найти изображение на местном уровне, по умолчанию он говорит на главную доктора 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 >> Так что, если я делаю Докер перспективе, привет-миру. 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 Приветствия-мир только в основном выходы, то, что вы сделали. 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 Так докер перспективе. 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 >> Так что теперь, если я делаю Docker пс, я должен увидеть то, что работает. 456 00:27:16,590 --> 00:27:22,250 Я должен увидеть идентификатор, изображение что это было на основе выключен, 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 Так что я собираюсь пойти, целью которых это является Я бегу это на 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 >> Так что, если я хочу, чтобы запустить его, Я сделаю Docker сборки. 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 Так, как я описал выше, что я делаю сегодня 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, а также файл сведений 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 Это просто куча шаги, которые выполняет Докер 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 И Мано опишу как именно ты это делаешь. 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 >> Так что теперь, если я хочу, чтобы запустить это, я Docker перспективе. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 И я просто хочу, чтобы сделать -d -P. У v1. 528 00:32:14,960 --> 00:32:18,500 Так я вижу теперь, что у меня два контейнеры работает, тот, что я просто 529 00:32:18,500 --> 00:32:21,230 создан и привет Докер, который я получил в прошлом. 530 00:32:21,230 --> 00:32:24,320 >> И вы можете видеть здесь, что это назначен его другой порт. 531 00:32:24,320 --> 00:32:30,710 Так что, если я иду в то же IP, но назначить его другое 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 >> Если я хочу, чтобы внести изменения, я может быстро изменить исходный код 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 >> Никола КАБАР: Это в основном мы изменить только один из более поздних этапов. 546 00:33:19,830 --> 00:33:23,110 И поэтому он собирается использовать Кэш и использовать каждый из этих слоев. 547 00:33:23,110 --> 00:33:27,080 И это действительно одни из убийца особенности Докер 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 Так что теперь это будет толкать его , целью которых я не подписан здесь. 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 И вы собираетесь быть в состоянии см, если вы идете в Докер-концентратор 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 >> При том, что мы надеемся, Я вроде продемонстрировал 568 00:34:57,760 --> 00:35:01,230 как легко это для работы с Докер. 569 00:35:01,230 --> 00:35:06,610 И я просто хочу, чтобы вернуть ее Мано. 570 00:35:06,610 --> 00:35:11,760 И он собирается взять его отсюда. 571 00:35:11,760 --> 00:35:13,990 >> Мано МАРКИ: Все права спасибо, спасибо Нико. 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-- почему и зачем Докер 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 Основные технологии Docker с открытым исходным кодом. 582 00:35:56,310 --> 00:36:03,560 Так вот Докер двигателя, сочинять, Рой, куча других вещей 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 мы смотрели, это было около 43000 вакансии Отверстия специально отметить, 587 00:36:19,640 --> 00:36:22,230 знакомство с Докер. 588 00:36:22,230 --> 00:36:26,450 Сотни миллионов изображений есть были загружены из Докер-концентратор. 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 >> Так что просто повторить, некоторые из Ключевые моменты Нико, Докер быстро. 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 >> И что-- это мой дерьмовый искоренить монолиты 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 или другой тип компонентная архитектуры приложения. 611 00:37:46,090 --> 00:37:48,610 И так это позволяет вид архитектур 612 00:37:48,610 --> 00:37:52,250 что воспользоваться Докер работать в эти три 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 разработка веб-сайта, который основан на базы данных, что Дэвид производится здесь. 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 >> И то, что Докер поможет вам сделать каждый человек работа по различным компонентам 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 >> Теперь это не является уникальным для Докер, но Докер делает это гораздо легче, 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, и Затем Биобокс просто берет данные, 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 является ням. 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 Мы поддерживаем большое разнообразие распределений Linux. 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 И то, что Докер Инструменты делает, что вы можете скачать, 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 Вы просто поиск по Докер Ящик для инструмента, загрузить его в 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 Установка Стандартный Mac, и тогда вы 702 00:43:54,190 --> 00:43:59,795 увидите Джером положил в его пароль. 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 И тогда можно было увидеть Джером тестирования свои образы. 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 считает, что Нико заинтересованы в Звездные войны, Джимми Киммел шоу, 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 >> Так Докер Инструменты хотя приходит больше, чем просто машина Докер. 714 00:44:37,760 --> 00:44:39,840 Так Докер Машина вещь, которая помогает 715 00:44:39,840 --> 00:44:43,710 вы создали виртуальный машина на ОС Windows 716 00:44:43,710 --> 00:44:52,080 или Mac-- ваш ящик окна или ваш Mac box-- и поможет вам сделать предоставление, 717 00:44:52,080 --> 00:44:54,040 >> Но он также поставляется с Рой и сочинять, 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 кластеры контейнеров, Создание и Рой являются способ пойти об этом. 721 00:45:08,450 --> 00:45:11,430 >> И, конечно, она поставляется с Докер Двигатель и Kitematic, 722 00:45:11,430 --> 00:45:13,250 что это настольное интерфейс. 723 00:45:13,250 --> 00:45:17,060 Я должен также упомянуть Docker реестра, которая не входит в Toolbox, 724 00:45:17,060 --> 00:45:23,150 но это способ для вас, чтобы запустить свой собственный реестры Docker изображений, как Докер 725 00:45:23,150 --> 00:45:28,970 Концентратор, но вы также можете просто использовать Докер-концентратор, как способ, чтобы сделать это. 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 >> Никола КАБАР: Да, так что это работает полный рабочий день на моем Макс. 731 00:45:45,596 --> 00:45:47,540 И я представляю из него. 732 00:45:47,540 --> 00:45:50,910 И вы просто сделать Docker после установить панель инструментов. 733 00:45:50,910 --> 00:45:57,340 Вы можете просто сделать Docker пробег и получить его, и использовать слайды. 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 И мы знаем, Docker студентов, и по моему опыту, 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