Rozwój z Dockerem na Windows Subsystem for Linux (WSL)

Rozwój z Dockerem na Windows Subsystem for Linux (WSL)

Aby w pełni korzystać z projektu na dockerze w WSL, konieczna jest instalacja WSL 2. W momencie pisania tego wpisu można go używać tylko w ramach programu wstępnej oceny Windows (WSL 2 jest dostępna w kompilacjach 18932 i wyższych). Należy również wspomnieć, że konieczna jest wersja Windows 10 Pro do instalacji i konfiguracji Docker Desktop.

Pierwsze kroki

Po przystąpieniu do programu wstępnej oceny i zainstalowaniu aktualizacji należy zainstalować dystrybucję Linux (w tym przykładzie używana jest Ubuntu 18.04) oraz Docker Desktop z WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 z Windows Store

W obu przypadkach postępujemy zgodnie ze wszystkimi instrukcjami dotyczącymi instalacji i konfiguracji.

Instalacja dystrybucji Ubuntu 18.04

Przed uruchomieniem Ubuntu 18.04 należy włączyć Windows WSL i Windows Virtual Machine Platform, wykonując dwie komendy w PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (wymaga ponownego uruchomienia komputera)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Następnie należy upewnić się, że używamy WSL v2. W tym celu w terminalu WSL lub PowerShell kolejno wykonujemy komendy:

  • wsl -l -v — sprawdzamy, jaka wersja jest aktualnie zainstalowana. Jeśli 1, to przechodzimy dalej w liście
  • wsl --set-version ubuntu 18.04 2 — aby zaktualizować do wersji 2
  • wsl -s ubuntu 18.04 — ustawiamy Ubuntu 18.04 jako dystrybucję domyślną

Teraz można uruchomić Ubuntu 18.04, przeprowadzić konfigurację (podając nazwę użytkownika i hasło).

Instalacja Docker Desktop

W trakcie instalacji postępujemy zgodnie z wskazówkami. Komputer wymusi ponowne uruchomienie po instalacji i przy pierwszym uruchomieniu, aby włączyć Hyper-V (ze względu na wsparcie którego wymagana jest wersja Windows 10 Pro).

WAŻNE! Jeśli Docker Desktop zgłosi blokadę ze strony zapory, przechodzimy do ustawień antywirusowych i wprowadzamy następujące zmiany w zasadach zapory sieciowej (w tym przykładzie używany jest Kaspersky Total Security):

  • Przechodzimy do Ustawienia -> Ochrona -> Zapora sieciowa -> Skonfiguruj zasady pakietów -> Local Service (TCP) -> Zmień
  • Z listy lokalnych portów usuwamy port 445
  • Zapisz

Po uruchomieniu Docker Desktop w jego menu kontekstowym wybieramy opcję WSL 2 Tech Preview.

Rozwój z Dockerem na Windows Subsystem for Linux (WSL)

W otwartym oknie naciskamy przycisk Start.

Rozwój z Dockerem na Windows Subsystem for Linux (WSL)

Teraz docker i docker-compose są dostępne w dystrybucji WSL.

WAŻNE! W zaktualizowanym Docker Desktop teraz zakładka z WSL znajduje się wewnątrz okna ustawień. Tam włączamy wsparcie WSL.

Rozwój z Dockerem na Windows Subsystem for Linux (WSL)

WAŻNE! Oprócz zaznaczenia opcji aktywacji WSL, konieczne jest również włączenie dystrybucji WSL w zakładce Zasoby -> Integracja WSL.

Rozwój z Dockerem na Windows Subsystem for Linux (WSL)

Uruchomienie

Zaskoczeniem były liczne problemy, które pojawiły się podczas próby uruchomienia kontenerów projektów znajdujących się w katalogu użytkownika Windows.

Różnego rodzaju błędy związane z uruchamianiem skryptów bash (które zazwyczaj startują podczas budowy kontenerów w celu instalacji niezbędnych bibliotek i dystrybucji) oraz inne typowe dla rozwoju na Linuxie, skłoniły do przemyślenia umiejscowienia projektów bezpośrednio w katalogu użytkownika Ubuntu 18.04.

.

Z poprzedniego rozwiązania wynika następujący problem: jak pracować z plikami projektu za pomocą IDE zainstalowanego w systemie Windows. Jako „najlepsza praktyka” znalazłem tylko jedną opcję — pracę za pomocą VSCode (chociaż jestem fanem PhpStorm).

Po pobraniu i zainstalowaniu VSCode, koniecznie instalujemy rozszerzenie pakiet rozszerzeń Remote Development.

Po zainstalowaniu wspomnianego rozszerzenia wystarczy wykonać polecenie code . w katalogu projektu z uruchomionym VSCode.

W tym przykładzie, aby uzyskać dostęp do kontenerów przez przeglądarkę, potrzebny jest nginx. Zainstalowanie go przez sudo apt-get install nginx okazało się nie takie proste. Najpierw trzeba było zaktualizować dystrybucję WSL, wykonując sudo apt update && sudo apt dist-upgrade, a dopiero po tym rozpocząć instalację nginx.

WAŻNE! Wszystkie lokalne domeny są zapisane nie w pliku /etc/hosts dystrybucji Linux (nawet go tam nie ma), lecz w pliku hosts (zazwyczaj znajdującym się w C:WindowsSystem32driversetchosts) Windows 10.

Źródła

Szczegółowy opis każdego kroku można znaleźć tutaj:

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster