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 o tym, jak
zainstalować Dockera na Waszych środowiskach.
Oczywiście ten proces będzie się różnił w
zależności od różnych systemów operacyjnych.
Na Maku jest to naprawdę proste.
Generalnie tak jak wspomniałem będziemy
korzystali z aplikacji Docker Desktop, czyli np.
dla Maca jest to Docker for Mac
i na samym Maku instalacja jest naprawdę banalnie prosta.
Zastanawiam się czy jak kliknę to otworzy nam się tutaj installer na maku.
Po prostu przeciągamy tak naprawdę
instalację do naszego folderu applications.
Uruchamiamy i to wszystko chodzi.
Jeżeli chodzi o Windowsa to jest troszkę
bardziej skomplikowane, bo nawet Docker desktop.
Tutaj się też utworzył installer.
Ja to sobie przerwę.
Może wymagać czegoś takiego jak WSL czyli Window System for Linux bodajże.
Ja z Windowsa też nie korzystam
zawodowo już od ładnych paru lat, także nie jestem ekspertem w tej dziedzinie.
Natomiast jest to po prostu taka
API dla Windowsa, które korzysta z tych samych składni, tych samych poleceń,
z których korzystają systemy linuksowe jak np.
Ubuntu czy Debian.
A jako że Docker działa
został stworzony z myślą o Linuksie i działa najlepiej na Linuksie.
Prawdopodobnie instalacja Dockera będzie
działała lepiej jeżeli macie już zainstalowane WSL dla Windowsa.
Jeżeli chodzi o poradniki o tym jak to zainstalować dla danych systemów
operacyjnych to tutaj tego nie będę omawiał, bo po prostu tych systemów
operacyjnych jest dużo, tam dużo może pójść.
Też jest dużo takich zmiennych, nad którymi ciężko mieć kontrolę.
W związku z czym chciałbym polecić tutaj kanał na YouTubie.
Bardzo dobrze wytłumaczył instalację na Windowsie.
Tak jak wspomniałem instalacja na macOS jest tak prosta jak po prostu
kliknięcie instalatora i przeciągnięcie go do folderu Applications.
Na Linuksie jest to troszkę trudniejsze,
tam trzeba wydać kilka poleceń apt get update apt get install
no i wtedy po prostu instaluje się wszystkie zależności.
Tutaj oczywiście jest to wszystko udokumentowane.
Jeżeli klikniecie sobie np.
na Linuxa to jest też bardzo dużo silników docelowych.
Docker Desktop jest darmowy dla osób prywatnych
czy dla organizacji poniżej pewnego poziomu, bodajże poniżej 250 pracowników.
I z reguły jest najprostszą opcją instalacji Dockera na systemach lokalnych.
Natomiast jeżeli pracujecie w jakiejś
korporacji, no to oczywiście wtedy trzeba korzystać z innych rozwiązań i tutaj jest
od od momentu nie trzeba korzystać z innych rozwiązań.
Natomiast od niedawna wprowadził Docker for Desktop po prostu opłatę miesięczną
per każda instalacja, w związku z czym wiele korporacji odchodzi z desktop.
Ponieważ Docker jest darmowym silnikiem, a Docker jest tylko aplikacją, która
ułatwia pracę na waszych systemach lokalnych.
I tak jak mówiłem tutaj mam już to przekreślone, bo mam zainstalowanego
Dockera, natomiast na macOS się po prostu przeciąga tutaj Applications i to działa.
Więc jeżeli tutaj to sobie zamknę i wrócimy tutaj,
to mamy bardzo dużo alternatyw dla Docker for Desktop i
zarówno dla Windowsa jak i dla macOS a tych silników jest naprawdę dużo.
Ja te wszystkie linki oczywiście zostawię w odpowiednich sekcjach tego kursu.
Ale jednym z takich popularniejszych alternatyw jest Mini Klub i Mini Club.
Jest to taki silnik, który pozwala Wam też uruchamiać hibernacji.
Hibernacji, czyli taką na wstawkę dla
Dockera, w której jesteście w stanie zarządzać dyplomatami jakby hibernacji.
Jest bardzo takim już produkcyjnym rozwiązaniem
na tworzenie infrastruktury, która jest skalowalna, to znaczy np.
takiej, która w zależności od tego, ile jest ruchu na naszej stronie internetowej
będzie tworzyła więcej instancji naszego serwera, np.
imiennik. Jest to po prostu taki pojedynczy klaster.
A jako że hibernacji jako jeden ze swoich silników
posiada wsparcie dla Dockera, to jest tutaj duże
poparcie ze strony community, żeby po prostu przejść na mini.
Jeżeli nie chcecie korzystać z docker docker desktop.
Jest klima, ale to naprawdę bardzo dużo.
Natomiast jeżeli pracujecie lokalnie.
Jeżeli korzystacie z Dockera jako bardziej PET project w tym momencie albo
chcecie się uczyć Dockera, a niekoniecznie korzystać z niego
w takich dużych korporacjach, które posiadają ileś tam pracowników albo
mają powyżej danej kwoty na to Docker desktop będzie
najprostszym rozwiązaniem i ja też tutaj korzystam z Docker desktop.
I oczywiście pokażę też na szybko.
Jak wygląda sama aplikacja, czyli po instalacji.
Mamy tutaj taką ikonkę.
Oczywiście na Windowsie ona będzie w innym miejscu, tam na dole w pasku zadań.
Chyba, że jesteście na Windowsie 11 to nie wiem jak to tam wygląda
i raczej interfejs użytkownika jest taki sam niezależnie od platformy.
Czyli czy jesteście na Windowsie czy
jesteście na macOS będziecie widzieć dokładnie to samo.
Możecie tutaj podejrzeć różne zainstalowane obrazy.
Ja tutaj nie mam w tym momencie
zainstalowanych żadnych, bo wyczyściłem mój system volume i wolumeny.
Tak naprawdę można to uznać jako dyski twarde.
No i tutaj jesteście nawet w stanie
zarządzać tym, jak dużo zasobów powinien się zużywać.
I tak jak wspomniałem w tych różnicach
między XAMPP a Dockera ciężko jest tutaj o jakąś kontrolę nad tym
ile zasobów zużyje XAMPP a w momencie kiedy Docker ma
określoną liczbę rdzeni czy pamięci, którą może wykorzystać, no to
mamy tę pewność, że on nigdy nie przekroczy tego tego progu krytycznego.
Czyli jeśli np. sobie ustawimy, że połowę
naszej mocy obliczeniowej procesora i połowę naszej mocy obliczeniowej
pamięci RAM przeznaczamy na Dockera, no to wiemy, że nasz system operacyjny nie
będzie zwalniał kosztem tego, aby aplikacje docelowe chodziły szybciej.
W momencie kiedy Docker osiągnie po prostu ten limit, aplikacje Dockera, czyli nasze
strony internetowe, które będziemy pisali po prostu będą troszkę zwalniały,
ale nie będzie to miało wpływu na Wasze lokalne środowisko.
No i oczywiście też zaleta taka
Docker desktop jest jest taka, że po prostu możemy włączyć
Hibernate, o którym też troszkę powiem w ostatnich lekcjach tego kursu jednym
kliknięciem i mamy zainstalowany klaster, a tak naprawdę nie będziemy korzystali z
tego interfejsu użytkownika tak bardzo będziemy korzystali z komend
linii poleceń w naszej powłoce fish albo bash I to jest najlepsza praktyka do
podążania, ponieważ niezależnie na jakim systemie operacyjnym się będziecie
znajdowali, te komendy są spójne i API Dockera jest takie samo.
Więc do zobaczenia w kolejnym kursie, w
którym omówimy różnice między obrazami i kontenerami.
https://www.mediaglasses.blog/2021/09/05/docker-desktop-alternatives-for-macos/
https://itnext.io/goodbye-docker-desktop-hello-minikube-3649f2a1c469
https://github.com/abiosoft/colima
https://itnext.io/goodbye-docker-desktop-hello-minikube-3649f2a1c469
https://dhwaneetbhatt.com/blog/run-docker-without-docker-desktop-on-macos
https://www.youtube.com/watch?v=8Ev1aXl7TGY
https://eduweb.pl/programowanie-i-www/javascript/docker-w-praktyce/docker-kontra-serwery-lokalne