Przejdź do głównej zawartości

Docker - Jak się za to zabrać ?

Jak z każdym narzędziem tak i w przypadku Dockera istnieją opracowane metody i schematy ułatwiające pracę. Dopasowanie sposobów pracy organizacji do tych jakie narzuca Docker doświadczalnie odnosi pozytywny wpływ na działanie zespołów i ogranicza niezbędną komunikację do minimum. Wszystko po to by działać bardziej efektywnie i dostarczać w szybszy sposób dobrze przygotowane rozwiązania, które następnie można elegancko wdrożyć i używać. W celu osiągnięcia powyższych założeń należy zapoznać się z kilkoma mechanizmami oferowanymi przez Dockera by lepiej zrozumieć w jaki sposób działa i jak go używać. Wiedza ta stanowi krótki poradnik pracy z dockerem z jakiego dowiesz się co właściwie robimy za pomocą tego narzędzia. Najlepiej będzie przetestować działanie osobiście ale warto też wiedzieć jakie możliwości mamy dostępne i czego można się spodziewać. 


Kontrola wersji. 

Wraz z Dockerem otrzymujemy narzędzia służące do kontrolowania wersji, które występują w dwóch odmianach. Po pierwsze mamy możliwość określania wersji obrazów, a właściwie warstwy systemu plików z jakich są zbudowane, druga możliwość to system znakowania kontenerów. 

Kontenery to nic innego jak ułożone na stosie warstwy systemu plików oznakowane unikalnymi ciągami znaków, uporządkowanie w hierarchii w taki sposób, że każdy nowy zestaw zmian składających się na nowy obraz umieszczany jest na najwyższej pozycji. Dzięki temu nowa kompilacja wymusza przebudowanie jedynie tych warstw, których dana zmiana bezpośrednio dotyczy. Nie ma dzięki temu potrzeby dostarczania do serwerów warstw wcześniejszych, a jedynie tylko te zmienione. Ponad to możemy również łatwo sprawdzić jaka była ostatnia wersja wdrażanej aplikacji dzięki wbudowanemu w Dockera mechanizmu służącemu do znakowania obrazów w momencie wdrażania. Rozwiązanie to powinno być stosowane ponieważ znacznie ułatwi utrzymanie należytego porządku nawet jeżeli do wersjonowania używane są takie rozwiązania jak GIT czy Capistrano. 

Budujemy obraz.

Jak pisałem już wcześniej praca z Dockerem polega na wykorzystywaniu obrazów. Z poziomu narzędzia tekstowego mamy dostępny parametr build, który na podstawie pliku Dockerfile umożliwia utworzenie obrazu Dockera. Za każdym razem polecenia w Dockerfile tworzą nową warstwę wewnątrz obrazu. Wszystko, co zawarte jest w samym pliku Dockerfile stanowi zestaw instrukcji jakie będą wykonane w celu zbudowania obrazu. Fakt, iż kolejne kroki znajdują się w jednym pliku daje możliwość jego edycji i wpływania na to jak finalnie obraz taki będzie wyglądał. Ponieważ najczęściej budowanie sprowadza się do wykonania pojedynczego polecenia docker build wynikiem, którego jest pojedynczy artefakt, obraz kontenera oraz cała logika budowania obrazu zamknięta jest w jednym pliku Dockerfile nie trudno utworzyć i określić standaryzacje tworzenia obrazów w taki sposób by nadawały się do użycia w systemach takich jak Jenkins.  Zaletą konteneryzacji jest też ułatwiony i uporządkowany przez to proces testowania, w którym można mieć pewność że na produkcję wchodzi dokładnie ta aplikacja jaka została odpowiednio sprawdzona wraz ze wszystkimi potrzebnymi jej bibliotekami.

Przenośność pakietów. 

Ponieważ zastosowanie Dockera sprowadza się do tego, by pracować na kontenerach jako na pojedynczych "obiektach" przestaje mieć jakiekolwiek znaczenie w jakim języku napisana została aplikacja oraz na jakiej dystrybucji systemu Linux będzie ona uruchomiona. Wszystko, co jest potrzebne do działania aplikacji znajduje się w wielowarstwowym obrazie i obsługiwane jest przez narzędzia Dockera. Aplikacje, których konfiguracja do tej pory wymagała sporego nakładu pracy w momencie gdy potraktujemy je jako kontener w którym wszystko zostało już skonfigurowane i jest gotowe do uruchomienia zyskują niewiarygodną przenośność, a tym samym wdrożenie aplikacji staje się zdecydowanie prostsze.

Dodatkowe narzędzia. 

Ponieważ wokół Dockera działa duża i sprawna społeczność OpenSource związana z różnymi innymi technologiami pojawia się coraz więcej narzędzi, które usprawniają pracę z Dockerem i rozszerzają jego możliwości poniżej lista kilku z nich.






Komentarze

Najczęściej czytane w tym miesiącu

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)