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ówimy docker commit, czyli
to jak tworzyć nowe obrazy ze zmian naniesionych na dany kontener.
Jest to naprawdę wygodna funkcja.
Szczerze mówiąc bardzo długo nie wiedziałem o niej w kontekście Dockera.
Kilka razy się przydała. Zdecydowanie.
Więc to co zrobimy to wrócimy sobie do
tego przykładu, gdzie po prostu napisaliśmy dany plik w indeksie.
Czyli ponownie uruchamiamy sobie engine EX na porcie 80.
Engine ECS jest już uruchomiony,
więc możemy sobie skopiować na niego nasz plik źródłowy.
Czyli w lekcji dziewiątej
mamy ponownie naszego index htmla i robimy sobie docker cp.
Ścieżka do naszego pliku index.
HTML id naszego kontenera,
które w sumie on tutaj jest, ale ja zawsze jakoś wolę pobierać je bezpośrednio stąd
one są krótsze i wtedy mam poczucie, że mam więcej kontroli nad tym co robię.
Jak zrobimy sobie docker cp sobie tutaj ten.
Hash.
No to wtedy oczywiście przeniesiemy nasze lokalne zmiany na ten plik.
Robimy to, wchodzimy tutaj.
I na porcie 80 80 chodzi już nasz ending z naszą zmianą.
I tak jak wspominaliśmy, jeżeli zastosujemy ten kontener to w porządku.
W tym kontenerze te zmiany będą, ale wszystkie kontenery, które są tworzone na
nowo od ECS oczywiście tego pliku mieć nie będą.
Więc to co my chcemy zrobić, to stworzyć nowy obraz na podstawie tego kontenera,
tak aby ten plik już był domyślnie tutaj załadowany.
Nawet jeżeli w początkowym docker file nie było tamtego add z tym index.
HTML na tą ścieżkę.
A tak czasami się dzieje, bo często nie
mamy dostępu do plików źródłowych docker file.
Mamy natomiast już zbudowane obrazy dockera i jakoś musimy je zmodyfikować.
W związku z czym do tego się przydaje
właśnie docker commit, czyli to co zrobimy sobie to po prostu wpiszemy docker commit.
No i tutaj znów mamy pewne podpowiedzi.
Możemy oczywiście dać imię i nazwisko autora.
Ja nazywam się tak bardzo mi miło.
No i oczywiście możemy dać nazwę tego, co
chcemy tutaj wpisać, to co się zmieniło, a więc wielką wagę.
Engineers.
S custom.
Powiedzmy, że to jest nasz treść naszego komitetu docelowego.
To tak naprawdę działa bardzo analogicznie do commitów, które możecie znać z Gita.
Czyli ja po prostu sobie skopiuję stąd ten hash kontenera.
No i widzimy, że tutaj został stworzony nowy obraz.
Jak sobie zrobimy docker image teraz to mamy 8 sekund temu taki oto obraz.
Możemy go sobie oczywiście otagować.
Z tym też nie ma problemu, albo możemy korzystać z po prostu haha obrazu.
No i w tym momencie uruchamiając docker
run na porcie takim i takim powiedzmy, że to zrobimy sobie na 81.
Nie uruchamiamy linuxa tylko po prostu ten hash obrazu.
No i wchodząc tutaj na. W art.
81.
Ta zmiana oczywiście jest tam i się pojawił jeszcze Apacz i bo po
prostu był w przeglądarce, ale możemy to dla testu zrobić po prostu
na jeszcze większej ilości partów 85 nie ma to najmniejszego znaczenia.
I wszystkie te obrazy będą miały już ten domyślny nasz widok.
Chyba, że wrócimy z powrotem do obrazu
Engineers i powiedzmy, że na osiemdziesiątce szóstce.
Uruchomimy standardowego engine X'a.
I widzimy standardową stronę logowania,
więc docker commit naprawdę proste polecenie.
Natomiast jest ono bardzo wygodne
i jeżeli chcielibyśmy taki obraz przekazać komuś, no to wtedy musimy wykorzystać
polecenie docker import aby te paczki torowe z obrazem komuś wysłać.
Z tym już się troszkę robi ciężej, ale tak naprawdę możemy też po prostu ten
obraz wypchnąć do naszego rejestru pod innym tagiem i osoba z drugiej strony,
która też będzie chciała skorzystać z tego obrazu może po prostu zrobić docker pola
na nim czy docker run bezpośrednio znając nazwę tego tagu.
Więc polecam.
Raczej mniej znana funkcjonalność, przynajmniej wśród web developerów.
Prawdopodobnie wśród administratorów
systemów jest to dosyć dobrze znane i w kolejnej części tego kursu
opowiem troszkę o takich potężnych poleceniach, które
możecie wykorzystywać w pracy codziennej z Doktorem.
Tak na przykład, aby usunąć wszystkie kontenery z Waszego systemu operacyjnego
albo wszystkie obrazy bez usuwania całego systemu, czyli Docker system albo Docker.
Także do zobaczenia w kolejnej lekcji. Dzięki za uwagę.
docker commit · 3 min
docker commit -a "author name" -m "Added different default view" <hash>