docker jak wykorzystać do czego służy

Kilka przykładów, jak można wykorzystać możliwości Dockera

Konteneryzacja zyskała w ostatnich latach niezwykłą popularność. Nie bez powodu. W tym artykule pokazujemy, w jaki sposób można wykorzystać możliwości oferowane przez najpopularniejsze oprogramowanie służące do konteneryzacji – Dockera.

Czym jest Docker?

Docker jest narzędziem umożliwiającym tworzenie i uruchamianie kontenerów – swoistych “pojemników” zawierających oprogramowanie i wszystkie jego zależności. Głównym składnikiem jest zazwyczaj sam kod, ale aplikacje korzystają również z baz danych, plików konfiguracyjnych, bibliotek i innego oprogramowania zewnętrznego. Umieszczenie wszystkich tych składowych w jednym “pojemniku” ułatwia uruchamianie aplikacji na komputerach i serwerach, Docker zapewnia bowiem zunifikowane środowisko i izolację działającego w kontenerze oprogramowania. W ten sposób aplikacja może działać w przewidywalny i powtarzalny sposób na każdej maszynie.

Kontenery tworzone przez Dockera, dzięki zastosowaniu wirtualizacji na poziomie systemu operacyjnego, nie powodują niemalże żadnego dodatkowego narzutu konsumującego zasoby obliczeniowe – w przeciwieństwie do typowych maszyn wirtualnych.

Poza standardowymi możliwościami narzędzi konteneryzacyjnych, Docker oferuje także:

  • Uruchamianie aplikacji jako pojedynczy obiekt zamiast stosowania sandboxingu
  • Koncentrację na aplikacji, nie na serwerze
  • Zautomatyzowane budowanie kontenerów
  • Wbudowane wersjonowanie
  • Możliwość wielokrotnego użycia komponentów
  • Publiczne repozytorium służące do udostępniania kontenerów (Docker Hub)
  • Ekosystem narzędzi korzystający z API i możliwość budowania własnych

Choć konteneryzacja nie jest bynajmniej rozwiązaniem nowym, to właśnie Docker stoi za jej gwałtowną popularyzacją w ostatnich latach.

Jak wykorzystać Dockera? Do czego można go użyć?

Wiemy już, jakie możliwości oferuje konteneryzacja i oprogramowanie Docker. Jak jednak te możliwości wykorzystać? Do czego można użyć Dockera? Oto kilka przykładów.

Uproszczenie konfiguracji

Docker zapewnia aplikacjom możliwość pracy na każdej obsługiwanej platformie, korzystając przy tym z identycznej konfiguracji. Podobnie robią to maszyny wirtualne, jednak działają one na poziomie systemu operacyjnego uruchamianego w takiej maszynie, Docker zaś – na poziomie aplikacji. Możliwe jest więc uruchomienie aplikacji na własnym laptopie, na serwerze, w usłudze chmurowej – zawsze identycznie działającej i identycznie skonfigurowanej.

Dodatkowe narzędzia takie jak Docker Compose dodają do tego opcję uruchamiania całych grup powiązanych kontenerów ze wstępnie przygotowaną konfiguracją.

Tworzenie pipeline’ów dla procesów CI/CD

“Podróż” aplikacji z komputera dewelopera na produkcyjne serwery bywa wyboista. Docker ułatwia tworzenie pipeline’ów dla procesów CI/CD, zapewniając zunifikowane środowisko na każdym etapie procesu i na każdej maszynie, na której aplikacja jest uruchamiania.

Zwiększenie produktywności

Deweloper może więc w przeciągu kilku sekund uruchomić kontener z rozwijaną przez siebie aplikacją na swoim laptopie z Linuksem, Windowsem lub macOS-em, wprowadzić zmiany i je przetestować, a w razie potrzeby także je wycofać korzystając z wbudowanej funkcji wersjonowania. Wszystko to możliwe jest dzięki lekkości kontenerów i ich szybkiej pracy, a także niezależności od niższych warstw – systemu operacyjnego i sprzętu, oczywiście z zastrzeżeniem tej samej architektury CPU.

Izolacja aplikacji

Aplikacje działające w kontenerach Docker zawierają wszystkie niezbędne do swojej pracy komponenty i są odizolowane od innych. W razie awarii jednej aplikacji nie dojdzie więc do awarii pozostałych, ponieważ są one od siebie całkowicie niezależne.

Lepsze wykorzystanie zasobów serwerów

Podobnie jak maszyny wirtualne, Docker pozwala na uruchamianie wielu odizolowanych aplikacji na tym samym serwerze, co ułatwia efektywne wykorzystanie jego zasobów. Jednocześnie Docker – w przeciwieństwie do maszyn wirtualnych – nie powoduje niemal żadnego narzutu. Dzięki temu cała moc obliczeniowa i dostępna pamięć RAM może zostać przeznaczona do pracy aplikacji, jak i samych aplikacji w kontenerach uruchomić można więcej niż tychże aplikacji umieszczonych w maszynach wirtualnych.

Możliwości debugowania

Docker oferuje wiele możliwości debugowania aplikacji działających w kontenerach, jak i samego środowiska kontenerów. Poza logami i monitorowaniem pracy, Docker zapewnia również możliwość zarządzania wersjami skonteneryzowanego oprogramowania. Dlatego też, przykładowo, o wiele łatwiejsze staje się wycofanie zmiany powodującej nieprawidłowe działanie aplikacji.

Uruchamianie wielu instancji aplikacji

Docker umożliwia uruchamianie wielu instancji (kontenerów) tej samej aplikacji, zarówno ręcznie, jak i automatycznie z użyciem dodatkowych narzędzi, takich jak Kubernetes lub Docker Swarm. Kolejne instancje mogą działać na różnych serwerach, co znacząco zwiększa odporność środowiska na awarie.

Błyskawiczne uruchamianie aplikacji

Przed nastaniem maszyn wirtualnych, przygotowanie sprzętu pod nowe aplikacje mogło trwać wiele dni. Pojawienie się wirtualizacji skróciło ten czas do minut. Docker skraca cały proces jeszcze bardziej, tym razem do kilku sekund. Uruchamianie kontenera nie wymaga bowiem uruchomienia całego systemu operacyjnego. W ten sposób możliwe jest błyskawiczne tworzenie i usuwanie kontenerów, co poprawia poziom alokacji dostępnych zasobów obliczeniowych i umożliwia szybkie wdrażanie aplikacji.

Udostępnij ten artykuł
Skopiuj powyższy link
Poprzedni

VMware ESXi, vCenter, vSphere – co jest czym?

Następny

Magazyn blokowy, obiektowy i plikowy – czym się różnią?