‫No cześć?
‫A może powinienem powitać przyszłość zarządzania oprogramowaniem za pomocą platformy Docker i narzędzi kontenerowych?
‫Ten film dotyczy konkretnie platformy Docker.
‫Przez lata miał wiele narzędzi, ale ten film dotyczy trzech głównych innowacji, które
‫zapoczątkowały całą ewolucję oprogramowania Docker w 2013 roku.
‫To głównie trzy rzeczy: obraz Dockera, rejestr Dockera, a następnie kontener Dockera.
‫Większość z nas, kiedy myślimy o Dockerze, myślimy o kontenerze.
‫Ale te trzy innowacje idą w parze jak chleb i masło i nazywają to Add, Docker, build,
‫ship run.
‫Są to trzy kroki, aby pobrać oprogramowanie, które wcześniej nie służyło do identyfikacji kontenerów, przekształcić je w obraz dokera, umieścić w rejestrze,
‫przenieść do miejsca, w którym trzeba je uruchomić, a następnie utworzyć z niego kontener.
‫W rzeczywistości, Ciencia for the Cloud Native Computing Foundation, o której wiele narzędzi będzie omawiać
‫we wszystkich moich filmach, te produkty i narzędzia oraz przepływy pracy zakładają w większości
‫przypadków, że używasz przepływu pracy kontenera, uruchomienia statku kompilacji .
‫Więc podzielmy je i dokładnie czym są te trzy.
‫Po pierwsze, obraz kontenera i lubię myśleć o nim jako o uniwersalnym narzędziu do pakowania aplikacji, a przez lata
‫mieliśmy wielu menedżerów pakietów.
‫Właściwie straciłem rachubę i byłem w pobliżu wszystkich menedżerów pakietów, ale nigdy nie pamiętam niczego,
‫co byłoby niezależne od różnych systemów operacyjnych i języka aplikacji, co oznacza, że będzie działać wszędzie i to działa
‫na wszystkim, o ile działa na systemie Linux lub Windows.
‫Przyjrzyjmy się teraz naprawdę szybkiemu plikowi Docker, który jest przepisem lub zestawem instrukcji tworzenia obrazu kontenera, obraz
‫dockera i obraz kontenera są tym samym terminem na to samo.
‫W rzeczywistości specyfikacja obrazu Docker była tak popularna, że jest teraz standardem znanym jako standard obrazu
‫OCI.
‫Widzisz więc zestaw instrukcji, a każdy plik Dockera potrzebuje na początek.
‫Możemy zacząć od cudzego wizerunku.
‫Możemy mieć wiele obrazów, wiele z.
‫Więc zajmiemy się całą tą złożonością później.
‫Ale zaczynamy od pytona i idziemy w dół.
‫W rzeczywistości zaczynamy od nich jako warstw.
‫Każde z tych poleceń w pliku Docker czasami nazywane jest zwrotką z dużymi literami, w tym
‫od, a następnie uruchom i poruszając się w dół, ponieważ przetwarza je od góry
‫do dołu, tworzy warstwy, które są przenoszone po serwerach jako tarballe.
‫Wewnątrz tych warstw znajdują się pliki, katalogi i uprawnienia do plików, a czasem metadane, do których przejdziemy
‫później.
‫Kiedy zacznę budować ten obraz, rozpocznie się pierwsza linia i odnajdę obraz Pythona z Docker Hub lub z
‫dowolnego miejsca, z którego kazałem pobrać obraz.
‫Obejmuje to tylko Pythona, to są binaria i biblioteki.
‫Nie zawiera sterowników hosta, jądra Linuksa ani niczego poza tym, co Python potrzebuje do działania.
‫Jeśli Python potrzebuje otwartego SSL, to jest to zawarte w tej warstwie obrazu.
‫Następnie możemy przejść do następnej linii pliku Docker.
‫To jest polecenie PIP dla instalatora zależności Pythona i instaluje kolbę.
‫To rozpocznie nową warstwę, która dodaje kolbę, tak jak przy normalnym poleceniu instalacji pip.
‫W rzeczywistości to, co dzieje się w tle, to uruchamianie szybkich małych kontenerów dla każdej z tych
‫warstw, uruchamianie poleceń lub robienie wszystkiego, co trzeba zrobić wewnątrz tych warstw, a
‫następnie przechowywanie ich w osobnej lokalizacji na hoście Linux, który to buduje.
‫Więc układamy warstwy tutaj, a potem przechodzimy do następnej linii, polecenia kopiowania, pracy.
‫Nastąpiła tylko zmiana metadanych.
‫Po prostu zmienia lokalizacje w systemie plików, nic wielkiego.
‫Polecenie copy kopiuje nasz kod źródłowy z hosta, na którym budujemy, do własnej warstwy ułożonej na
‫innych.
‫Te razem tworzą obraz za pomocą polecenia build docker.
‫Jest to jedna z tych rzeczy w Dockerze, które stały się tak łatwe w użyciu, ponieważ potrzebowaliśmy tylko
‫tego prostego polecenia kompilacji Docker, aby wziąć kilka złożonych rzeczy, które mają miejsce w pliku Docker i przekształcić je w
‫jeden obraz.
‫To tylko nasza aplikacja i tylko potrzebne jej zależności i nic więcej.
‫To pierwsza część cyklu budowy statku, który został zbudowany przez Dockera.
‫Następnie porozmawiajmy o rejestrze.
‫Rejestr platformy Docker służy do dystrybucji aplikacji.
‫Każdy system pakowania aplikacji ma sposób na ominięcie tych pakietów, a rejestr Dockera nie różni
‫się teraz.
‫Jest to po prostu znane jako specyfikacja dystrybucji OCI lub specyfikacja rejestru OCI.
‫Jest to więc znowu standard w całej branży, w jaki sposób przenosić obrazy kontenerów.
‫I jest wszędzie.
‫Każda chmura ma jedną.
‫Docker hub jest domyślnym i prawdopodobnie najpopularniejszym.
‫GitHub ma jeden Bitbucket GitLab.
‫Wszystkie mają własne rejestry obrazów i możesz je uruchomić.
‫Istnieje prawdopodobnie co najmniej tuzin projektów bezpłatnego, otwartego i płatnego oprogramowania, które pozwala przechowywać
‫w nich obrazy Dockera.
‫Zobaczmy więc, jak to działa.
‫Po pierwsze, mamy nasz obraz, który właśnie zbudowaliśmy, i ten obraz ma unikalny hash sha, który identyfikuje wszystkie te
‫warstwy razem w sposób, który gwarantuje, że jeśli spojrzymy na hash w dwóch różnych systemach, możemy być
‫pewni, że jest dokładnie te same pliki, dokładnie te same metadane, które właśnie zbudowaliśmy.
‫Te warstwy obrazu łączą się i rozprowadzają.
‫Możemy użyć czegoś takiego jak Docker Push, aby pobrać te warstwy obrazu i przesłać je do rejestru.
‫Możesz użyć jednego z wielu rejestrów, jak wspomniałem, ale kiedy już tam jest, możesz
‫przejść do innego komputera i wykonać przeciągnięcie Dockera, które ściągnie identyczną kopię tego obrazu na tę maszynę, tak jak
‫ją zbudowaliśmy pierwsza maszyna.
‫I to jest jedna z podstawowych zasad Dockera, jest to, że jesteśmy w stanie wziąć
‫oprogramowanie, które stworzyliśmy na jednym komputerze ze wszystkimi jego zależnościami i uruchomić je dokładnie w ten sam sposób na
‫innym systemie, który może być zupełnie innymi dystrybucjami Linuksa lub Windows.
‫Jeśli korzystasz z Linuksa i budujesz obraz Linuksa, który musi działać pod Linuksem, ponieważ używa binariów Linuksa.
‫Jeśli zbudowałeś go na CentOS i uruchomiłeś na Bonita, byłaby to dokładnie ta sama aplikacja i zależności niezależnie
‫od tej dystrybucji.
‫Na koniec dochodzimy do samego kontenera Dockera.
‫Po wykonaniu wszystkich tych kroków budowania obrazu, umieszczania go w określonej lokalizacji, możemy uzyskać do niego dostęp
‫z naszych serwerów, a następnie pobrać go na nasze serwery.
‫Możemy to uruchomić.
‫Wyobraźmy sobie, że mamy serwer z systemem Linux.
‫Może to być system Windows, ale w tym przypadku skupimy się tylko na Linuksie.
‫Będzie miał Docker działający w tle, znany jako silnik Dockera.
‫A silnik na tej pojedynczej maszynie będzie aranżował lub zarządzał wszystkimi różnymi rzeczami, które muszą
‫się wydarzyć, aby pobrać obrazy, weryfikować, czy są to dokładnie te rzeczy, które miały zostać pobrane, a następnie
‫w końcu je uruchamiać.
‫Następnie otrzymujemy obraz, który właśnie pobraliśmy za pomocą ankiety Dockera, a następnie uruchamiamy polecenie.
‫Nie jest tak naprawdę ważne, aby nauczyć się poleceń, ale jest to polecenie uruchomienia Dockera.
‫To jest biegowa część kursu budowy statku.
‫W tym przypadku uruchamiamy tę aplikację Pythona w jej własnym kontenerze.
‫Ten kontener jest znany jako przestrzeń nazw.
‫To ta funkcja Linuksa, która uniemożliwia aplikacji działającej w tym kontenerze zobaczenie reszty
‫systemu operacyjnego.
‫Pobiera swój własny pusty system plików i będzie zawierał tylko pliki, które znajdowały się na tym właśnie obrazie, który właśnie
‫zbudowaliśmy.
‫Otrzyma swój własny adres IP i własną wirtualną kartę sieciową oraz własną listę procesów i zasadniczo wygląda jak
‫własny system w środku.
‫Następnie, jeśli ponownie uruchomimy to polecenie Docker run z naszą nazwą obrazu lub hashem obrazu, otrzymamy
‫identyczny kontener działający obok siebie.
‫Teraz te dwa procesy są od siebie odizolowane.
‫Tak więc aplikacja Pythona, kontener jeden nie może zobaczyć aplikacji Pythona i kontenera drugiego.
‫A jeśli zmienisz plik w kontenerze na kontener jeden, domyślnie nie zobaczysz tego pliku.
‫Gdybyśmy dodali drugi serwer z drugą instancją silnika Dockera i zrobili to samo, moglibyśmy mieć wysoce dostępną konfigurację
‫z naszą aplikacją, działającą wiele razy w celu zapewnienia nadmiarowości lub lepszej wydajności lub z jakiegokolwiek
‫powodu, dla którego moglibyśmy uruchamiać więcej niż jeden z nich.
‫Będą one identyczne z punktu widzenia systemu plików, uprawnień i metadanych.
‫Teraz jest mnóstwo rzeczy, których możemy się dowiedzieć o tych rzeczach, dlatego kurs, który mam, jest teraz
‫tak długi.
‫Ale to wciąż trzy rzeczy, które nie zmieniły się po Dockerze.
‫Najpierw je skonceptualizował.
‫Idea budowania statku jest jedną z podstawowych zasad kontenera i steru Kubernetes.
‫Nazywasz projekt w ekosystemie natywnym dla chmury i prawdopodobnie zakładasz, że masz typowy
‫rodzaj przepływu pracy, aby przenieść aplikacje z rąk programisty do systemów testowych, a następnie na
‫serwery produkcyjne.
‫To te same trzy kroki, więc miejmy nadzieję, że zacznie się to trochę zagłębiać, aby zrozumieć, dlaczego
‫są to trzy kluczowe elementy.
‫Nawet dzisiaj, wiele, wiele lat po tym, jak to wszystko zostało wymyślone, dowiedzmy się, co dalej.