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ść, Witaj w kolejnej sekcji tego kursu.
Teraz skupimy się na poradach i trikach ogólnie związanych z brokerem.
Może być to z czasem i takie małe rzeczy, które czasem łatwo przegapić.
Nie wszyscy oni wiedzą, a naprawdę
ułatwiają pracę z pokerem, w związku z czym trochę mieliśmy temat o tym
jak odczytywać logi, a jest to naprawdę bardzo ważne, więc
zobaczmy czy mamy jakieś uruchomione kontenery docker ps.
Nie mamy. W związku z czym uruchomimy nowy kontener
docker run the engines i po prostu niech on nam się tutaj uruchomi.
Zrobimy docker PPS on sobie chodzi.
I teraz tak każdy kontener ma swój standard input i standard output.
Tak samo jest standard error, czyli gdy tworzymy nasze aplikacje np.
w kodzie ONE, gdy robimy sobie np.
console log.
Heloł!
To te informacje trafiają na standard output out i tę informację możemy
przechwycić na poziomie Dockera, jeżeli są spełnione pewne warunki, o
których będziemy mówili później w konfiguracji środowiska produkcyjnego.
Ale to co warto zapamiętać to to, że
jeżeli po prostu wpiszemy docker logs i podamy nazwę hash danego kontenera.
To zobaczymy różne informacje na jego temat.
Czyli tutaj podczas startowania nginx
wypluł takie informacje na swój status albo error.
Ponieważ docker logs domyślnie agreguje
informacje zarówno o błędach jak i o zwykłych logach czy informacjach.
No i gdybyśmy weszli na ten serwer HTTP tylko, że nie wystawili mu portów.
Prawdopodobnie więc moglibyśmy zrobić docker stop i tutaj zatrzymać.
Nasz kontener i zrobimy jeszcze raz to razem.
Engineers w trybie disabled
i możemy dodać jeszcze flagę PE, aby opublikował nam
porty, które zostały wyeksportowane, czyli na punkcie 5.5 0.7.
Będziemy mogli tutaj otworzyć naszą aplikację.
I to jest proste.
Wielką wagę do Engineer czyli strona powitalna
i w momencie kiedy weszliśmy na tą stronę jest duża szansa, że ten kontener
wypluł jakieś dodatkowe informacje o tym co się tam wydarzyło.
I faktycznie widzimy, że wypisał po prostu
informację o tym, kto odwiedził daną stronę.
Czyli to jest taki typowy access log.
No i w tym momencie, jeżeli ja tutaj wejdę, odświeżę może trzy razy, zobaczmy
to zobaczymy, że tutaj będzie tych wpisów po prostu więcej.
Warto też pamiętać o tym, że
nie musimy za każdym razem wpisywać docker logs, aby podejrzeć te zmiany.
Możemy się do nich podpiąć i tak naprawdę widzieć te aktualizacje na żywo.
Czyli jeżeli wpiszemy w polu podwójne L, to mamy tutaj zablokowaną karetkę.
Możemy oczywiście stąd wyjść kontrolce,
ale jeżeli chcemy to w tym momencie wszystkie zmiany.
Ja sobie zrobię kilka enter ów, żeby tylko widzieć różnicę.
Które zostały wypluty na OUT zostaną tutaj pokazane.
I o ile logowanie w takich stworzonych przez komitet obrazach np.
Engines not z reguły działa, o tyle
własne customowe rozwiązania, które często firmy tworzą,
po prostu psują tam funkcjonalność, bo wynika to z braku wiedzy o tym jak Docker
działa i jak stworzyć kontenery, które będą tak zwane dobrze wychowane.
I o tym właśnie będziemy mówić w sekcji o środowisku produkcyjnym.
Jak stworzyć taki kontener? Dobrze wychowany.
Ale to co chciałbym abyś wiedział
wiedziała na podstawie tej konkretnej lekcji to fakt, że możemy podpiąć się pod
standardowe wyjście danych aplikacji poprzez docker logs.
No i pamiętać o tej fladze, która sprawia, że nie musimy za każdym
razem wpisywać po prostu docker load jeżeli chcemy coś sprawdzić.
No i przy okazji docker też możemy sobie
kilka tam podać i widzimy w którym momencie który log wyskoczył.
Więc to wszystko w tej lekcji.
W następnej lekcji szybko przejdziemy
przez najczęściej używane polecenia, takie podstawowe.
Tak w ramach powtórki.