Wstęp

Nie da się ukryć, że w ostatnich latach środowiska kontenerowe, a zwłaszcza Docker, stale zyskuje na popularności. Jest to jedna z najszybciej, o ile nie najszybciej, rozwijająca się technologia i jeden z najważniejszych trendów w 2020 roku.

Konteneryzacja odmieniana przez wszystkie przypadki najczęściej kojarzy się właśnie z Dockerem. Nie ma chyba SysOpa lub DevOpa, który nie słyszałby terminów takich jak „Docker” czy „Kontenery”. Nic dziwnego, w końcu technologia kontenerów weszła na dobre w kanon trendów IT na świecie i można spotkać ją niemal wszędzie. Trudno też wyobrazić sobie dzisiaj dobre firmy IT, w których Docker nie byłby używany, przynajmniej przy programowaniu czy testach.

Nierzadko jednak Docker wchodzi na produkcję i coraz więcej firm korzystając z jego możliwości oraz coraz większej stabilności idzie o krok dalej uruchamiając środowiska produkcyjne oparte na kontenerach.

Dzisiejszy artykuł pokaże w jaki sposób uruchomić własne środowisko Dockera w systemie Windows 10. W kolejnym artykule przedstawię jak uruchomić podobne środowisko w systemie Linux.

Uruchomienie podsystemu Windows dla systemu Linux.

W systemie Windows 10 funkcjonuje wbudowany mechanizm o nazwie WSL (Windows Subsystem Linux) co w tłumaczeniu oznacza “Podsystem Windows dla systemu Linux”. Dzięki temu mechanizmowi od jakiegoś czasu możemy uruchamiać w ramach systemu Windows aplikacje konsolowe znane dotychczas tylko w systemach Linux. W najnowszej wersji WSL2 Microsoft pozwala nawet na uruchamianie aplikacji graficznych znanych z Linuxa. Ulepszony mechanizm WSL2 dodał także szereg usprawnień działania samego subsystemu, umożliwiając pracę z kontenerami Dockera bez kombinowania i znanych wcześniej problemów np. emulowania środowiska itd.

Obecnie po uruchomieniu mechanizmu WSL2 kontenery obsługiwane są natywnie w systemie Windows przez podsystem Linux.

Pamiętajmy, że aktywacja podsystemu WSL2 jest niezbędna przed instalacją jakiejkolwiek dystrybucji Linuxa w systemie Windows.

Najłatwiej włączyć podsystem przy pomocy konsoli PowerShell. Uruchamiamy PowerShell’a z uprawnieniami administratora.

Wklejamy poniższą linijkę i po kilku chwilach podsystem WSL zostanie aktywowany.

Teraz należy zaktualizować go do wersji 2 zgodnie z oficjalną procedurą Microsoft.

Wymagania dla wersji WSL 2:

  • Dla systemów w architekturze x64: wersja min. 1903 lub wyższa, Build 18362 lub wyższy.
  • Dla systemów w architekturze ARM64: wersja min. 2004 lub wyższa, Build 19041 lub wyższy.
  • Buildy o numerkach 18362 lub niższych nie wspierają WSL 2. Konieczna bedzie aktualizacja Windows 10 w pierwszej kolejności do najnowszej wersji.

Jeśli nie wiesz jaką wersję systemu Windows 10 posiadasz uruchom wiersz poleceń i wpisz “ver”, aby wyświetlić aktualną wersję i numer kompilacji systemu.

Zanim zaktualizujemy WSL do wersji 2 włączamy maszynę wirtualną. W tym celu wracamy do okienka PowerShell i wpisujemy jak niżej.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Zgodnie z procedurą Microsoft konieczny jest restart systemu Windows przed uaktualnieniem WSL do wersji 2.

Po restarcie pobieramy najnowszą wersję WSL z oficjalnego źródła Microsoft.

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Instalujemy pobrany pakiet.

Otwieramy ponownie PowerShell jako administrator i wpisujemy poniższą komendę:

wsl –set-default-version 2

Jeśli wszystko wykonaliśmy poprawnie to otrzymamy komunikat jak niżej.

Instalacja systemu Linux w systemie Windows 10.

Mając wszystko przygotowane możemy uruchomić instalację systemu Linux w okienkach. W tym celu otwieramy aplikację Microsoft Store.

W polu wyszukaj wpisujemy “Linux” i powinna wyświetlić nam się lista dostępnych dystrybucji:

Te dystrybucje możemy zainstalować bezpłatnie. Znajdziemy tu między innymi Debiana czy Ubuntu w najnowszej wersji 20.04 LTS.

Lista dostępnych dystrybucji:

            Ubuntu 16.04 LTS

            Ubuntu 18.04 LTS

            Ubuntu 20.04 LTS

            openSUSE Leap 15.1

            SUSE Linux Enterprise Server 12 SP5

            SUSE Linux Enterprise Server 15 SP1

            Kali Linux

            Debian GNU/Linux

            Fedora Remix for WSL

            Pengwin

            Pengwin Enterprise

            Alpine WSL

Zalecam instalację dystrybucji Ubuntu 20.04 do korzystania bez problemów z Dockera, gdyż jest to jeden z lepiej udokumentowanych systemów i w razie problemów już z samym Dockerem łatwiej będzie znaleźć w sieci informacje i sposoby rozwiązania.

Po instalacji możemy uruchomić system Linux z poziomu MS Store lub z poziomu linii poleceń paska wyszukiwania.

Przełączamy się na użytkownika root.

sudo su

Instalacja Dockera w Ubuntu w systemie Windows 10

Instalujemy niezbędne pakiety:

apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

Pobieramy klucz GPG:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Dodajemy odpowiednie repozytorium:

add-apt-repository „deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

Aktualizujemy repozytoria:

apt-get update

Instalujemy Dockera:

apt-get install docker-ce docker-ce-cli containerd.io

Jeżeli wszystko przebiegnie pomyślnie to bez problemu pakiety się zainstalują.

Uruchamiamy usługę:

/etc/init.d/docker start

W tym miejscu można zakończyć procedurę, ponieważ Docker został zainstalowany. Jeśli jednak chcemy przeprowadzić test możemy wykorzystać testowy obraz Hello-World od Dockera.

Wpisujemy:

docker run hello-world

W tym miejscu widać, że wszystko jest w porządku a sam kontener uruchomił się bez problemu. Sprawdźmy to na innym kontenerze – np. z domyślnym serwerem WWW Apache2.

docker run -dit –name moja-aplikacja -p 8080:80 -v „$PWD”:/usr/local/apache2/htdocs/ httpd:2.4

System pobierze obraz Apache2 z docker huba i uruchomi go z domyślnymi ustawieniami.

Jak widać uruchomienie Dockera w systemie Windows nie jest trudnym zadaniem, a dzięki temu nie musimy już korzystać z emulatorów lub środowisk chmurowych. Możemy uruchomić, testować i programować w środowisku, które jest najszybciej rozwijającą się technologią w dzisiejszych czasach, a przy tym zachować okienka systemu Windows.

Dzięki usprawnieniom i sporym zmianom w najnowszej wersji mechanizmu WSL oznaczonym numerem 2, kontenery dają uruchamiać się natywnie w systemie Linux, który  działa w systemie Windows 10. Nie ma konieczności już emulowania tego środowiska, ponieważ rozwiązano praktycznie wszystkie występujące do tej pory problemy.