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