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 omówię podstawy pracy.
Z linią poleceń.
Oczywiście nie będę tutaj omawiał podstawowych poleceń, takich jak
odczytywanie zawartości plików czy odczytywanie zawartości katalogów.
Postaram się na bieżąco ewentualnie tłumaczyć różne polecenia, ale to co warto
wiedzieć o pracy z linią poleceń to oczywiście jest to, że.
Pracujemy w terminalu naszego wyboru.
Terminal jest to po prostu miejsce, gdzie są uruchamiane nasze powłoki.
W moim przypadku jest to fish wewnątrz
Skoda i polecenia wydajemy po prostu wpisując tekst i kolejne pole.
Argumenty do tych poleceń są sparowane spacją.
Czyli jeśli np. .
Mielibyśmy tego docker rana id nginx bash.
Ja tutaj mam oczywiście podpowiedzi z
fisha na podstawie tego co robiłem przez jakieś lata, jakie polecenia wydawałem.
No i tutaj.
Znaczy to tyle, że do Dockera są
przekazywane takie argumenty run z takimi parametrami.
I po prostu polecenie docker wie co z tym dalej zrobić.
Ale to co jest istotne.
To.
To, że jeżeli np. próbujemy.
Poruszać się po strukturze katalogów.
To jesteśmy w stanie sobie podpowiedzieć sztabem.
Często w Piszu jest to o tyle fajne.
Że możemy przykład mieć podświetlane, które opcja jest obecnie dostępna.
Ale jeżeli będziemy. Klikali tab to jest to taki uniwersalny
przycisk podpowiedzi jeżeli chodzi o linię poleceń, czyli np.
jeśli nie wiemy co się znajduje w danym
katalogu, niekoniecznie musimy od razu pisać ls.
Możemy np.
sobie zrobić cd i podpowiedzieć i to nam się wypełni.
Kolejna istotna rzecz jeżeli chodzi o pracę z linią poleceń jest to, że mamy.
Instrukcje jak korzystać.
Z tych poleceń.
Oczywiście to się będzie różniło w
zależności od systemu operacyjnego, ale jednym z takich najpopularniejszych.
Linuksowych i uniksowych.
Poleceń do czytania instrukcji na temat różnych poleceń jest właśnie man.
Man jako skrót od manual, czyli instrukcja.
I jeśli wpiszemy sobie man jako polecenie i podamy mu np.
jako parametr Dockera, zobaczymy czy coś tutaj się pojawi.
Akurat dla Dockera nie ma, ale jeżeli dla takich ogólnych poleceń wpiszemy np.
man to zobaczymy tutaj widok less.
Czyli tutaj te trzy kropki, które widzimy.
To sobie oczyścimy, które widzimy tutaj.
To jesteśmy w stanie po prostu operować
albo z Karolem, jeżeli mamy poprawną integrację z
terminalem, albo po prostu strzałkami i aby wyjść zmiana możemy nacisnąć Q.
Możemy przejrzeć wszystkie flagi dostępne dla danego polecenia.
Czyli np.
jeżeli damy sobie tutaj flagę, myślnik L,
to będziemy podążali za wszystkimi linkami symbolicznymi, czyli skrótami, Tak?
Myślę, że analogiczne mechanizmy w Windowsie są to po prostu skróty.
No i oczywiście MAN też może.
Być zainstalowane w języku polskim.
Natomiast generalnie w IT wszystko jest w
języku angielskim, więc na pewno znajomość języka angielskiego jest bardzo przydatna.
Aby wyjść stąd klikamy Kup.
Inną opcją, aby dowiedzieć się czegoś.
Więcej o danym poleceniu.
Jest opcja dania podwójnej flagi help.
Jest to taka konwencja, że w części systemów operacyjnych jeżeli damy nasz.
Help do danego polecenia, to otrzymamy też
instrukcję skrótowo jak z tego polecenia korzystać.
Akurat na macOS to nie działa, więc dlatego pamiętajcie,
że to może być różne w zależności od innego systemu operacyjnego.
Ale jeśli ja sobie uruchomię.
Docker run it, żeby wejść na ten kontener od razu debian bash.
Debian to jest
jeden z systemów operacyjnych, generalnie bardzo podobny do Ubuntu.
Ubuntu bazuje na Debianie.
To jeśli sobie tutaj wpiszemy np.
ls help to zobaczymy, że mamy już
różne informacje na temat tego polecenia podane.
Możliwe, że. Będziemy mieć mana.
Ale akurat widzimy, że man nie jest zainstalowany w tym konkretnym obrazie.
Więc to co warto pamiętać to tab zawsze działa,
chyba, że mamy jakieś powłoki, które po prostu nie mają tego rodzaju integracji.
Czasami może być z tym problem.
Ale na większości nawet serwerów.
Gdzie jest bash to ten powinien działać. Są też.
Różne inne. Skróty klawiszowe, np.
command, aby szukać w historii.
Jest też polecenie historii.
To jest bardzo fajne polecenie,
które pozwala nam wypisać wszystkie polecenia, które do tej pory pisaliście.
Więc to. Są takie podstawy pracy.
Z linią poleceń.
I apropo tego.
Warto też pamiętać, że zawsze możecie kliknąć strzałkę w.
Górę, w górę lub w dół, aby wrócić do polecenia, które już wcześniej pisaliście.
Więc jeżeli wpiszemy ls slash to.
I wywołamy jakieś inne polecenie np.
część directory aby przejść do powiedzmy.
Root jako główny użytkownik.
Coś sobie tutaj wpiszemy to nie musimy wpisywać ponownie ls, ale flash.
Oczywiście w przypadku krótkich poleceń jest to czasami szybsze.
Ale możemy po prostu kliknąć strzałkę.
W górę kilka razy.
Aby odwołać się do dowolnego z poleceń,
które już wydaliśmy i po prostu zatwierdzić go enterem.
Poza tym jesteśmy w stanie też zrobić
różne skróty na podstawie znaków specjalnych, czyli na przykład jeżeli
chcemy wrócić do poprzedniego katalogu, w którym się znajdowaliśmy,
to możemy wpisać po prostu code minus i w tym momencie jesteśmy z powrotem.
Zwróćcie jeszcze raz minus.
I jesteśmy w ruchu.
Pojedynczy slash jest wynikiem nazywany route, więc to jest tak naprawdę root.
Inną ciekawą poradą.
Jest przykład wykorzystanie znaku podwójnego wykrzyknika.
Czyli jeśli Powiedzmy, że chcielibyśmy wywołać jakieś polecenie ponownie, mamy
tutaj duże polecenie, powiedzmy Hello world.
To jest nasze długie polecenie.
To jeżeli chcielibyśmy coś napisać, dopisać tutaj np.
.
Ciężko mi teraz wymyślić jakiś przykład, powiedzmy sudo echo hello world.
Oczywiście tutaj nie będziemy mieli.
Zamiast robić strzałkę w górę.
Swoją drogą, aby wyczyścić sobie terminal
możemy nacisnąć control i wtedy cokolwiek mamy wpisane to nam się anuluje.
Nie musimy tego też usuwać ręcznie to nie musimy zrobić strzałki w górę,
strzałkę w lewo, dopisać coś, co jesteśmy w stanie zrobić.
Cudo! Wykrzyknik.
I wtedy widzimy, że to polecenie,
które wywołaliśmy poprzednio ma to do doklejone.
Czyli np. .
Jeśli chcemy coś dodać na początku
komendy, to wystarczy napisać to co chcemy dodać i potem.
Odwołać się poprzez dwa wykrzykniki do poprzednio wydanego polecenia.
Oczywiście takich typów paszowych.
Jest o wiele, wiele więcej i w tym kursie nie będziemy tego wszystkiego omawiali.
Jeżeli będziecie zainteresowani takim
materiałem, koniecznie dajcie nam o tym znać, bądź poszukajcie na platformie Edu
Łeb kursu dotyczącego pracy z systemami operacyjnymi.
W kolejnych lekcjach będziemy pracowali już nad poleceniami Dockera.
Omówimy wszystkie polecenia związane z obrazami i z kontenerami.
I w kolejnej sekcji tego kursu będziemy budowali nasze pierwsze obrazy Dockera.
Uruchamiamy kontenery, podpinamy wolumeny i po prostu pracowali z tokenem, tak
jakbyśmy już mieli tworzyć nasze pierwsze aplikacje internetowe.