w Praktyce
4 godz. 33 min · Docker · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerW początkowych sekcjach kursu, zrozumiesz czym jest Docker i jakie ma zalety wobec rozwiązań oferujących pracę z serwerami lokalnymi, np. XAMPP - poznasz jego architekturę, założenia oraz najważniejsze pojęcia, których nieznajomość często spędza sen z powiek nawet doświadczonym programistom.
Jako że Docker jest to narzędzie dla programistów i administratorów systemów operacyjnych, lwia część pracy z tym narzędziem odbywa się w konsoli. Przedstawię Ci najważniejsze polecenia powiązane z tą technologią oraz zestaw dobrych praktyk i protipów które zawstydzą niejednego inżyniera oprogramowania.
W tej sekcji tego kursu przejdziemy przez najważniejsze punkty tworzenia skonteneryzowanych aplikacji z perspektywy programisty aplikacji internetowych - jeśli chcesz szybko rozpocząć swoją przygodę z Dockerem, ponieważ znasz już podstawy teorii i czujesz się wystarczająco pewnie - możesz zacząć z tego miejsca! A jeśli tempo będzie zbyt szybkie - zawsze możesz wrócić do części teoretycznej pracy z Dockerem
Przebudowywanie zasobów na żywo, dynamiczne odczytywanie zawartości plików... To podstawowe koncepty które współcześni programiści sieci web biorą za pewnik. Przy nieznajomości Dockera, łatwo jest strzelić sobie w stopę i utrudnić swoją pracę, zabierając sobie możliwość korzystania z powyższych funkcjonalności. W tym kursie, pokażę Ci jak wygodnie pracować z Dockerem w środowisku developerskim.
Jedną z wielu zalet Dockera jest niewątpliwie proste przenoszenie zmian konfiguracji i infrastruktury ze środowiska developerskiego na produkcyjne. W tym kursie, poza przyswojeniem podstawowej wiedzy na temat Dockera poznasz szereg dobrych praktyk w kontekście bezpieczeństwa oraz przygotowywania Twoich aplikacji pod środowisko, na którym będzie uruchomiona Twoja aplikacja gdy uznasz że jest gotowa by ujrzeć światło dzienne.
Ten kurs to zestaw kompleksowej wiedzy dzięki której dowiesz się jak od zera, na żywo, stworzyć aplikację na Twoim lokalnym środowisku - i jakie kroki należy podjąć, aby móc zobaczyć ją w internecie - wszystko w kontekście Dockera, wysokiej skalowalności i bezpieczeństwa. W jednej z ostatnich lekcji kursu zobaczysz jak robię deploy na serwery DigitalOcean by uzyskać link do swojej nowo zbudowanej aplikacji internetowej.
Ten kurs jest kierowany do webdeveloperów, bądź zaawansowanych programistów którzy nie pracowali jeszcze z Dockerem. Przydatne może być zrozumienie interfejsu linii poleceń czyli tzw. konsoli, oraz podstawowa wiedza na temat web developmentu czy systemów operacyjnych. Jeśli potrafisz korzystać z systemu kontroli wersji git, na pewno ułatwi to Tobie zrozumienie konceptu pracy z poleceniami dockera. Niemniej, każde zagadnienie staram się tłumaczyć na bieżąco.
Cześć! W tej lekcji opowiem Ci troszkę o różnicy
między poszczególnymi wersjami obrazów, bo często możesz się natknąć na sytuację,
że masz noda, który jest na przykład w wersji 17 6.
Ale np. jest jeszcze Alpine albo Jazz.
Albo jeszcze inne wersje.
Jeżeli wejdziemy na tutaj na to chyba
klikniemy to zobaczysz, że tych wersji jest dużo.
Tych tagów jest naprawdę wiele, wiele, wiele i one się różnią
między sobą tym co się tam dzieje pod spodem.
Więc tutaj jest taki artykuł od góry kulinaria.
Mam nadzieję, że nie nie wypowiedziałem tego zbyt źle.
Gdzie ona tłumaczy różnice między tymi
systemami operacyjnymi, które są ładowane pod spodem?
W momencie kiedy robimy front w naszym.
No i generalnie jest to bardzo specyficzne dla danego systemu operacyjnego.
Ona tutaj się skupia bardziej na.
Na Debianie.
Czyli np.
nazewnictwo Debiana.
Jeżeli chodzi o wersję systemu operacyjnego jest bazowanie na
nazwach postaci z Toy Story, dlatego jest też Buster Design Wizji.
Jest też Sid, który jest zawsze Unstable.
Generalnie to jest bardzo mocno systemowo opresyjna nomenklatura,
więc jeżeli się na tym nie jest to Twoja mocna strona i nie wiesz, którego wybrać.
Po prostu korzystaj z oficjalnych wersji danego obrazu.
Czyli jeżeli wiesz, że chcesz korzystać z
wersji 17 6, to po prostu wpisz nawet 17 kropka 6 i to będzie jak najbardziej ok.
Nie interesuje Cię wtedy to co jest pod spodem tego obrazu.
Ale jeżeli chodzi o
wersje produkcyjne czystej, rynkowe to tutaj już jest to troszkę ważniejsze.
Jest np. też sufiks slim do niektórych obrazów i
generalnie te obrazy po prostu są troszkę odchudzone.
Nie ma w nich niektórych zależności,
nie ma niektórych poleceń, które mogą być przydatne w środowiskach developerskich.
No i jest też Alpine, ale jest najwspanialszym rodzajem obrazów jeżeli
chodzi o środowiska produkcyjne, ponieważ jest o wiele, wiele lżejsze.
Jeżeli sobie zobaczymy tutaj docker image.
LS i widzimy, że nasz obraz do krowy.
Oczywiście tutaj się nam porobiło więcej,
więc na pewno będziemy musieli się ich pozbyć w pewnym momencie.
Waży aż 900 megabajtów,
więc jeżeli byśmy chcieli wziąć jakiś lżejszy obraz to możemy np.
wziąć 17 Alpine czy 14 to przypiszemy,
czyli wersja Nada 17 na Alpine 3.14.
Zobaczymy czy dobrze to przepisałem. Tak jest.
No i spróbujemy zbudować kolejny obraz,
czyli tutaj zrobimy sobie docker build kropka tak?
Docker na old alpine.
I on tutaj będzie już zassał ten obraz od
początku, Ponieważ nie mieliśmy chyba delfina zainstalowanego, więc jak widzicie
tutaj tę warstwę i kasowanie dzieje się od początku, ponieważ jest inny
system operacyjny, który jest uruchamiany pod spodem.
I jak to się skończy?
I mecze les.
To zobaczymy, że nasz
Alpine waży aż 168 megabajtów w porównaniu do prawie GB naszego obrazu z samym modem,
więc widzimy, że waga tego obrazu to jest przypominam pusty obraz obudowy.
Tam nie ma nawet w ogóle naszej aplikacji,
jest ilość siedmiokrotnie mniejsza w przypadku niektórych obrazów jak np.
Engines.
Jest to rząd wielkości stukrotnie, ponieważ niektóre obrazy potrafią ważyć po
powiedzmy 2 MB albo 20 MB, w związku z czym jeśli chodzi o tagowanie
pamiętajcie po prostu, że jeżeli nie podacie żadnego tagu, czyli
wersji obrazu po dwukropka, to zawsze bierzecie latest.
Ta opcja jest równoznaczna z tą, ale jeśli wiecie, że zawsze chcecie
korzystać z danej wersji Notepad to polecam oczywiście robić,
żeby wasze aplikacje się same automatycznie nie dawały.
Gdy ktoś będzie je budował po raz kolejny troszkę później.
No to wpisujcie sobie np.
17 6 jako wersję z której chcecie korzystać albo 17
jeżeli zależy Wam tylko na tych głównych listach.
No a jeżeli będziecie pracowali na obrazach, które mają być użyte na
produkcję, no to koniecznie korzystajcie z Alpina i to też przy okazji omawiania
różnych przykładowych obrazów produkcyjnych będziemy omawiać.
Więc zostawiam tutaj link do artykułu Juli.
No i jeżeli będziecie chcieli więcej poznać nomenklatury np.
Debiana to odsyłam na stronę Debiana.
I to tyle jeżeli chodzi o różne wersje
systemów operacyjnych czy tagów w obrazach, które pobieramy np.
.