>> [MUZYKI]
DAVID MALAN: Wszystko w porządku.
Dziękuję bardzo za przybycie.
To seminarium CS50 na DOCKER, a Technologia, że ​​my sami i CS50
zaczęła używać już od jakiegoś czasu.
Więc mam na imię David Malan, ja nauczyć Harvardu Wprowadzenie
do informatyki.
Od dłuższego lat, byliśmy dając studentom
do pobrania ze strony klienta Maszyny wirtualne
na której robią swoje zestawy problemów.
Że mamy teraz przesiedli w środowisku chmurze
że faktycznie korzysta z tej technologii nazywa Docker, takie, że wszystkie CS50
Studenci mają teraz swoje własne pojemniki dokowane
że wkrótce usłyszeć o.
>> Ponadto na serwerze CS50 jest boczna klaster, przez wiele lat
używaliśmy serwer Amazon Cloud.
Jechaliśmy osobę maszyn wirtualnych.
To też, zaczęliśmy przejścia do te rzeczy zwane pojemniki dokowane
tak aby wszystkie nasze aplikacje są teraz całkowicie odizolowane od siebie.
Więc na to i wiele więcej, pozwala mi wprowadzenie naszych przyjaciół, Nico i Mano,
od samego DOCKER.
NICOLA Kabar: Dzięki, David.
Cześć wszystkim.
Nazywam się Nico i to jest Mano.
Jesteśmy z Docker.
Mamy zamiar rozmawiać about-- dając Ci faceci intro do Docker,
i miejmy nadzieję, że pod koniec tej rozmowie można zrealizować
ile można użyć do lekarza, aby szczawianu swój rozwój aplikacji
i wdrażania.
>> Tak, mamy zamiar rozpocząć prawdziwe szybkie z pewnymi informacjami w tle.
Opisz, co Docker wszystkim chodzi.
Jak to działa?
Jak to jest, architected?
Będę robić niektóre dema.
A Mano będzie opisujący w jaki sposób można wykorzystać DOCKER
i daje konkretne kroki jak można zacząć.
>> Będę wdzięczny, jeśli faceci mogą posiadać się do pytania pod koniec.
W ten sposób mogę być zajęcie tych Pytania całej prezentacji.
Będziemy więc zostawić trochę czasu pod koniec na pytania.
>> Więc po prostu bardzo szybko, który ma w rzeczywistości nigdy nie pracował na DOCKER,
jak grał z nim?
Niesamowite.
Fajne.
Wielki.
Tak, mam zamiar zacząć z pewną historią.
Więc z powrotem w latach 90. i początku 2000, w zasadzie
jak programistów, deweloperów aplikacji, gdy poszedł do wdrożyć aplikację
został przywiązany do gołego metalu.
To był jeden serwer.
To była jedna aplikacja.
>> Tradycyjnie Przykład będzie jak stos LAMP,
gdzie faktycznie było uzupełnić pulę zasobów.
CPU, pamięć, dysk, sieć, instalacja System operacyjny na dodatek.
Jeśli obsługujących coś, jeśli jesteś rzeczywiście o serwer WWW,
trzeba coś takiego Apache, aby jej służyć.
>> Jeśli aplikacja potrzebuje bazy danych, backhand,
chcesz zainstalować coś jak MySQL, i tak dalej.
A jeśli potrzebujesz czas pracy, phps PHP Python i pracy tam.
I tak rzeczywiście było podjąć te kroki w celu
aby uzyskać up aplikacji i działa.
>> Jeśli potrzeba więcej mocy obliczeniowej, ty w zasadzie musiałem zadzwonić do Ops faceta
lub gal iść i stojak na nowy kawałek sprzętu, podłączyć go,
i trzeba powtarzać tych procesy ponownie i ponownie.
Tak więc proces ten był stosunkowo drogie.
Czy na pewno bardzo powoli.
>> To było nieefektywne.
I w wielu przypadkach, swoje sprzęt był w pełni wykorzystany.
Tak więc, pod koniec lat 90. i na początku 2000, wirtualizacji sprzętu natknąłem.
I jak widać tutaj, w obraz, w zasadzie to, co zrobili
są wydobywane pulę darmowe zasoby sprzętowe
i rodzaj służył ci do górnych warstwach
w tym przypadku, gość system operacyjny.
>> I cała idea Maszyny wirtualne natknąłem
i to naprawdę pomogło Chmura computing, jakie znamy dzisiaj.
Więc co to oznacza to ty można uruchamiać wiele maszyn wirtualnych, które
Oznaczało wiele stosów, stwardnienie Aplikacja w tym samym urządzeniu fizycznym.
>> To na pewno pomogło z szybkość wdrażania aplikacji.
Zdecydowanie się z wydatkami.
Nie musisz iść i spędzić energii, czasu i zasobów do rack
więcej serwerów, aby dostać się do więcej obliczeniowych.
I prędkość w zasadzie współpraca te zasoby się to znacznie szybciej.
Wielki.
>> Tak więc rozwiązać problem głodu na świecie, prawda?
Nie, nie bardzo.
Więc, wirtualizacja jak to faktycznie pomógł, rozwiązania problemu,
faktycznie wprowadzone wiele wyzwań.
Hypervisor pewno wprowadzono wiele złożoności,
obsługi leżące u podstaw puli środków.
>> To cięższe w tym sensie, że przed miałeś jeden system operacyjny, który
jest jak trzy, cztery koncerty na dysku.
Teraz, jeśli masz 10 maszyn w jednym sprzętu
trzeba pomnożyć od liczby urządzeń.
To zdecydowanie więcej kosztowne w sensie nadal
muszą uzyskać licencji dla technologia wirtualizacji
jeśli nie jest open source.
>> Ale niech nie brać wszystko kredytowa od wirtualizacji.
Bo to, co się stało, istnieje Wiele stosy i wiele oprogramowania
Technologie, które zostały włączone jak szybko jesteś w stanie uzyskać
do zasobów z boomu chmurze.
>> Tak, dzisiaj jedna aplikacja lub usługa może być przy użyciu jednej z następujących czasy pracy
lub baz danych.
PHP, Python, MySQL, Redis, etażerka.
Więc jest dużo złożoności na ten temat liczba stosów faktycznie wychowywać
pojedyncza usługa.
A wraz z tym, można dużo miał środków zabezpieczających lub infrastruktury
Typy przetestować wdrażanie i zasadniczo podjąć się produkcji tych aplikacji
że jesteś rozwoju.
>> Zwłaszcza, zespoły mają uprawiane pracy na tych aplikacji,
istnieje wiele złożoność i wyzwania
które zostały wprowadzone w celu zapewnienia, że cycle-- zasadzie aplikacji
cykl rozwoju, jest naprawdę udany.
Tak więc fakt, że aplikacja działa lokalnie na Twoim VM
nie gwarantuje, że twój kolega będzie się spodziewać, że takie same wyniki.
>> A kiedy zespół operacyjny jest uczestniczą w podejmowaniu co masz
i wdrożenie go do produkcji skalę, również nie ma gwarancji,
że rzeczywiście się stanie.
Więc to pozostawia nam naprawdę big-- wiele znaków zapytania,
wiele wyzwań rzeczywistości w obliczu podobnie w czasach.
I że przypomniał nam przemysłu morskiego.
>> Więc przemysłu morskiego miał dużo towarów,
jak widać na lewej stronie.
A na prawej stronie, tam jest dużo, w zasadzie,
sposoby wysyłać te towary.
A co się dzieje z rodziną ludzie zebrali się i powiedział:
musimy ujednolicić sposób faktycznie wysyłają te towary.
I boom, masz intermodalny transport kontenerowy.
>> Więc zgodzili się na najbardziej wspólne rozmiary pojemnika.
Jak sobie z nimi radzić.
Co Dokładna metoda trzeba ich załadunek i rozładunek im.
I dlatego, że naprawdę pomagał przemysłu morskiego.
Teraz ponad 90% ostrości transportowane na całym świecie są przy użyciu tych pojemników.
I to zdecydowanie zmniejsza koszty, jak również
odszkodowanie z tytułu wysyłki.
>> Więc bierzemy ten sam model, a my zastosowanie oprogramowania rozwoju dwóch aplikacji
architektura, w tym sensie, że containerization
wziął wirtualizacji o jeden poziom wyżej.
Więc zamiast robić to na poziomie sprzętowym,
stało się więcej o eksploatacji Wirtualizacja na poziomie systemu.
>> I robimy to poprzez dostarczanie każdego Aplikacja na własny lekki,
izolowane, uruchamianego i Przenośny, przede
sposób właściwie zapakować wszystko, że musi uciekać.
Wszędzie można je uruchomić.
Tak więc, niezależnie od tego czy używasz go na środowiska lokalnego dev, Twoja produkcja
środowisko, twój postoju lub badania.
Bez względu na to, co bazowego infrastruktura jest tam,
trzeba było funkcjonalną aplikację pracy.
>> Więc to jest dokładnie to, co w zasadzie pojemniki zrobić, aby ten problem.
Są zajęcia go przez Opakowanie to w taki sposób,
że może zagwarantować, że to jest wdrażane z powodzeniem, bez względu gdzie mieszka.
Więc jeśli masz zamiar jak Bob to jeszcze OK.
Jeśli mylić z tym, co mówię, Mam zamiar być opracowanie na ten temat.
>> Więc w jaki sposób sama Docker pasuje na tym obrazku?
Więc Docker jest otwartą platformą łatwo, podkreślają, łatwo,
zbudować statek, biegać, lekki przenośny siebie
wystarczające pojemniki aplikacji wszędzie.
Więc jeśli wziąć coś z tego Dyskusja, wykonaj następujące.
>> Jeśli masz swoją aplikację bieganie lokalnie i go rozwinęła
wykorzystaniem platformy Docker, spodziewać to być z powodzeniem przetestowane.
Bez względu na to, co jest podstawowa infrastruktura.
Więc jeśli masz Docker pojemnik i to działa, a następnie
tak długo, jak istnieje Docker Silnik drugiej side--
jeśli infrastruktury pracy jest za pomocą jakiejkolwiek chmury, czy to
jest AWS, ani Google, ani Microsoft, lub którykolwiek z publicznych chmur,
lub własne Chmura, lub twój otwarty stos Chmura, lub z lokalnym środowiskiem.
>> Jeśli masz silnik działa, to znaczy
To będzie powodzeniem stosowane tam.
To będzie działać dokładnie takie samo zachowanie
jak go architected być.
Więc jeśli spojrzymy at-- idę przejść przez to, co w rzeczywistości
są w głównych składników DOCKER.
>> Więc Silnik jest w centrum DOCKER.
To mózgu.
To koordynuje budowę, wysyłkę, oraz wdrażania i zarządzania
same pojemniki.
Będę kopać, co robi Silnik dokładniej w sekundę.
Zasadniczo, ponieważ lekarz został zbudowany wokół architektur klient-serwer,
tak, aby współdziałać z Silnik trzeba jakiegoś klienta.
>> Obrazy są szablony które są zbudowane z kontenerów.
Tak więc obrazy są w zasadzie Pliki tylko statyczne.
Szablony i pojemniki jest w rzeczywistości, co jest
działa przy starcie, że odbywa aplikację
lub robi coś z danymi.
>> Ewidencja skierowana jest jako problem jak właściwie dystrybucji obrazów.
Tak więc, jeśli chcesz udostępnić zdjęcie że pracował do kolegi
lub zespołu ops, to używać go przy użyciu rejestru.
Możesz pobrać open source o tym, że w wersji Docker pracował
i open source.
>> Lub użyć Docker pomocy, która to wersja Chmura
do pchania i ciągnięcia obrazów tam.
To duża sprawa.
Ponieważ istnieje ogromna ekosystem wokół DOCKER i to
Naprawdę ciężko wykorzystaniem koncentratora.
>> Tak podsumować tutaj, jest to, w jaki sposób minimalistyczny Docker klienta workflow.
Interakcji z hostem, w w tym przypadku jest to demony dokowane.
To samo, co Engine.
Robisz polecenia, takie jak Docker budować, ciągnąć, bieg.
A sam silnik zostanie i robi takie rzeczy.
>> Więc albo to współdziała z Ewidencja wyciągnąć te obrazy
i warstwy obrazów.
Niezależnie od tego, czy chcesz wdrożyć, uruchom kontenerów, ich zabić, wyrzucić je w dół,
etażerka.
Więc ten podsumowuje workflow wszystkich tych elementów.
>> Więc jeśli wziąć każdy Komponent sama.
Więc silnika, to tylko demon.
To będzie trochę grać na wsparcie to na Linuksie, ponieważ nie
wymagają pewnych funkcji jądra systemu Linux.
Ale system Windows działa on robi to samo.
To ma być obsługiwany przez system Windows Server 2016.
>> Tak więc raz jeszcze obowiązki z Silnik jest, lub są, budować obrazy.
Pociągnij obrazy z Docker Hub lub własnego rejestru.
Jeśli skończysz z tych obrazów lub tworzenia nowych obrazów,
można naciskać te z powrotem do rejestru przesyłanie ich do innych zespołów.
>> I stara się zawierać lokalnie i zarządzania cyklem życia pojemniki
lokalnie.
Jest zbudowany wokół HTTP, REST API.
Więc technicznie można napisać własny klienta
pod warunkiem, że używa protokołu HTTP, który jest bardzo Mechanizm standardowy porozmawiać z silnika
i wiele innych usług.
I widać z tutaj, że niezależnie
z jakiej infrastruktury jest tak długo, jak can-- wszystkich
konieczne jest operacyjne System Linux specjalnie.
>> I można zainstalować Docker Silnik na górze, że i go działa
i koordynuje w zasadzie wszystkie te app jeden, dwa,
a trzy są rzeczywiste pojemniki.
Więc to jest silnik.
Jak wspomniałem wcześniej, ponieważ musisz wchodzić w interakcje z silnika,
jest klient.
>> Ale właściwie po zainstalowaniu Dokowane, IT statki z nim.
Więc to zostanie zainstalowany, więc jest to jeden binarny.
I można zrobić połączenia lokalne do Docker Engine.
Lub zdalne połączenia do odległych silników.
To nie używa protokołu HTTP, jak Wspomniałem wcześniej.
Tam klient GUI o nazwie Kitematic z Docker.
I na pewno są dużo innych ludzi
którzy budują dużo GUI, że w zasadzie wdrożenia
niektóre HTTP wymaga, aby porozmawiać z silnika.
>> To tylko kilka przykładowych komend.
Jeśli robisz wersję Docker, że będzie pokazać wersję klienta, jak również
wersja serwera.
Jeśli zrobisz informacji Docker to będzie powiem Ci wszystkie informacje
o ile kontenery są uruchomione lub utworzone, ile zdjęć trzeba,
i tak dalej, i tak dalej.
>> Tutaj mam, w obok ostatnie pole, muszę biegać do lekarza.
Tak to jest jak jestem w rzeczywistości utworzenie pojemnika.
I daję ją do echo Hello World i spać do drugiego i etażerka.
I można zobaczyć wynik. Więc to jest w toku.
I podobnie jak Linux ps można zobaczyć wszystkie procesy i, w tym przypadku,
wszystkie pojemniki do biegania.
Ta jest nawiązując do pojemnik po prostu stworzył.
>> Tak, to jest bardzo ważne, ponieważ, tak, to może być nieco mylące.
Tak więc zdjęcia są tylko do odczytu, zbiór plików, prawda?
Są to co nasz pojemnik jest oparty.
Ale są tylko do odczytu.
Więc zacząć od obrazu bazowego.
Ma tendencję do naśladowania OS-jak, więc Ubuntu, CentOS, baza etażerka obrazu.
A następnie rozpocząć budowę na górze że pewne warstwy, które tworzą
Obraz twój koniec, koniec prowadzić tutaj.
>> A każda z tych warstw powinien mieć obraz rodzica
że odwołuje, kiedy go rzeczywiście chce stworzyć.
Że są niezmienne w sensie że ponieważ są one tylko do odczytu,
nie można właściwie wprowadzić zmiany do nich.
Można ich używać do stworzenia Pojemnik z obrazu, który
wezwie wszystkie późniejsze Wymagane zdjęcia pod nią.
>> Możesz dokonać zmian do innej warstwy,
jest to warstwa przepisać będę rozmawiać na sekundę.
Jednak każda z tych warstw nigdy nie są zmieniane.
Zasadniczo obrazy użyć czegoś zwana Unia System, UFS File.
I tam są różne przechowywania backendy, które wykorzystują tę technologię.
A co to znaczy, że to łączy różne systemy plików
aby wyglądały jak jeden.
>> Więc można właściwie od perspektywa aplikacji
masz szczyt widokiem, który pokazuje wszystkie innego systemu plików potrzebne
za to na uruchomienie aplikacji.
Ale one są w rzeczywistości, o tym, są rzeczywiście w różnych miejscach
i jest wykorzystywana przez inne pojemniki, jak również.
>> Więc jak widać tutaj, że jeśli zaczniemy z demona obrazu
jako obraz bazowej, a następnie idziemy się i dodaj [? emacs?]
a potem to już inna warstwa.
A następnie dodać Apache.
To kolejna warstwa.
A potem spędzamy Pojemnik z tego.
Każdy z tych obrazów każda z tych warstw
jest różna i może być użyte w innych pojemnikach.
>> Jeśli spojrzeć na samych pojemnikach, są one w jakiś sposób podobny jak VM,
ale nie traktowane w ten sam czas.
Tak, oni nie mają, Technicznie, pełny system operacyjny pod nimi.
Używają jednego jądra systemu operacyjnego hosta.
A oni budować na początku tego.
Naśladować ich w jak wyglądają.
Naśladują one swój plik główny układ od systemu operacyjnego.
Ale faktycznie nie są replikowane.
>> Tak więc, zamiast warstwy niezmienne, ostatnią warstwę, która jest pojemnikiem
Sam, to warstwa do odczytu i zapisu.
To prowadzi również procesy od aplikacji.
A to zależy od warstw.
Każdy pojemnik jest utworzona z obrazu.
A, że obraz może być pojedynczym warstwa lub wielowarstwowy obraz.
>> I chcę, aby pamiętać tutaj które w dużym stopniu wykorzystuje Docker,
lub oparta jest na mechanizmie Copy-on-write.
Tak, że, rzeczywiście, jeśli nie są dokonywania zmian w pojemniku
nie zajmie więcej przestrzeni.
Tak, że w zasadzie, jak ci Podsumowując copy-on-write.
To będzie z pewnością przyspieszy czas rozruchu do pojemnika.
Bo jeśli nie robisz Zmiany w pojemniku
to wykorzystanie tego, co już tam jest.
>> Tak, jak to rzeczywiście działa.
Część jak i teraz, to wykorzystuje co najmniej dwa główne jądro
cechy.
I to jest w zasadzie to, co stworzył ten poziom izolacji
w samych opakowaniach.
Cechy te są przestrzenie nazw i cgroups.
Więc przestrzenie nazw są sposobem tworzenie pojedynczych zasobów,
tak, że w kontenerze, tylko widać pewnych zasobów.
Takich jak interfejsu sieciowego lub na konkretnych użytkowników lub cokolwiek.
>> A ci są widoczne tylko i wyłącznie dostępny w opakowaniu.
Cgroup na innych granicach bocznych sposobu korzystania z tych zasobów.
Procesora, pamięci i dysku.
Kiedy można iść, ja oznaczają te są rzeczywiście
funkcje, które zostały opracowane by-- są one częścią jądra Linuksa.
Tak więc nie były one na nowo przez lub odtworzone przez Docker.
Docker ich używa.
>> Co Doktor naprawdę tutaj jest rzeczywiście
Orchestrated tworzenie przestrzenie nazw dla każdego pojemnika
i tworzenia cgroups tak, że jest to śmiesznie łatwe tworzenie pojemników
korzystania z tych możliwości.
Oczywiście, jak to opisano wcześniej, Unia Systemy plików i kopiowania przy Napisz naprawdę
pomóc szybkość i dysk Wykorzystanie pojemnika.
>> A Po uzyskaniu ręce wokół DOCKER,
masz zamiar zobaczyć jak szybko jest to, aby faktycznie obracają się pojemniki i łzy
je w dół.
Tak więc, jeśli można zapytać, w jaki sposób faktycznie budowania obrazów?
Budować obrazów w procesie tworzenia pojemniki i wprowadzanie zmian, zmienianie
im i ich popełnienia w coraz obraz.
>> Więc jest to kurczak i odniesienia tutaj jajko,
ponieważ wszystkie pojemniki nie od zdjęcia i obrazy pochodzą
z popełnionych pojemnikach, przez większą część.
Dostępne są trzy opcje do tworzenia obrazów.
Mam zamiar opisać pierwszy i ostatni.
Można ręcznie go i uruchom pojemnik
i wprowadzić te zmiany, jak można zrobić na każdej maszynie wirtualnej
lub innym systemem operacyjnym, takim jak instalacja nowych plików binarnych,
dodanie systemów plików i etażerka.
>> A potem wyjść, jak widać tam.
Jestem wyjściu mój pojemnik.
A potem robię Docker popełnić.
A ja popełnienia tego.
Widać, że numer tutaj jest tylko UUID, lub pierwsze 12
bity UUID.
Lub bajtów UUID.
A potem dzwonię to mój obraz.
Więc teraz Docker zajmuje nagrywanie wszystko to zrobiłem
i tworzenie nowych Obraz oparty na tym.
>> Nie będę mówić o archiwum, ale istnieje sposób, można dostać jeden,
stworzenia jednej, lub złożyć jeden Obraz warstwy za pomocą archiwów.
Co zamierzam o tym mówić i to, co najczęściej stosowane dziś,
jest Dockerfile.
Co jest technicznie pierwszy krok zautomatyzowany przez samego DOCKER.
Więc Dockerfiles są rzeczy, że jesteś zobaczymy w wielu repo GitHub
dzisiaj.
Jest to w zasadzie tylko plik tekstowy opisujący
dokładnie, jak budować wizerunek.
>> A dla każdej linii, to faktycznie tworzy pojemnik, wykonuje tę linię,
zobowiązuje się, że pojemnik na Nowy wizerunek, i, w zasadzie,
używać go do wszystkich kolejnych operacji aż dojdziesz do ostatniego obrazu.
Która jest w zasadzie zakończyć cel tutaj, do końca.
I po exec-- po ciebie Napisać swoją Dockerfile, które
jest czysto w tekście, można zrobić DOCKER budowę oraz nazwę obrazu.
>> I wskazują na to, że jest gdzie Dockerfile jest.
I można oczekiwać, aby zobaczyć moje zdjęcie jako obraz, który masz na miejscu.
Więc to tylko wizualne przykładem tego, co się dzieje.
Zaczynasz z obrazu bazowego.
Uruchomić, że do pojemnika, który nie zmienia samego obrazu bazowego.
Ale zamiast tego tworzy przepisać warstwę na wierzchu
gdzie można dokonać zmian, w którym zobowiązują
i powtórzyć proces, aż Ci dotrzeć do ostatecznego obrazu.
>> I w ten sposób, każdy inny build proces może korzystać z tych samych warstw
i same-- zasadzie Docker buforuje te warstwy.
Tak, że jeśli robię dokładnie taki sam Proces, ale zamiast instalacji PHP,
Jestem instalacji Pythona.
To będzie używać Apache i Ubuntu.
Więc ten sposób jesteś wykorzystując swój dysk.
To wykorzystanie pamięci podręcznej i dostępne zdjęcia tam.
>> Ostatnim z elementów jest ewidencja, które to w jaki sposób rozpowszechniać swoje zdjęcia.
I, jak już wspomniałem, istnieje wersja Chmura nim,
co jest Docker Hub.
Możesz iść i zbadać wiele zasadniczo
jest to publiczna produktów SAS, które można jeszcze prywatnych zdjęć,
ale jest wiele zdjęć publicznych.
To właściwie nieograniczona, można pchania nieograniczone obrazów publicznych istnieje.
I to jest, jak to tylko możliwe współpracę z zespołem.
>> Możesz po prostu skieruj je na ciebie repo i mogą go lub obraz pobrać
i można go pobrać.
Tyle z rozmowy.
Kto chce zobaczyć demo bardzo szybko?
W porządku.
Więc tutaj mam.
Ca wy zobaczyć mój ekran?
W porządku.
>> Więc mam Docker działa tutaj, więc można sprawdzić it's-- To jest wersja
z Docker, że to działa.
Może zrobić informacji Docker.
Sprawdź wszystkie informacje o tym, jak wiele zdjęcia mają, i tak dalej i tak dalej.
Docker PS, nic nie działa.
Łączone tych.
>> Tak więc pierwszą rzeczą, którą chcesz zrobić, to pokaż Ci, jak łatwo można uruchomić pojemnik.
Więc Piękno Prowadzony przez lekarza, jeśli to rzeczywiście
nie znajduje obrazu lokalnie, domyślnie mówi do doktora Hub
i stara się go tam znaleźć i pliki do pobrania dla ciebie.
Więc to obejmuje DOCKER wyciągnąć polecenia, naturalnie.
>> Więc jeśli mogę zrobić run Docker, cześć-świat.
Więc, po pierwsze, że będzie starać się go zlokalizować.
W przeciwnym razie, jak widać tutaj, nie mógł znaleźć go lokalnie.
Teraz po prostu wyciągnął dwie warstwy że się, że obraz i prowadził ją.
Hello-świat jest po prostu w zasadzie wyjścia, co masz zrobić.
Więc jest to najprostszy, jeden z najłatwiejszych przykłady.
Tak właściwie, tylko pobiegł i zakończone pojemnik bardzo szybko.
>> Jeśli chcę run-- a przy okazji, jeśli Chcę czasie, tak wiesz,
to jak długo trwa faktycznie obracają się i zawierają go.
Jesteśmy mierzenia go w milisekundach.
Więc widać, jak bardzo może to rzeczywiście pomóc nie tylko w badaniach,
ale także nawet rozmieszczenie.
Więc to krótka notatka na ten temat.
Następną rzeczą, że jestem zamiar zrobić, to rzeczywiście
uruchomić obraz Ja już przygotowane.
Więc dokowanym bieg.
-d tylko flagi powiedzieć go uruchomić w tle.
A p przypisuje określone porty.
Ponieważ domyślnie Kontenery są izolowane,
więc trzeba dokładnie określić, jak może do nich dostęp.
I w tym przypadku, mówię DOCKER mapować losowy port na hoście
do określonego portu w sam pojemnik.
I to w zasadzie gdzie image-- mam nadzieję, że to jest właściwy.
>> Więc to nie równoległe pobieranie każdy z tych warstw, jak można zobaczyć tutaj.
Są wśród warstwy co obraz końcowy, który zbudowałem.
To zajmie chwilę.
I voila.
>> Więc teraz, jeśli zrobię ps DOCKER, że powinienem zobaczyć coś, co jest uruchomiony.
Należy sprawdzić ID, obraz że został on oparty off,
i polecenie, które zostało wykonane.
A jak uzyskać dostęp to po prostu udać się do tego portu.
Więc mam zamiar iść to-- to jest Używam go na AWS.
Mam zamiar iść do 32769.
Ups.
I jedziemy.
>> Tak więc jest to rzeczywiście tylko usługa internetowa, która pokazuje
których pojemnik to serwowane z.
Tak więc widać, że to jest z pojemnika a9f.
I tu jest to Nazwa kontenera.
Więc chłopaki widzą jak szybko było w rzeczywistości nie tylko ciągnąć, ale także
wdrożyć opakowanie.
>> Teraz następnym krokiem jest zajrzeć do Dockerfiles
i jak możemy rzeczywiście budować nowe obrazy.
Idę tylko przejść się klon, A skosztować Dockerfile na podstawie wcześniej
Schemat, jeden z Apache i PHP.
Mam nadzieję, że pamiętam mojego repo.
>> Więc mam repozytorium teraz.
I masz zamiar zobaczyć to dużo naprawdę.
Nie zainstalować drzewo.
>> Więc w zasadzie masz zamiar zobaczyć, jak dokumentacja kod źródłowy wokół
go, a potem na Dockerfile Jak faktycznie umieszczanie go.
Więc to tylko próbka PHP która odzwierciedla powitania CS50.
>> Więc jeśli chcę, aby go uruchomić, Zrobię DOCKER budować.
Muszę zbudować go w pierwszej kolejności.
Mam zamiar wymienić go demo_cs50.
I trzeba do niej znacznik zbyt.
Więc nazwijmy V1 jest kropka.
Tak jak już wspomniano wcześniej, co robię dziś
jest Mówię DOCKER iść korzystania that-- rzeczywiście, przepraszam, mój błąd.
Nie spojrzeć w tym samym Dockerfile.
Więc tylko rzeczy w tutaj index.php jak również readme
i Dockerfile.
>> Więc jeśli spojrzeć na Dockerfile, więc
bardzo podobny do tego, Opisałem wcześniej.
To tylko kilka kroki, które Docker wykonuje operację
poprzez tworzenie i burząc pojemników i [? liczy?] je do obrazka.
>> I w zasadzie można see-- [niesłyszalne] to here--
ale jest to z lokalnego repo.
To będzie iść i grab index.php.
Więc to jest kod Jedynym źródłem, które są w rzeczywistości częścią aplikacji.
Wszystko to są w zasadzie instalacyjnych systemu operacyjnego,
uzyskanie prawa pakiety i Apache i PHP i etażerka.
Ale to jest rzeczywiście biorąc index.php i zobowiązując go do pojemnika,
na obrazie.
>> Więc jeśli iść dalej i uruchomić polecenia w następujący sposób,
to going-- rzeczywistości, może to zająć trochę.
Mam nadzieję, że to nie potrwa zbyt długo.
Więc widać etapy.
I zachęcam, aby przejść z powrotem do domu dziś i spróbuj.
A Mano opisze jak dokładnie to zrobić.
Ale to jest naprawdę wielki, aby zobaczyć dokładnie co się dzieje za kulisami.
Ale to śmiesznie proste w budowie obrazy i wdrażać je przy użyciu DOCKER.
>> To zabiera trochę dłużej, niż się spodziewałem.
>> Zobaczmy, co się dzieje, gdy you-- ostygnięcia.
Więc jak widać, każdy z tych kroków stanowią linie w Dockerfile.
I to widać tutaj, że to udało się stworzyć to zdjęcie.
>> Więc jeśli robię zdjęcia DOCKER, zamierzam zobacz wszystkie obrazy, które mam na miejscu.
I jeden z nich nazywa się mój nazwę użytkownika i nazwę obrazu,
i representing-- tag przede wszystkim jest to tag wersji.
>> Więc teraz, jeśli chcę uruchomić Opisz zrobić bieg DOCKER.
A ja po prostu chcę zrobić -d -P. Czy v1.
Więc widzę, że teraz mam dwa pojemniki pracuje, ten, który po prostu
stworzył i komentarzy Robotnik, który dostałem w zeszłym.
>> I tu widać, że to przypisany jest inny port.
Więc jeśli pójdę do tego samego adresu IP, ale przypisać go inny port-- miejmy nadzieję, że nie.
Więc teraz jest to aplikacja że właśnie wdrażane.
>> Jeśli chcę, aby dokonać zmian, ja można szybko edytować kod źródłowy
i wykonaj następujące czynności.
Zróbmy cześć Harvard.
Więc teraz, co się dzieje się zdarzyć, że jestem
będzie oznaczać go z inna version-- oh,
nie tym guy-- go oznakować w innej wersji.
I masz zamiar see-- zrobić wy spodziewać
to, aby mieć taką samą ilość czasu zbudować go po raz drugi, czy nie?
Wszystko w porządku, a ktoś wie dlaczego?
Mów głośniej.
>> PUBLICZNOŚCI: [niesłyszalne]
>> NICOLA Kabar: Jest to w zasadzie mamy tylko zmienić jeden z późniejszych etapach.
I w związku z tym, że będzie korzystać z cache i użyć każdej z tych warstw.
I to naprawdę jedne z Cechy zabójcą DOCKER
Jak to właściwie wykorzystuje i sposoby ponownego przejęcia
dysk do tego samego Dokładne części informacji.
>> Więc jeśli robimy to samo, zajęło tylko kilka sekund.
Jeśli chcemy redeploy-- więc teraz Powinienem mieć trzy kontenery.
Ale to jest bycie serwowane na the-- siedem jeden.
Więc teraz jest trzeci pojemnik.
Wszyscy rozumieją co właśnie zrobiliśmy tutaj?
>> Więc teraz, jeśli chcesz podzielić się tym Pojemnik bardzo szybko ze swoimi przyjaciółmi,
można po prostu zrobić Robotnik nacisnąć nazwa pojemnika, miejmy nadzieję.
Więc teraz to będzie go przesunąć to-- nie jestem zalogowany tutaj.
Przepraszam za to.
Ale nie mam zamiaru rozwiązywać to teraz.
Ale w zasadzie, że jedno polecenie jest po prostu będzie się przesunąć.
I masz zamiar być w stanie to widzę, jeśli przejdziesz do Docker Hub
I zalogowaniu się, będziesz będzie w stanie go zobaczyć.
I wtedy można po prostu wskazać kto będzie
do korzystania z tego obrazu, aby przejść i wyciągnij go.
I mogą z niego korzystać.
>> Z tym, mam nadzieję, I niby wykazać
jak łatwo jest pracować z Docker.
A ja po prostu się oddać Mano.
I ma zamiar zabrać go stąd.
>> MANO ZNAKI: Dobra dzięki, dzięki Nico.
I co?
Tak więc jedną z rzeczy, chciałem zrobić, to umieścić razem
Dlatego jest to important-- dlaczego Docker i dlaczego
Pojemniki są takie ważne, nowy rozwój,
nowy sposób rzeczywiście robi oprogramowanie.
>> A zanim to zrobię, będę wystarczy wprowadzić kilka statystyk.
Nie zamierzam czytać wszystkie z nich.
Ale to pokazuje wiele o tym, jak popularne jest to w społeczności.
Rdzeń technologii dokowane open source.
Więc to Docker Silnik, komponować, Rój, kilka innych rzeczy
jest open source.
I mamy to, co ja powiedzieć, 1300 współpracowników.
Widzicie teraz, jeśli spojrzeć na liczba ofert pracy, po raz ostatni
przyjrzeliśmy, to było około 43.000 miejsc pracy otwory specjalnie wspomnieć
znajomość DOCKER.
Setki milionów zdjęć mają zostały pobrane z Docker Hub.
I dobrze, o wiele więcej dużych statystyki.
>> Dla tych, którzy są ciekawi, to w Pythonie został napisany
a następnie przepisać do Go.
A to było tylko otworzyć source-- to tylko
została wydana przez około 2 i 1/2 lat, co oznacza, że ​​w 2 i 1/2 roku,
widzieliśmy ogromną ilość wzrostu i wagi
tego w społeczności.
I tak chcę porozmawiać trochę o tym, dlaczego.
>> Więc po prostu przypomnieć niektóre z Kluczowe punkty Nico, Docker jest szybki.
To jest przenośny.
Jest powtarzalne.
I ustawia standardowe środowisko.
>> I what-- to moja słaba kresu monolity slide-- co
to pomaga ludzie, których wiele z branży oprogramowania
zacząłem robić w początku 2000, jest w ruchu
z nich monolityczne pojedyncze aplikacje
gdzie każdy zależność musiał być testowane przed cała aplikacja miał
być rozmieszczone, które może oznaczać stronę internetową
został wdrożony tylko raz co trzy miesiące, lub więcej,
do znacznie większej służby architektury zorientowanej
lub Modułowa inny rodzaj architektury aplikacji.
I tak, dzięki czemu te rodzaj architektur
że skorzystać z Robotnik do pracy w tych trzech
Główne obszary rozwoju, które jest rozwój pisania rzeczywisty kod,
testowanie kodu i wdrażania go.
>> Więc dlaczego jest to ważne?
Jeśli jesteś A-- podam przykład.
Jeśli są Państwo na stronie internetowej, deweloper urządzenie, jesteś
tworzenie strony internetowej, która jest oparta na bazy danych, że David produkowane tutaj.
Niestety David, Wołam cię.
Jeśli chciał wdrożyć cała sprawa, to że
trzeba czekać pod tradycyjny monolityczne rozwoju oprogramowania
środowiska, trzeba czekać aż w końcu zrobić z bazą danych
zanim można rzeczywiście zrobić wszelkie zmiany swojej stronie.
Trzeba się przesunięcie Cała aplikacja do tego.
>> A co Docker pozwala zrobić, to każda osoba, praca na różnych komponentów
i ich aktualizacji, jak idą, tylko co upewnić się, że interfejsy pozostają takie same.
Więc to, co zrobiła jest to przesunięte ludzi
od robienia tych masywnych monolityczne architected oprogramowanie
rozmieszczone co miesiąc do ciągłego integracja i ciągły rozwój
środowisko.
>> Teraz to nie jest przypisany do Docker, ale Docker sprawia, że ​​o wiele łatwiej,
co oznacza, że ​​jesteś w zasadzie stale wdrażania.
Rozmawiamy z przedsiębiorstw, które są wdrażania aplikacji w obliczu publicznych
tysiące razy dziennie, ponieważ widzą wartość w tylko co
małe zmiany, i tak długo, ponieważ przebiega testów
pozwalając mu iść do produkcji.
Nico zawsze mi powiedzieć, wcześniej, że w wielu środowiskach,
średnia cyklu życia Pojemnik jest mierzone w sekundach
podczas gdy maszyna wirtualna może być mierzona w miesiącach.
>> Chciałem zabrać niewielki zwrócić tu, bo jestem
w instytucji edukacyjnej.
Chciałem dać przykład, jak to działa w badaniach edukacyjnych
sytuacja.
Więc jest organizacja zwane bioboxes.
Bioboxes robi DNA Analiza dla naukowców.
>> Teraz to, co było to, że kiedy researcher-- i to nie jest
winą żadnego konkretnego researcher-- ale kiedy
badacz wdrażane algorytm do analizy,
W sposób szczególny, próbka DNA, oni napisanie oprogramowania,
publikowanie, że, być może, aby GitHub lub gdzieś indziej,
a następnie zostały one zrobione.
>> Cóż problemem było to, że niekoniecznie powtarzalna.
Ponieważ w celu rozumiem oprogramowanie,
byłyby ustawić dla Dokładna środowisko programistyczne
że badacz stosowane, zwykle ich laptop, lub serwer, czy dane
centrum, które zostały przy użyciu.
I w związku z tym, to było bardzo trudne do odtworzenia wyników badań, gdy
Analizując próbki DNA szukać na takie rzeczy jak incidence--
porównanie częstości występowania zawałów serca w oparciu o pewne geny są obecne,
na przykład, czy ryzyko raka, lub każdy z innych rodzajów rzeczy.
>> Więc to, co zrobili, a nie było zaczęli tworzenie pojemników.
I można przejść do bioboxes.org, jest to świetna organizacja.
I to, co robią jest ich produkcji Pojemniki na podstawie badań.
A potem, kiedy ktoś wysyła w ich próbki, mogą go uruchomić.
I ma wszystkie środowiska potrzebne do uruchomienia tego algorytmu
i wytwarzają wyniki.
A oni stwierdzenie, że są one znacznie częściej i znacznie
szybciej stanie powrót wyników do ludzi.
>> A w rzeczywistości, co robią działają na własną analizę DNA,
wysyłanie, że w celu bioboxes i następnie biobox po prostu ma danych,
prowadzi go przed różnymi w różne pojemniki
aby zobaczyć różne wyniki na podstawie innego badania.
Więc jest to bardzo mocny sposób, w jaki naukowcy
można wykonać jedną instancję, która pozwala innych ludzi, aby spróbować odtworzyć
wyniki.
>> Więc jak zacząć?
Jesteśmy dobrze obsługiwane w systemie Linux.
Więc jeśli chcesz zainstalować coś na Linuksie,
używasz standardu Menedżer pakietów do zainstalowania.
Jeśli używasz Debiana, to apt get.
CentOS jest mniam.
Red Hat Fedora jest rpm-- nie pamiętam.
W każdym razie, to wszystko tam jest.
Wspieramy wiele różnych z dystrybucji Linuksa.
Możesz sprawdzić te na zewnątrz.
>> Mamy też opcje, tak Ciebie może uruchomić na komputerze Mac lub Windows.
Teraz Nico wspomniano wcześniej, że był obsługiwany tylko w systemie Linux.
To prawda, bo to potrzebuje jądra Linuksa.
Ale można uruchomić na maszynie wirtualnej.
A co do Docker Toolbox nie, które można pobrać,
to daje tę maszynę wirtualną.
>> Więc po prostu szybki 48 po drugie, myślę, pobrać.
Wystarczy wyszukać na DOCKER Toolbox, pobrać go do komputera Mac,
i ta część jest Oczywiście przyspieszyło bo kto
chce oglądać sygnał pobierania?
Instalacja standardowa Mac, a następnie jesteś
zobaczymy Jerome umieścić w swoim hasłem.
To bardzo ekscytujące.
A następnie instaluje cała masa narzędzi.
A szczególnie, że będzie zainstalować z wiersza polecenia.
A potem można było zobaczyć Jerome testowania swoich obrazów.
>> A następnie w oparciu o to, widać, że YouTube
uważa, że ​​Nico jest zainteresowany Star Wars, The Jimmy Kimmel Show,
i myślę, że Ellen.
Myślę, że ostatnia jest klip z serialu Ellen.
>> Więc Docker Toolbox choć pochodzi z więcej niż tylko Docker Machine.
Więc Docker Maszyna rzecz, która pomaga
skonfigurować wirtualny Maszyna na systemie Windows
lub Mac-- swoje okno systemu Windows lub komputera Mac box-- i pomaga robić rezerw,
>> Ale to także jest wyposażony Swarm i komponować,
które mają na celu pomóc Ci zrobić duży drożeń aplikacji.
Więc jeśli chcesz zarządzać klastry węzłów,
skupiska kontenerów, Redagowanie i Swarm są sposobem, aby go o tym.
>> I oczywiście chodzi o Docker Silnik i Kitematic,
co jest to pulpit GUI.
Należy również wspomnieć, Docker rejestru, która nie jest wliczona w Toolbox,
ale jest to sposób, aby uruchomić własną rękę rejestry z Docker Obrazy jak Docker
Hub, ale można też po prostu użyć Docker Hub jako sposób to zrobić.
>> A fabuła skręt, widzisz uruchomiony w pojemniku.
I tak jesteśmy dystrybucji nasze slajdy.
Ta cała prezentacja jest faktycznie pokład HTML slajdów.
I to działa w pojemnik, który można uzyskać by--
>> NICOLA Kabar: Tak, tak, to jest pracuje na pełny etat na mojej Max.
A ja prezentuje od niego.
I po prostu zrobić DOCKER po zainstalowaniu Toolbox.
Możesz po prostu zrobić bieg DOCKER i zrobić to, i korzystać ze zjeżdżalni.
>> MANO ZNAKI: I to wszystko.
Więc dziękuję wszystkim za przybycie.
A my chętnie odpowiemy na pytania.
Należy wspomnieć, przed nikim liście nie ma koszulki tam.
Niestety każdy, kto ogląda to na Livestream lub wideo,
ale mamy dokowane koszulki tam.
I wiemy, że studenci dokowane, i moim doświadczeniem,
profesorowie też, jak wolny odzieży.
>> Więc dziękuję wszystkim za przybycie.
I dołącz do nas na Twitterze jeśli chcesz, czy nie.
Nie obchodzi mnie to.
Również śledzić DOCKER na Twitterze.
To też ciekawe.
A potem to wszystko.
Docker.com.
Dziękuję.
>> [OKLASKI]