2022-09-06-11-09-47-szkolenie-dockera-czesc-1-co-to-jest-docker.png

Szkolenie dockera część 1 - co to jest docker

Obecnie poszukuje się rozwiązań, które nie wymagają wykorzystania dużej ilości zasobów, czasu, czy też poświęcenia dużej ilości środków na jej konfigurację, ale są równie skuteczne co te wysokobudżetowe. W ten oto sposób przy użyciu jednego zdania można opisać dockera. Jest to idealne narzędzie umożliwiające konfigurację dostosowaną do naszych potrzeb. Docker działa w taki sposób w jaki go skonfigurujemy wykorzystując przy tym tylko niezbędną ilość zasobów. Czytając powyższe zdanie możesz dojść do wniosku: przecież większość narzędzi posiada wymienione możliwości. Tak, masz rację, ale najczęściej te narzędzia mają już jakieś oprogramowanie narzucone, a tak naprawdę, większości z nich nie potrzebujesz. Nie jest to oczywiście ogromnym problemem bo jesteś w stanie odinstalować wszystko co Ci jest niepotrzebne. Jednak jak sam wiesz na usuwanie musisz poświęcić sporo czasu, a to przecież kosztuje.

Nasz blog może się rozwijać dzięki naszym sponsorom. Nasz kurs dockera powstał dzięki współpracy z chmurami Vultr i tam dokładnie został przetestowany. Nasz szablon pochodzi z Envato MarketPlace. Wszystkie pluginy i elementy stron internetowych, jakie opisujemy, pochodzą z Envato Elements. Wszystkie książki, opisane na tym blogu, są dostepne u wydawcy Helion. Jesteśmy także partnerem Respondent.io, platformy, która płaci za testowanie aplikacji.

Dockera w prosty sposób można określić jako oprogramowanie dzięki któremu uruchomisz aplikację w odizolowanym środowisku w którym masz tylko niezbędne narzędzia. To odizolowanie oraz małe wymagania co do potrzebnych zasobów jest głównym atutem przemawiającym za nim.

W tej serii artykułów chciałbym pokazać Ci jak bardzo pomocnym, wygodnym i użytecznym narzędziem jest docker. Poznasz podstawy funkcjonowania oraz uzyskasz odpowiedź na pytanie dlaczego warto wybrać właśnie go do stworzenia laboratorium gdzie rozpoczniesz swoją naukę z dziedziny hakingu i bezpieczeństwa cybernetycznego. Dlatego bez dalszego wstępu zaczynajmy.

Kontenery

Jeżeli przeczytałeś wstęp to ogólny pogląd na dockera powinieneś już mieć. W tym podrozdziale zajmiemy się dokładnym opisem jednego z elementów jakim jest kontener.

Otóż docker jest programem który uruchamia kontenery w izolowanym środowisku. Kontener jest to wydzielona przestrzeń gdzie instalujemy lub jest już zainstalowane oprogramowanie jak na przykład system, czy też aplikacja webowa. Inaczej mówiąc dzięki dockerowi jesteśmy w stanie uruchomić aplikację oraz inny system operacyjny, gdzie samo uruchomienie odbywa się w środowisku odizolowanym od systemu na którym został utworzony i uruchomiony. Bardziej to porównać można do wirtualizacji. Jeżeli kiedyś korzystałeś z narzędzi takich jak Virtualbox czy też VMware to one korzystają z wirtualizacji która pozwala uruchomić system w sposób zupełnie odizolowany.

Różnica między maszynami wirtualnymi, a kontenerami dockera jest jednak ogromna. Kontener wymaga o wiele mniej zasobów, posiada jedynie konieczne oprogramowania do jego funkcjonowania. Jest to o tyle ważny aspekt ponieważ zwięzłość dockera pozwala zaoszczędzić miejsce jak i również nie wymaga takiej ilości zasobów sprzętowych.

Ma też to bardzo duży związek z bezpieczeństwem. Otóż takie odizolowane środowisko nie ma dostępu do głównego zasobu plików. Dlatego jeżeli haker uzyska dostęp do takiego kontenera będzie mógł działać tylko i wyłącznie w jego obrębie. Oczywiście wymaga to odpowiedniej konfiguracji sieciowej czym na pewno się zajmiemy.

W przyszłości będziesz korzystał z wielu kontenerów. Pokażę Ci to wszystko w dalszej części kursu, ale w tym momencie chciałbym abyś zapamiętał czym jest kontener.

Na sam koniec dodam, istotną informację otóż, każdy kontener wie o istnieniu pozostałych jeżeli każdy z nich jest uruchomiony na tym samym urządzeniu i nie wykonaliśmy konfiguracji sieciowej. Zmienić to możemy łącząc je w odrębną sieć.

Po przeanalizowaniu powyższej treści mogłeś zadać sobie pytanie z czego powstają takie kontenery? Odpowiedzieć postaram się w dalszej części prezentowanego materiału.

Obrazy

Aby móc stworzyć kontener musi mieć on jakiś wzór na którym będzie się opierał. Takim wzorem jest obraz. Na podstawie jednego obrazu może powstać kilka kontenerów. Będą działały identycznie chyba, że przy ich tworzeniu każdy skonfigurujemy w inny sposób. Należy jednak pamiętać, że kontenery tworzone niezależnie czy z tego samego czy też innego obrazu są dodawane do automatycznie wytworzonej sieci dockera.

Pierwszy krok to ściągnięcie potrzebnego obrazu, a następnie stworzenie z niego kontenera. Obraz zawiera już zainstalowane oprogramowanie bazowe dlatego jeżeli decydujemy się na korzystanie z kilku takich samych kontenerów pamiętajmy, że one zawsze po stworzeniu będą posiadały swój system bazowy. Systemem bazowym nazywamy podstawową konfigurację jaka jest zawarta w danym obrazie. Dlatego jeżeli poczyniliśmy jakieś kroki konfiguracyjne na jednym z tych kontenerów to żaden oprócz tego na którym pracowaliśmy nie będzie znał, ani wiedział nic o dokonanych zmianach.

Obrazy dockera w porównaniu do maszyn wirtualnych są o wiele mniejsze. Oczywiście istnieją pewne odstępstwa, ale nie ma ich za wiele. Nie są pobierane przy pomocy strony internetowej projektu tylko sam docker posiada wbudowane polecenie dzięki któremu automatycznie pobierze dla nas taki obraz. Jest to o wiele wygodniejsze rozwiązanie, szczególnie że wszystko, obrazy oraz kontenery, są umieszczone w jednym programie gdzie bardzo swobodnie możemy je dodawać oraz usuwać. Daje to możliwość wygodnego zarządzania nimi. Wystarczy wyświetlić odpowiednią listę, wybrać interesujący nas kontener lub obraz i dokonać zmian.

Niemniej jednak często istnieje potrzeba komunikacji pomiędzy kontenerami, dlatego w dalszej części porozmawiajmy o sieciach.

Komunikacja między kontenerami

W związku z tym, że kontenery są w tej samej sieci może wystąpić komunikacja między nimi. Sieć automatycznie utworzona przez dockera to sieć typu bridge, ale nim przejdziemy do wyjaśnienia danego typu sieci może ustalmy w skrócie czym sieć w ogólnym rozumieniu jest.

Pozwolę sobie przytoczyć bardzo prosty przykład:

Większość z nas posiada w domu dostęp do internetu. Najczęściej w domach uzyskujemy go przy pomocy routera. Ten router ma podłączony do swojego głównego gniazda (WAN, DSL/ASLA, Internet) kabel sieciowy. Natomiast do pozostałych gniazd podłączamy inne urządzenia. Jeżeli taki router pozwala również łączyć się przy pomocy wi-fi to możemy nawiązać połączenie bezprzewodowo. Sam rodzaj połączenia z routerem nie ma znaczenia. Czy to przy pomocy kabla sieciowego czy też przy pomocy wi-fi urządzenia podłączone do tego samego routera tworzą wspólną sieć.

Oczywiście są jeszcze inne rodzaje połączeń jak na przykład przy użyciu magistrali, ale obecnie tego typu rozwiązania są bardzo rzadko stosowane.

Tak samo jest w przypadku kontenerów. Są one dołączane do jednej i tej samej sieci. W naszym wypadku do automatycznie wygenerowanej sieci dockera. Istotne jest jeszcze to, że kontener nie musi być podłączony do jednej sieci, może być do kilku.

W dockerze będziemy tworzyli połączenie z wykorzystaniem sterownika Bridge, czy też jeżeli ktoś woli sterownika mostowego. Połączenie tego typu polega na tym, że wszystkie urządzenia dodane do sieci widzą się wzajemnie. Jest to jedno z najprostszych i najczęściej stosowanych połączeń w sieciach.

My natomiast będziemy tworzyli własne na podstawie tego sterownika. Sieć automatycznie wygenerowana przez dockera to bardzo dobry pomysł jeżeli szybko coś musimy sprawdzić, a następnie usunąć. Natomiast taka sieć posiada kilka uniedogodnień, które mogą utrudnić pracę. Otóż jeżeli pozostaniemy przy standardowo wytworzonej sieci to przy połączeniach między kontenerami będziemy musieli posługiwać się adresami IP. Natomiast w przypadku nowej sieci wystarczy, że wykorzystamy nazwę danego kontenera. Adres ciężej jest zapamiętać niż nazwę kontenera.

Kolejnym powodem jest bezpieczeństwo.

Jeżeli będziesz korzystał z kilku aplikacji to najlepiej jest stworzyć dla każdej z nich oddzielną sieć w innym wypadku każda z tych aplikacji będzie mogła ingerować w drugą.

Tworzenie własnych sieci ma jeszcze więcej zalet, ale o tym opowiem jak i również pokażę w odpowiednim artykule.

Podsumowanie

Przyznam, że ciężko jest wyrazić w słowach zalety dockera ponieważ jest ich bardzo dużo jak i również większość z nich wyłania się dopiero w praktyce. Celem tego rozdziału nie było przekonać Cię do dockera, to postaram się zrobić w dalszej części tej serii. Chciałem tylko byś zapoznał się z podstawowymi pojęciami jak i również dowiedział się do czego to narzędzie służy. W dalszych materiałach poznamy to oprogramowanie od strony praktycznej. Ten artykuł potraktuj bardziej jako taki teoretyczny wstęp do tego co będzie dalej.

Udostępnij

Porozmawiajmy o Twoich potrzebach

POROZMAWIAJMY O USŁUGACH, JAKICH POTRZEBUJESZ DLA SWOJEGO BIZNESU

Z chęcia pomożemy Ci wzrastać w wybranym przez Ciebie biznesie.