[Грає музика] Девід Малан: Гаразд. Спасибі, що прийшли. Це CS50 семінар з Докер, а технології, які ми самі і CS50 почали використовувати протягом деякого часу. Так мене звуть Девід Малан, я навчити Введення Гарварда в галузі комп'ютерних наук. Ось уже кілька років, ми давали студентам завантажуваний клієнт-сторона віртуальні машини на якому вони свої проблеми набори. Те, що ми зараз перейшли в середу Cloud що насправді використовує цю технологію називається Докер, наприклад, що всі CS50 Студенти тепер мають їх власні контейнери Docker що ви скоро почуєте все. Крім того, на сервері CS50 в сторона кластер, протягом багатьох років ми використовували Cloud сервер Амазонки. Ми бігли особа віртуальні машини. Це теж, ми почали перехід до ці речі називаються Docker контейнери так що всі наші програми в даний час ідеально ізольовані один від одного. Таким чином, для що й більше, дозвольте мені ввести наших друзів, Ніко і Мано, від самої Докер. Нікола КАБАР: Спасибо, Девід. Привіт всім. Мене звуть Ніко, і це Мано. Ми з Докер. Ми будемо говорити about-- даючи вам хлопці інтро до Докер, і, сподіваюся, до кінця з цієї розмови ви можете зрозуміти, скільки ви можете використовувати лікаря оксалат свій розробки додатків і розгортання. Так, ми збираємося розпочати реальний швидко з деякою довідкової інформації. Опишіть, що Докер це все о. Як це працює? Як це архітектура? Я буду робити кілька демок. І Мано буде описуючи, як ви можете використовувати Docker і дає вам конкретні кроки як ви можете почати. Я був би вдячний, якщо ви, хлопці, можете тримати від ваших питань до кінця. Таким чином, я міг би бути звертаючись до питання всієї презентації. Таким чином, ми залишимо деякий час в кінці для запитань. Так що дуже швидко, хто має насправді коли-небудь працював на Докер, як грав з ним? Високий. Прохолодний. Відмінно. Отже, я збираюся почати з якоїсь історії. Отже, повернемося в 90-х і початку 2000-х, в основному як веб-розробників, розробників додатків, коли вони пішли, щоб розгорнути додаток це було пов'язано з голого металу. Це був один сервер. Це було одне додаток. Традиційно приклад буде як стек LAMP, де ви насправді було виховувати пул ресурсів. Процесора, пам'яті, диска, мережі, установка Операційна система на вершині цього. Якщо ви щось служити, при ви насправді маючи веб-сервер, потрібно щось на зразок Apache, щоб служити. Якщо ваш додаток потребує бази даних, з розмаху, Ви б встановити щось як MySQL, і так далі. А якщо вам потрібно час виконання, PHPs і робота PHP Python були там. І таким чином, ми фактично повинні були зробити ці кроки в цілях щоб отримати ваш додаток і працює. Якщо вам потрібна більш обчислювальну потужність, вам в основному довелося викликати ваш хлопець Ops або галон йти і нарощувати нові залізяка, підключіть його, і вам доведеться повторити ті процеси знову і знову. Так цей процес був відносно дорогим. Був, безумовно, дуже повільно. Це було неефективно. І в більшості випадків, ваш обладнання було недостатньо. Так, наприкінці 90-х років і початку 2000-х, апаратна віртуалізація наткнувся. І, як ви можете бачити тут в картина, в основному те, що вони зробили абстрагується пул Безкоштовні апаратні ресурси і вид служив тих, у верхніх шарах, в цьому випадку, гостьовий операційної системи. І вся ідея віртуальні машини наткнувся і що дійсно допомогло Cloud обчислювальна як ми його знаємо сьогодні. Так що це означало, що це ви може працювати кілька віртуальних машин, який означало кілька стеків, кілька Додаток на одній фізичній машині. Це, безумовно, допомогло з Швидкість розгортання додатків. Безумовно з витратами. Ви не повинні йти і витрачати енергії, часу і ресурсів, щоб набрати більше серверів, щоб дістатися до більш обчислювальних. І швидкість фактично чого Ці ресурси до набагато швидше. Відмінно. Таким чином, ми вирішили з голодом у світі, вірно? Ні, не дуже. Так, віртуалізація, наскільки це насправді допомогли, вирішувати проблему, це насправді введені багато проблем. Гипервизор виразно представила багато складнощів, обробки лежать в основі басейн ресурсів. Це важче в тому сенсі, що перед Ви були однієї операційної системи, яка як три, чотири концертів на диску. Тепер, якщо у вас є 10 машин на одній апаратній Ви повинні помножити це за кількістю машин. Це, безумовно, більш дорого в сенсі ви все ще повинні отримати ліцензії для технологія віртуалізації якщо це не з відкритим вихідним кодом. Але, давайте не будемо все кредит від віртуалізації. Тому що те, що сталося, є багато стеков і багато програмного забезпечення технології, які були включені по тому, як швидко ви змогли отримати до ресурсів з бумом Cloud. Так, сьогодні один додаток або служба може використовувати будь-який з наступних середовищ виконання на або бази даних. PHP, Python, MySQL, Redis, ще багато чого. Таким чином, є багато складнощі на цьому Кількість штабелів насправді виховувати один сервіс. І разом з тим, ви мали багато базові ресурси або інфраструктура Типи перевірити Deploy і в основному прийняти до провадження ці додатки що ви розробляєте. Тим більше, що ваші команди мають вирощений працює на тих додатках, є багато Складність проблеми і що були приведені для того, щоб cycle-- основному додаток Цикл розвитку, є насправді успішним. Таким чином, той факт, що ваш додаток працює локально на вашому локальному VM не гарантує, що ваш колега чекатиме ті ж самі результати. І коли команда операції є участь у прийнятті того, що у вас є і розгортання його у виробництво масштаб, також немає ніякої гарантії, що це насправді станеться. Таким чином, це залишає нас з дійсно big-- багато знаків, багато проблем насправді зіткнулися аналогічно в ті дні. І, що нагадали нам про судноплавство. Так судноплавної галузі було багато товарів, як ви можете бачити на лівій стороні. А на правій стороні, є багато, в основному, способи вантажити ці товари. І те, що відбувається, як пара люди зібралися разом і сказали, ми повинні стандартизувати як ми насправді корабель цих товарів. І бум, у вас є інтермодальні перевезення контейнерів. Таким чином, вони домовилися про найбільш загальні розміри для контейнера. Як з ними впоратися. Що точний метод вам потрібно щоб завантажити їх і вивантажувати їх. І тому, який дійсно допоміг судноплавства. Зараз, більш ніж 90% уваги транспортується в глобальному масштабі, використовуючи ці контейнери. І, безумовно, знижує що витрати, а також збитки, пов'язані з доставкою. Таким чином, ми прийняти ту ж модель, і ми застосовувати програмне забезпечення для розробки додатків двох Архітектура, в тому сенсі, що контейнеризації взяв віртуалізації на один рівень вгору. Таким чином, замість робити що на апаратному рівні, він став більш операційної Віртуалізація на рівні системи. І ми робимо це, надаючи кожному застосування у власній легкий, ізольовані, готовий до роботи, і портативний, найголовніше, спосіб насправді пакет все, що він повинен працювати. Скрізь він може бути запущений. Так, незалежно від того, ви працюєте його на локальна середу DEV, ваше виробництво навколишнє середовище, ваш постановка або тестування. Не важливо, що в основі інфраструктура є, у вас є функціональна додаток. Так от саме те, що в основному Контейнери зробити, щоб цієї проблеми. Вони стосуються його упаковки його таким чином, що він може гарантувати, що це розгорнуто успішно неважливо, де він живе. Так що, якщо ви збираєтеся як Боб це ще добре. Якщо ви плутати з тим, що я кажу, Я збираюся бути на розробці, що. Отже, як же сам Докер вписується в цю картину? Так Докер є відкритою платформою легко, підкреслюють легко, побудувати корабель, бігати, легкий портативний самоврядування достатні додаток контейнери скрізь. Так що якщо ви щось взяти з цього Обговорення, будь ласка, наступне. Якщо у вас є додаток працює на місцевому рівні і ви розробили його у використанні платформу Docker, очікувати це буде успішно розгорнуті. Незалежно від того, є не базова інфраструктура. Так що, якщо у вас є Докер контейнер, і це працює, то тих пір, поки це Докер двигун на інший side-- якщо вашої операційної інфраструктури використовує будь Cloud, будь то це AWS або Google, або Microsoft, або будь-який з відкритих хмар, або ваш власний Хмара, або ваш стек відкритий Облік, або ваш місцевий середу. Якщо у вас є двигун, працює, що кошти це буде успішно розгорнута там. Це збирається бути запущений точно так само поведінку як ви його архітектура буде. Так що, якщо ми подивимося at-- я збираюся пройти через те, що насправді в головних компонентів Докер. Так Двигун на основі Докер. Це мозку. Це організовує будівництво, перевезення вантажу, і розгортання та управління самі контейнери. Я копати в те, що робить двигун більш докладно в секунду. В основному, тому, що доктор був побудований навколо архітектур клієнт-сервер, тому для того, щоб взаємодіяти з Двигун вам потрібно якесь клієнта. Зображення шаблони в які контейнери, побудовані з. Так в основному зображення тільки статичні файли. Шаблони і контейнери насправді те, що працює під час виконання, що служить додаток або робити щось з даними. Реєстр звернувся в проблемі як ви насправді розповсюджувати зображення. Так що, якщо вам потрібно поділитися зображення що ви працювали на вашого колегу або команди Ops, ви використовувати його за допомогою реєстру. Ви можете завантажити з відкритим вихідним кодом версія цьому, що Докер працював на і з відкритим вихідним кодом. Або ви можете використовувати Docker допомогу, який є версією Хмара щоб штовхати і тягнути зображення там. Це величезна річ. Тому що є величезна екосистема Докер, і це дійсно інтенсивно використовує концентратор. Отже, підіб'ємо підсумок тут, це те, як мінімалістський Докер клієнт документообігу. Ви взаємодієте з господарем, в цей випадок це демони Docker. Це те ж саме, як двигун. Ви робите команди, як Докер будувати, тягнути, працювати. І сам двигуна йде і робить ці речі. Так що або він взаємодіє з Реєстр тягнути ці зображення і шари зображень. Будь, якщо ви хочете, щоб розгорнути, запустити контейнери, вбити їх, кидати їх униз, етажерка. Таким чином, це підсумовує робочий всіх цих компонентів. Так що, якщо ви берете кожен Компонент сам по собі. Так двигуна, це просто демон. Це буде свого роду грати, щоб підтримати це на Linux, тому що він робить вимагають певних особливостей ядра Linux. Але Windows працює робити те ж саме. Це повинні підтримуватися по Windows Server 2016. Так, знову ж таки, в обов'язки з Двигун з, або с, побудувати зображення. Потягніть зображення з Докер Концентратор або ваш власний реєстру. Якщо ви зробили з цими зображеннями або ви створити нові образи, ви можете натиснути їх назад до реєстру розподілити їх з іншими командами. І намагаючись стримати його локально і управляти контейнери життєвий цикл на місцевому рівні. Він побудований навколо API HTTP REST. Технічно ви можете написати свій власний клієнт тих пір, поки він використовує HTTP, який є дуже Стандартний механізм, щоб поговорити з Engine і багато інших послуг. І ви можете бачити з тут, що незалежно з якої інфраструктури є, як довго, як ви can-- все Ви повинні це операційна Система, Linux зокрема. І ви можете встановити Docker Двигун на вершині, що і це працює і організовує, в основному, все це додаток один, два, і три фактичні контейнери. Так ось двигун. Як я вже говорив раніше, тому що Ви повинні взаємодіяти з двигуном, Тобто клієнт. Але насправді, коли ви встановите Докер, він поставляється з нею. Так він отримує встановлений, так що це один двійковий. І ви можете зробити місцеві дзвінки на ваш Docker Engine. Або видалені виклики у віддалені двигунів. Це використання HTTP, а Я згадував раніше. Там це називається графічного клієнта Kitematic з Докер. І є виразно багато інших людей хто будує багато ГПИ, що в основному реалізують деякі HTTP-викликів, щоб поговорити з Engine. Просто деякі приклади команд. Якщо ви Docker версію, що це буде показати вам версію клієнта, а також серверна версія. Якщо ви інформацію Docker це буде сказати вам всю інформацію про те, скільки контейнерів працює або створені, скільки зображень у вас є, і так далі, і так далі. От у мене є, в наступному, щоб Остання вікно, у мене є доктор перспективі. Так от, як я насправді створення контейнер. І я даю його відлуння Hello World і спати на другий, а ще багато чого. І ви можете побачити Результат. Так що це триває. І схоже на Linux пс, ви можете побачити всі процеси і, в даному випадку, всі ходові контейнери. Це свого повертаючись до контейнер Я щойно створив. Таким чином, це дійсно важливо, тому що, як це може бути трохи заплутаним. Так зображення є тільки для читання набір файлів, чи не так? Вони те, що наша контейнера на основі. Але вони тільки для читання. Таким чином, ви починаєте з базового зображення. Вона прагне наслідувати ОС-як, так Ubuntu, CentOS, ще багато чого база зображення. І тоді ви починаєте будувати на вершині що деякі шари, які будуть складати ваш кінець зображення, кінцевий результат тут. І кожен з цих шарів повинні мати батьківський образ що він посилається, коли це насправді хоче створити. Вони незмінні, в тому сенсі, що, тому що вони тільки для читання, Ви не можете насправді внести зміни до них. Ви можете використовувати їх, щоб створити Контейнер з образу, який будемо називати всі наступні необхідні зображення під ним. Ви можете внести зміни в інший шар, це переписування шар я буду поговорити в секунду. Але кожне з цих шарів ніколи не змінюються. В основному зображення використовувати щось називається Союз система, UFS файлу. І є різні способи зберігання движки, які використовують цю технологію. І що це означає, що вона об'єднує різні файлові системи щоб вони виглядали як один. Таким чином, ви можете насправді, з точки зору програми, у вас є верх думка, що шоу всі різні файлової системи необхідні для цього додатка для запуску. Але насправді вони, на цьому, вони насправді в окремих місцях і в даний час використовуються інші контейнери, а також. Отже, як ви можете бачити тут, що якщо ми почнемо з демоном зображення в якості базового зображення, а потім ми йдемо і додати [? Emacs?] а потім, що ще один шар. А потім додати Apache. Ось ще один шар. А потім ми проводимо Контейнер з цього. Кожен з цих зображень, кожен з цих шарів, відрізняється і може бути використаним іншими контейнерами. Якщо ви подивитеся на самих контейнерах, вони якимось чином, як В.М., як, але не лікувати той же час. Таким чином, вони не мають, технічно, повний операційної системи під ними. Вони використовують єдину ядро від операційної системи. І вони будують на верхній частині, що. Вони імітують в тому, як вони виглядають. Вони імітують їх кореневої файл Система операційної системи. Але вони насправді не копіювати. Так, замість того, незмінні шари, останній шар, який є контейнером Сам, це шар читання-запису. Це також працює процеси з вашого додатки. А це залежить від нижележащих шарів. Кожен контейнер створений з зображення. І, що зображення може бути один шар або багатошаровий образ. І я хочу зазначити, що Докер сильно використовує або на основі копіювання при записі механізму. Так що, насправді, якщо ви не внесення змін в контейнері, це не займе додатковий простір. Так от, як ви в основному підсумовувати копіювання при записі. Це буде, безумовно, прискорить час завантаження для контейнера. Тому що, якщо ви не робите Зміни в контейнері, це використовуючи те, що вже є. Так, як це насправді працює. Частина з них як, прямо зараз, це використовує принаймні, два ключових ядро особливості. І це в основному те, що створено що рівень ізоляції для самих контейнерів. Ці особливості імен і контрольні групи. Так імен є способом створити окремі ресурси, таким чином, щоб у самому контейнері, тільки ви можете побачити деякі ресурси. Такі, як мережевий інтерфейс або певні користувачі або ще багато чого. А ті, видно тільки і тільки доступні в контейнері. Контрольної групи на іншій стороні межах як ви використовуєте ці ресурси. Процесора, пам'яті і дискової пам'яті. Коли ви можете піти, я маю на увазі тих, насправді особливості, які були розроблені по-- вони є частиною ядра Linux. Таким чином, вони не заново по або відтворені Докер. Докер використовує їх. Що доктор дійсно тут насправді це Створення організованих Простору імен для кожного контейнера і створення контрольних груп, так що це смішного легко створити контейнери використовуючи ці функції. Звичайно, як я описав вище, союз Файлові системи та копіювання при записі дійсно допомогти швидкість і диск Використання контейнерів. І як тільки ви отримаєте ваш руки навколо Докер, Ви побачите, як швидко вона є насправді розкрутити контейнери і сльозу їх вниз. Так що, якщо Ви могли б запитати, як може ви насправді побудувати зображення? Ми будуємо зображення, в процесі створення контейнери та внесення змін, що змінює їм, і їх вчинення у становлення зображення. Так що це курка і яйце посилання тут, бо всі контейнери приходять від картинок і образи приходять від скоєних контейнерів, для більшої частини. Є три варіанти для створення зображень. Я збираюся описати перший і останній. Ви можете або вручну піти і запустити контейнер і зробити ці зміни, як ви могли б зробити на будь-якому VM або будь операційної системи, наприклад як установка нових довічних файлів, додавання файлових систем, і ще багато чого. А потім ви виходите, а Ви можете побачити там. Я виходу мого контейнера. І тоді я роблю Докер здійснити. І я вчинення цього. Ви можете бачити, що кількість тут це просто UUID, або перші 12 біти UUID. Або байт UUID. І тоді я дзвоню його мій образ. Так що тепер Докер піклується про записи все, що я зробив це і створення нового зображення на його основі. Я не збираюся говорити про архіву, але є спосіб, ви можете отримати один, створити єдиний, або зробити один шар зображення за допомогою архіви. Те, що я збираюся поговорити про це і те, що в основному використовується сьогодні, це Dockerfile. Які технічно перший крок автоматизований сам Докер. Так Dockerfiles речі, що ви побачите в багатьох GitHub РЕПО сьогодні. Це в основному тільки текстовий файл опису точно, як побудувати зображення. І для кожного рядка, насправді створює контейнер, виконує цей рядок, здійснює цей контейнер в новий образ, і ви, в основному, використовувати його для всіх наступних операцій поки ви не отримаєте на останньому зображенні. Які в основному Кінцева мета тут, кінець. І після того, як за тобою exec-- написати Dockerfile, що чисто в тексті, ви робите Docker побудувати і ім'я образу. І ви вказати на те що де Dockerfile знаходиться в. І ви можете очікувати побачити мій образ як образ, який у вас є на місцевому рівні. Так що це просто візуальний приклад того, що триває. Ви починаєте з базовою зображення. Ви запускаєте, що в контейнер, який не змінює саму базовий образ. Але замість того, створює переписати шар поверх нього де ви внести зміни, в якому ви фіксуєте і ви повторите процес, поки Ви отримуєте до кінцевого зображення. І тим самим, кожного збірки процес може використовувати ті ж верстви і в основному same-- Докер кешируєт ці шари. Так що, якщо я роблю те ж саме точне процес, але замість установки PHP, Я встановлюю Python. Це збирається використовувати Apache і Ubuntu. Так Таким чином, ви, використовуючи ваш диск. Це використання кеш і доступні зображення там. Остаточний шматок реєстру, які як ви поширювати свої зображення. І, як я вже говорив раніше, є версія Хмара нього, що Докер-концентратор. Ви можете піти і досліджувати багато, в основному це продукт суспільного SAS, що Ви все ще можете мати особисті зображення, але є багато відкритих зображень. Це насправді обмежена, ви можете натиснути необмежені громадські зображень там. І це, як ви можете співпрацювати з вашою командою. Ви можете просто вказати їх у вас репо і вони можуть завантажити це або зображення і вони можуть її завантажити. Так достатньо з розмови. Хто хоче побачити деякі демо дуже швидко? Добре. Так от у мене є. Ca ви, хлопці, бачите мій екран? Добре. Так що я Докер працює тут, так що я можете перевірити it's-- Це версія з Докер, який працює. Можна зробити дані Docker. Перевірте всю інформацію про те, скільки зображення у них є, і так далі, і так далі. Докер PS, немає нічого працює. Каскадні тех. Тому перше, що я хочу зробити, це показати Ви, як ви можете легко запустити контейнер. Таким чином, принадність Доктор виконання, якщо це насправді годі й шукати зображення на місцевому рівні, за замовчуванням він говорить на головну доктора і намагається знайти його там і завантажує його для вас. Так вона включає в себе Docker команду тягнути, природно. Так що, якщо я роблю Докер перспективі, привет-світові. Отже, спочатку це буде щоб спробувати знайти його. В іншому випадку, як ви можете бачити тут, він не міг знайти його на місцевому рівні. Зараз він просто витягнув два шари що зробив цей образ, і я побіг. Привітання-світ тільки в основному виходи, те, що ви зробили. Так що це найпростіший, один самий простий приклади. Так насправді я просто втік і припиняється контейнер дуже швидко. Якщо я хочу, щоб run-- і до речі, якщо Я хочу, щоб час, що просто так ви знаєте, це, як довго це бере, щоб насправді спина і утримувати його. Ми його вимірювання в мілісекундах. Таким чином, ви можете бачити, скільки це може насправді допоможе вам не тільки в тестуванні, але навіть і розгортання. Так що це невелике зауваження з цього питання. Наступна річ, яку я збираюся зробити, це насправді запустити файл я вже підготовлений. Так докер перспективі. -d Тільки прапор, щоб сказати це працювати у фоновому режимі. І -p призначає певні порти. Тому що за замовчуванням, контейнери ізольовані, так що ви повинні точно вказати як він може отримати до них доступ. І в цьому випадку, я говорю Docker відобразити випадковий порт на хості в зазначений порт в сам контейнер. І це в основному, де image-- сподіваюся, це є правильним. Так що робить паралельні завантаження кожен з тих шарів, як ви можете подивитися тут. Ті з шарів робить кінець образ, який я збудував. Це займе секунду. І вуаля. Так що тепер, якщо я роблю Docker пс, я повинен побачити те, що працює. Я повинен побачити ідентифікатор, зображення що це було на основі вимкнений, і команда, яка була виконана. І як отримати доступ до це в основному ви йдете до цього порту. Так що я збираюся піти, метою яких це є Я біжу це на AWS. Я збираюся поїхати в 32769. Ой. А ось і ми. Так що це насправді просто веб-сервіс, який показує який контейнер цей час подається с. Таким чином, ви можете бачити, що це від контейнера a9f. І ось це ім'я контейнера. Так ви, хлопці, можете побачити, як швидко він був насправді не тільки тягнути, але також розгорнути цей контейнер. Тепер наступний крок полягає в шукати в Dockerfiles і як ми можемо насправді будувати нові образи. Я просто збираюся піти отримати клон, А Приклади Dockerfile на основі раніше схема, один, щоб Apache і PHP. Сподіваюся, я пам'ятаю репо. Так у мене є репозиторій прямо зараз. І ви побачите, це багато насправді. Я не встановити дерево. Так в основному ви побачите, як ваш вихідний код документації навколо це, а потім на Dockerfile як насправді упакувати його. Так що це просто зразок PHP що перегукується привіт CS50. Так що, якщо я хочу, щоб запустити його, Я зроблю Docker збірки. Я повинен побудувати його в першу чергу. Я збираюся назвати його demo_cs50. І вам потрібно мітку з нею теж. Отже, давайте називати його v1 точка. Так, як я описав вище, що я роблю сьогодні є Я говорю Docker йти використання that-- Насправді, вибачте, мій поганий. Ми не поглянути на самому Dockerfile. Таким чином, тільки речі в тут index.php, а також файл відомостей і Dockerfile. Так що, якщо ви подивитеся на Dockerfile, так що дуже схоже на те Я описав раніше. Це просто купа кроки, які виконує Докер шляхом створення та зриваючи контейнери і [? підрахунку?] їх у зображення. І в основному ви можете see-- [нерозбірливо] це here-- але це з місцевого репо. Це збирається піти і захопити index.php. Так що це тільки вихідний код, який на ділі є частиною вашого застосування. Все це в основному сантехнічні системи операційної, отримувати необхідні пакети і Apache, PHP і, і ще багато чого. Але це відбувається насправді index.php і вчинення його в контейнер, в зображення. Так що, якщо ви йдете вперед і запустити Команда, виконавши наступні, це насправді going--, це може зайняти трохи. Сподіваюся, це не займе дуже багато часу. Таким чином, ви можете бачити кроки. І я закликаю вас йти додому сьогодні і спробувати його. І Мано опишу як саме ти це робиш. Але це дійсно здорово, щоб побачити саме те, що відбувається за лаштунками. Але це до смішного легко побудувати Зображення та розгорнути їх за допомогою Docker. Це займає небагато більше, ніж я очікував. Давайте подивимося, що відбувається, коли you-- охолонути. Отже, як ви бачите, кожна з цих кроків представляють лінії в Dockerfile. А ось це показує, що це успішно побудував цей образ. Так що, якщо я Docker зображення, я збираюся побачити всі зображення, які я маю на місцевому рівні. І один з них називається мій ім'я користувача і назва зображення, а тег representing-- в основному це версія тегів. Так що тепер, якщо я хочу, щоб запустити це, я Docker перспективі. І я просто хочу, щоб зробити -d -P. У v1. Так я бачу тепер, що у мене два контейнери працює, той, що я просто створений і привіт Докер, який я отримав в минулому. І ви можете бачити тут, що це призначений його інший порт. Так що, якщо я йду в той же IP, але призначити його інше port--, сподіваюся, я не зробив. Так що тепер це додаток що я просто розгорнуть. Якщо я хочу, щоб внести зміни, я може швидко змінити вихідний код і виконайте такі дії. Давайте зробимо привіт Гарвард. Так що тепер, що відбувається відбудеться те, що я збирається помітити його з відрізняється version-- о, це не guy-- помітити його з іншою версією. І ви збираєтеся see-- ви, хлопці очікувати це взяти таку ж кількість часу побудувати його вдруге чи ні? Гаразд, і хто знає, чому? Висловлюватися. АУДИТОРІЯ: [нерозбірливо] Нікола КАБАР: Це в основному ми змінити тільки один з пізніших етапів. І тому він збирається використовувати Кеш і використовувати кожен з цих шарів. І це дійсно одні з вбивця особливості Докер як це насправді використовує і повторно захоплення ваш диск на те ж саме Точні частини інформації. Так що, якщо ми робимо те ж саме, він узяв тільки пару секунд. Якщо ми хочемо, щоб redeploy-- так що тепер Я повинен мати три контейнера. Але це один будучи служив на the-- сьомій один. Так що тепер це третій контейнер. Всі розуміють що я тільки що зробив тут? Так що тепер, якщо ви хочете поділитися цим Контейнер дуже швидко з друзями, ви можете просто зробити Докер натиснути ім'я контейнера, з надією. Так що тепер це буде штовхати його , Метою яких я не підписаний тут. Вибач за те. Але я не збираюся усунути це зараз. Але в основному, що одна команда просто підійшовши штовхати його. І ви збираєтеся бути в змозі см, якщо ви йдете в Докер-концентратор І ви увійти, ви буде в змозі бачити це. І тоді ви можете просто вказати, хто буде використовувати цей образ, щоб піти і витягнути його. І вони можуть використовувати його. При тому, що ми сподіваємося, Я начебто продемонстрував як легко це для роботи з Докер. І я просто хочу, щоб повернути її Мано. І він збирається взяти його звідси. Мано МАРКИ: Всі права спасибі, спасибі Ніко. І що? Таким чином, одна з речей, які я хотів зробити, це покласти разом чому це important-- чому і навіщо Докер контейнери таке важлива нова розробка, новий спосіб насправді робить програмне забезпечення. І перш, ніж я роблю, я збираюся просто ввести декілька статистиці. Я не збираюся читати всі ці. Але це показує вам багато про те, як популярний це в суспільстві. Основні технології Docker з відкритим вихідним кодом. Так от Докер двигуна, складати, Рой, купа інших речей всі з відкритим вихідним кодом. І у нас є, що ж я кажуть, 1300 вкладників. Ви бачите тепер, якщо ви подивитеся на Кількість вакансій, востаннє ми дивилися, це було близько 43 000 вакансії Отвори спеціально зазначити, знайомство з Докер. Сотні мільйонів зображень є були завантажені з Докер-концентратор. А, ну, набагато більш великі статистика. Для тих, хто цікавиться, його була спочатку написана в 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. Дякую. [Оплески]