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

Artur Pęczak

Docker dla Windows

System Windows oferuje obsługę dwóch typów kontenerów. Kontenery Windows Server współdzielą jądro systemu, podczas gdy kontenery Hyper-V gwarantują pełną izolację zasobów przez uruchamianie każdego z kontenerów w wysoce zoptymalizowanej maszynie wirtualnej.

Autorzy Dockera nawiązali współpracę z Microsoftem (albo i na odwrót), której celem jest wprowadzenie platformy Docker do środowiska Windows. Chodzi tutaj o możliwość zarówno wykorzystania Windows jako systemu hosta dla kontenerów Dockera, jak i dostarczania obrazów systemu Windows Server w formie kontenerów. Efekty tych prac dostępne są już dzisiaj produkcyjnie w najnowszych wydaniach Windows 10 oraz Windows Server 2016. Docker dla Windows obsługuje kontenery systemu Linux oraz Windows Server w lokalnych centrach danych, chmurze Microsoft Azure oraz u innych dostawców usług hostingowych.

Typy kontenerów Windows

W ramach technologii konteneryzacji Windows obsługuje dwa typy kontenerów, inaczej środowisk uruchomieniowych (run­time), dla aplikacji. Są to kontenery Windows Server (Windows Server Containers) oraz izolowane kontenery Hyper-V (Hyper-V Isolation). Kontenery Windows Server stanowią bezpośrednią implementację Dockera dla Windows, zapewniając separację aplikacji uruchamianych w kontenerach z wykorzystaniem technologii izolowania procesów, przestrzeni nazw i sterowania zasobami. Metoda ta zakłada współdzielenie jądra systemu operacyjnego z hostem konteneryzacji oraz innymi kontenerami uruchamianymi na tym hoście. W rezultacie poszczególne kontenery wymagają jądra w tej samej wersji i konfiguracji, co jądro systemu hosta. Podejście to nie gwarantuje również pełnej izolacji aplikacji, a kontenery Windows Server nie powinny być stosowane do uruchamiania niezaufanego kodu. Z drugiej zaś strony ten typ obsługi aplikacji pokazuje wszystkie zalety konteneryzacji – szybki start kontenerów, wysoką wydajność czy małe obciążenie zasobów. Kontenery Windows Server doskonale sprawdzą się do obsługi mikrousług, gdzie w oddzielnych kontenerach uruchamianych jest wiele niezależnych serwisów, aby zapewnić działanie jednej aplikacji.

Izolowane kontenery Hyper-V wzbogacają mechanizm izolacji aplikacji kontenerów Windows Server poprzez uruchamianie każdego kontenera w oddzielnej, wysoce zoptymalizowanej maszynie wirtualnej hiperwizora Hyper-V. Podejście to stanowi pewne połączenie technologii wirtualizacji (maszyny wirtualne) i konteneryzacji (kontenery). W tej architekturze jądro systemu hosta nie jest współdzielone z innymi kontenerami uruchamianymi na tym hoście. W rezultacie na tej samej maszynie hoście mogą być uruchamiane kontenery z jądrem systemu w innej wersji i konfiguracji. Microsoft podaje tutaj przykład konteneryzacji Windows 10, która korzysta z izolacji Hyper-V do uruchamiania kontenerów z systemem Windows Server. Kontenery Hyper-V gwarantują pełną izolację uruchamianych aplikacji. Każdy kontener ma wydzielony obszar pamięci oraz własną kopię jądra systemu, co przekłada się na wyższe bezpieczeństwo samego rozwiązania, kosztem dłuższego czasu uruchamiania i rozmiaru pakietów kontenerów. Typ kontenera, a więc standardowy lub z izolacją Hyper-V, wskazywany jest w momencie jego uruchomienia. Istnieje możliwość utworzenia kontenera Hyper-V i uruchomienia go później jako zwykły kontener Windows Server.

Windows 10 Kontenery to funkcja Windows 10 gotowa do włączenia przez moduł Włącz lub wyłącz funkcje systemu Windows. Problem w tym, że w najnowszych wersjach tego systemu Microsoft zrezygnował z dostarczania komend PowerShella do obsługi kontenerów Dockera. Zamiast tego ze strony docker.com/docker-windows pobieramy zestaw narzędzi do zarządzania środowiskiem kontenerów Dockera w Windows. W praktyce jest to natywna aplikacja Windows, która ułatwia zarządzanie środowiskiem kontenerów Dockera w zakresie budowania, dostarczania i uruchamiania skonteneryzowanych aplikacji. Zarządzanie Dockerem odbywa się z Wiersza poleceń lub PowerShella za pomocą nowej komendy docker.

Pakiet Docker CE for Windows dostępny jest w dwóch kanałach: Stable dla środowisk produkcyjnych oraz Edge, jeśli potrzebujemy obsługi najnowszych, nierzadko jeszcze eksperymentalnych funkcji tego środowiska. Docker CE for Windows działa w Windows 10 w wersjach Pro i Enterprise. Wymaga aktualizacji systemu do wydania Anniversary Edition lub nowszego. Oprogramowanie dostarczane jest w formie pakietu instalatora (.exe) do instalacji na komputerze użytkownika. W trakcie instalacji, jeśli nie zrobiono tego wcześniej, włączane są funkcje systemu Windows Kontenery oraz Hyper-V. Oprogramowanie to, w porównaniu z pierwotnym modułem PowerShella od Microsoftu, dostarcza narzędzia do zarządzania kontenerami Windows i Linux z wiersza poleceń i PowerShell. Ma również graficzny interfejs z ikoną paska zadań, który umożliwia wygodną zmianę podstawowych ustawień Dockera.

GUI programu kryje się pod ikoną na pasku zadań. Menu kontekstowe zapewnia szybki dostęp do programu Kitematic, a po zalogowaniu się na konto Dockera również repozytoriów tego środowiska. Menu umożliwia także szybkie przełączanie się między konteneryzacją Windows i Linux. W wierszu poleceń przełączenie między trybem kontenerów Linux a Windows można wykonać za pomocą narzędzia DockerCli.exe z parametrem -SwitchDaemon:

PS C:\> C:\ProgramFiles\Docker\`
Docker\DockerCli.exe -SwitchDaemon

W ustawieniach GUI programu możemy zaś zdecydować, czy środowisko kontenerów ma być uruchamiane podczas startu systemu, włączyć współdzielenie dysków lokalnych, zmienić ustawienia sieci i proxy oraz zmodyfikować ilość zasobów (liczba rdzeni procesora, pamięć, miejsce przechowywania obrazów i wolumenów VHD) dla kontenerów. Z poziomu GUI Dockera istnieje możliwość zainstalowania dodatku Kitematic – graficznego narzędzia do instalowania i zarządzania kontenerami dla Linuksa. Pobrane archiwum rozpakowujemy do folderu C:\Program Files\Docker\Kitematic.

Windows Server 2016

Odmiennie wygląda instalacja Dockera w systemie Windows Server 2016. Instalator Dockera dla Windows dostępny jest w internetowym repozytorium pakietów za pomocą modułu PowerShella PackageManagement (inaczej OneGet).

[...]

Autor zawodowo zajmuje się informatyką. Publikuje w magazynach komputerowych i serwisach internetowych.

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