Miesięcznik informatyków i menedżerów IT sektora publicznego

Kamil Folga

Aplikacje dostarczone w kontenerach

Docker to koncepcja tworzenia lekkich maszyn wirtualnych dla systemu Linux, nazywanych kontenerami. Kontenery nie tylko ułatwiają wdrożenia i testy systemów, ale dzięki nim aplikacje pracują szybciej i znacznie wzrasta ich bezpieczeństwo.

Docker jest narzędziem, które pozwala łatwo wdrażać aplikacje w wyodrębnionym środowisku, wykorzystując do tego celu system operacyjny Linux. Kluczową zaletą kontenerów jest możliwość umieszczenia w odizolowanym środowisku aplikacji wraz ze wszystkimi powiązaniami. Koncepcja ta różni się od stosowanej w maszynach wirtualnych, gdzie izolujemy zarówno aplikacje, jak i system operacyjny. Aplikacje w VM (wirtualnej maszynie) są uruchamiane wewnątrz systemu operacyjnego gościa, który z kolei uruchamiany jest na serwerze hostującym, zawierającym system wirtualizacji. VM to dobre rozwiązanie do pełnej izolacji procesów aplikacji i systemu operacyjnego, natomiast kontener zapewnia mechanizm logicznego oddzielania wyłącznie aplikacji od środowiska, w którym zostaną uruchomione. Jeden system operacyjny pozwala na uruchomienie wielu odseparowanych kontenerów.

Kontener czy wirtualizacja

Wirtualizacja polega na tworzeniu na podbudowie systemu wirtualizacji maszyny wirtualnej, na której możemy uruchomić nowy system operacyjny oraz aplikacje czy procesy. Minusem wirtualizacji jest to, że dla jednej aplikacji musimy uruchomić całe środowisko sprzętowe, łącznie z systemem operacyjnym i zaangażować znaczącą liczbę zasobów sprzętowych. To nie jest właściwa droga do optymalnego wykorzystania zasobów.

W przypadku kontenerów jest inaczej. Aby wyodrębnić jeden proces, uruchamiamy kontener na istniejącym systemie operacyjnym. Jeżeli chcemy wyodrębnić kolejny proces, uruchamiamy następny kontener na tym samym systemie operacyjnym. Proces przypomina uruchamianie wielu maszyn wirtualnych, ale z użyciem jednego bazowego systemu operacyjnego. Docker używa kontenerów do tworzenia wielu wyodrębnionych procesów na bazowym systemie operacyjnym, które mogą jednak komunikować się między sobą.

Wykorzystanie tradycyjnej wirtualizacji do uruchomienia nowej aplikacji na wydzielonych zasobach wymaga alokacji zasobów sprzętowych, zainstalowania systemu operacyjnego i aplikacji, a także konfiguracji. W przypadku kontenerów tworzymy lub pobieramy odpowiedni obraz, który jest wstępnie prekonfigurowany, i uruchamiamy na dowolnej maszynie z Linuksem. Konteneryzacja jest zatem szybsza i wygodniejsza w użyciu od wirtualizacji.

Zestaw narzędzi Docker

Kontener był znany w systemie Linux już wcześniej, ale dopiero od czasów Dockera jest tak łatwy do uruchomienia. Docker jest narzędziem, które pozwala szybko stworzyć lekką wirtualną maszynę z aplikacjami (kontener) i konfiguracją, a następnie ją wdrożyć. Kontenery mogą komunikować się ze sobą. Z poziomu kontenera Docker widoczny jest cały system operacyjny. Natomiast z poziomu systemu bazowego każdy kontener Docker widoczny jest jako jeden proces.

Architektura Docker została podzielona na trzy główne części: oprogramowanie umożliwiające implementację kontenerów, kontenery oraz koncentrator zawierający repozytorium prekonfigurowanych obrazów Docker. Do tworzenia, pobierania i uruchamiania kontenerów wykorzystujemy wiersz poleceń. CLI pracuje na styku systemu operacyjnego i uruchomionych na nim kontenerów. W kontenerze możemy łatwo przenieść aplikację wraz z ustawieniami z jednego miejsca do innego za pomocą obrazów Docker. Obrazy kontenerów są dostępne na stronie hub.docker.com.

[...]

Autor zawodowo zajmuje się informatyką ze specjalizacją w zakresie sieci bezprzewodowych oraz systemów transmisji głosu. Publikuje w magazynach komputerowych.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej