Przejdź do treści

Do czego może przydać się Docker, gdy uczymy się programowania?

Docker podcast 2023

Cześć, niedawno byłem gościem w podcaście “Pierwsze kroki w IT” dotyczącym dockera. Chciałem podziękować Mateuszowi Bogolubow z devmentor.pl za zaproszenie i wspólną rozmowę.

Podczas rozmowy czekały mnie bardzo ciekawe pytania, na które starałem się odpowiedzieć, najlepiej jak potrafiłem. Ostatecznie wyszedł bardzo konkretny materiał, mówiący “Co jest Docker“, kontenery i wirtualizacja. Rozmawialiśmy o tym, czym różni się wirtualizacja od kontenerów, jakie są plusy i minusy obu rozwiązań. Omówiliśmy podstawowe pojęcia dotyczące obrazów, kontenerów i rejestru obrazów. Wyjaśnialiśmy działania kontenerów na praktycznym przykładzie strony internetowej utworzonej na wordpress.

Ten artykuł to tylko fragment podcastu mówiący o tym, do czego może się przydać docker, gdy uczymy się programowania. W podcaście mówiliśmy o tym, jak można zacząć swoją przygodę z kontenerami i udzielaliśmy mnóstwa porad, ostrzegaliśmy przed często popełnianymi błędami i co ważne mówiliśmy, kiedy lepiej nie używać kontenerów.

Co to jest docker
Podcast Pierwsze kroki w IT – Co to jest docker

Fragment rozmowy znajdziesz poniżej, a cały podcast możecie znaleźć na:

Do czego może przydać się Docker, gdy uczymy się programowania?

docker container 2023
docker container 2023

Wojtek – Docker pozwoli Ci zająć się tym, na czym Ci zależy. Gdy chcesz się uczyć programować, to skupiasz się na nauce programowania, nie musisz tracić czasu na instalację bazy danych i innych rzeczy. Nie musisz zajmować się instalacją, konfiguracją itd., bo obrazy Dockera mogą mieć już to wszystko zrobione. Po prostu uruchamiasz i działa. Skupiasz się na nauce programowania czy czego tam chcesz się uczyć.

Wybierasz kontener, który ma zainstalowane to, czego potrzebujesz, w wersji, jakiej potrzebujesz – i tyle. Potrzebujesz nowszą albo starszą wersję, to nie bawisz się w instalację, aktualizację, tylko wybierasz inny obraz i gotowe.

Mateusz – To może dodam jedną rzecz: przy nauce front endu pewnie nie potrzebujecie nic, bo wystarczy przeglądarka, wystarczy edytor i w zasadzie już możecie pisać HTML-a, CSS-a, JavaScript i Wam działa. Ale jeżeli macie język back-endowy np. PHP, to musicie zainstalować przynajmniej PHP, Apache, jakąś bazę, żeby w ogóle móc zacząć działać. Przy front endzie jest trochę łatwiej, a z back endem trzeba się trochę pobawić, żeby móc wystartować. I tyle, możesz kontynuować. Wybacz, że Ci przerwałem.

Wojtek – Jasne, spoko.

Wojtek – Ok, fajne jest to, że pomaga zachować porządek na swoim komputerze – nie musisz instalować tony rzeczy i co chwila czegoś dodawać, usuwać, zmieniać wersji itd., bo masz to w kontenerze. Nie będziesz miał śmieci na komputerze i nie będziesz musiał się zastanawiać, jaką to właściwie wersję masz aktualnie zainstalowaną.

Oczywiście czasem lepszym wyborem będą maszyny wirtualne – w zależności od tego, czego potrzebujesz. Tylko pamiętaj, że przygotowanie i konfiguracja takiej maszyny wirtualnej wymaga nieco więcej pracy. Gdy popełnisz błąd i będziesz chciał zacząć od początku, to zajmie to więcej czasu. A co, jeśli będziesz musiał uruchomić kilka wirtualnych maszyn w tym samym czasie? No to Twój sprzęt raczej nie będzie zadowolony. Kontenery mają tę przewagę, że są lżejsze i jak wspomnieliśmy wcześniej, nie zużywają tylu zasobów.
Super jest jeszcze to, że gdy bawisz się na takim kontenerze i coś zepsujesz, to się tym nie przejmujesz. Po prostu go restartujesz i zaczynasz od początku. Często spotykałem ludzi, którzy instalowali u siebie na lapku soft i próbowali się czegoś nauczyć, tylko często kończyło się to tak, że po tych swoich próbach musieli reinstalować system, bo coś poszło nie tak. Potem wpadli na pomysł, że zrobią sobie backup, zanim zaczną pracować, a gdy coś pójdzie nie tak, to do niego wrócą – ale to zazwyczaj trwa sporo czasu. Dużo lepszym rozwiązaniem są kontenery. Gdy coś nie wyjdzie, restartujesz kontener i zaczynasz od początku, a gdy wszystko działa, to możesz stworzyć nowy obraz i zaczynasz z miejsca, w którym wszystko działa.

Mateusz – To może znów się wtrącę. To już były zaszłe czasy, ale miałem wersję PHP 4-coś, 5.0, 5.6 i potem sam już się gubiłem, co gdzie jest, czy działa, czy nie działa, dlaczego nie działa, tu porty jakieś poblokowane. Aj… Na pewno dużo by to ułatwiło. Tylko tyle, kontynuuj.

Wojtek – Tylko pamiętaj jeszcze, żeby dobrze nazwać te obrazy, żebyś potem wiedział, co w którym jest.

Mateusz – Tak jest, tak jest.

Wojtek – Tutaj jeszcze chciałbym dodać, że kontenery mogą także mieć dostęp do plików z naszego komputera. Dzięki temu po restarcie kontenera nasza praca nie zniknie. Możemy współdzielić pliki, które będą kodem aplikacji internetowej. Aplikacje możemy uruchomić za pomocą np. serwera HTTP, oczywiście w kontenerze, i normalnie jej używać. To samo dotyczy bazy danych: nie musimy upychać jej do kontenera. Pliki
bazy danych mogą być na naszym dysku i możemy je współdzielić w kontenerze za pomocą specjalnych woluminów jak w poprzednim przykładzie.

Więcej informacji dotyczących Dockera

Jeśli jesteś ciekaw co było dalej, to cały podcast możesz zobaczyć na Youtube. Przygotuj się na solidną dawkę wiedzy bo podcast trwa prawie godzinę.

Jeśli podobał Ci się podcast na temat Dockera, to może zainteresuje Cię także podcast Wprowadzenie do tematu DevOps.

Jak zwiększyć swoje zarobki pracując w IT
Tagi: