Programowanie za pomocą Dockera w podsystemie Windows dla systemu Linux (WSL)

Programowanie za pomocą Dockera w podsystemie Windows dla systemu Linux (WSL)

Aby w pełni współpracować z projektem Docker w WSL należy zainstalować WSL 2. W chwili pisania tego tekstu korzystanie z niego możliwe jest jedynie w ramach uczestnictwa w programie Windows Insider (WSL 2 dostępny jest w buildach 18932 i wyższych). Warto też osobno wspomnieć, że do instalacji i konfiguracji Docker Desktop wymagana jest wersja Windows 10 Pro.

Pierwsze kroki

Po dołączeniu do programu Insider i zainstalowaniu aktualizacji należy zainstalować dystrybucję Linuksa (w tym przykładzie Ubuntu 18.04) oraz Docker Desktop z WSL 2 Tech Preview:

  1. Podgląd technologii Docker Desktop WSL 2
  2. Ubuntu 18.04 ze Sklepu Windows

W obu punktach postępujemy zgodnie ze wszystkimi instrukcjami instalacji i konfiguracji.

Instalacja dystrybucji Ubuntu 18.04

Przed uruchomieniem Ubuntu 18.04 musisz włączyć Windows WSL i platformę maszyny wirtualnej Windows, uruchamiając dwa polecenia w PowerShell:

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

Następnie musimy się upewnić, że będziemy używać WSL v2. Aby to zrobić, w terminalu WSL lub PowerShell uruchom następujące polecenia:

  • wsl -l -v — sprawdź, która wersja jest aktualnie zainstalowana. Jeżeli 1, to przesuwamy się dalej w dół listy
  • wsl --set-version ubuntu 18.04 2 - aby zaktualizować do wersji 2
  • wsl -s ubuntu 18.04 — zainstaluj Ubuntu 18.04 jako domyślną dystrybucję

Teraz możesz uruchomić Ubuntu 18.04 i skonfigurować go (podaj swoją nazwę użytkownika i hasło).

Instalowanie pulpitu Docker

Postępuj zgodnie z instrukcjami podczas procesu instalacji. Komputer będzie wymagał ponownego uruchomienia po instalacji i przy pierwszym uruchomieniu, aby włączyć funkcję Hyper-V (która wymaga obsługi systemu Windows 10 Pro).

Ważne! Jeśli Docker Desktop zgłosi blokowanie przez zaporę, przejdź do ustawień programu antywirusowego i wprowadź następujące zmiany w regułach zapory (w tym przykładzie jako program antywirusowy używany jest Kaspersky Total Security):

  • Przejdź do Ustawienia -> Bezpieczeństwo -> Zapora sieciowa -> Konfiguruj reguły pakietów -> Usługa lokalna (TCP) -> Edytuj
  • Usuń port 445 z listy portów lokalnych
  • Oszczędzać

Po uruchomieniu Docker Desktop wybierz opcję WSL 2 Tech Preview z menu kontekstowego.

Programowanie za pomocą Dockera w podsystemie Windows dla systemu Linux (WSL)

W oknie, które zostanie otwarte, kliknij przycisk Start.

Programowanie za pomocą Dockera w podsystemie Windows dla systemu Linux (WSL)

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

Ważne! Zaktualizowany pulpit Docker ma teraz zakładkę z WSL w oknie ustawień. Tam włączona jest obsługa WSL.

Programowanie za pomocą Dockera w podsystemie Windows dla systemu Linux (WSL)

Ważne! Oprócz zaznaczenia pola wyboru Aktywacja WSL, musisz także aktywować swoją dystrybucję WSL w zakładce Zasoby->Integracja WSL.

Programowanie za pomocą Dockera w podsystemie Windows dla systemu Linux (WSL)

szalupa

Nieoczekiwane było wiele problemów, które pojawiły się podczas próby pobrania kontenerów projektów znajdujących się w katalogu użytkownika systemu Windows.

Różnego rodzaju błędy związane z uruchamianiem skryptów bash (które zwykle rozpoczynają się podczas budowania kontenerów do instalacji niezbędnych bibliotek i dystrybucji) oraz inne rzeczy typowe dla programowania w systemie Linux skłoniły nas do zastanowienia się nad umieszczeniem projektów bezpośrednio w katalogu użytkownika Ubuntu 18.04.

.

Z rozwiązania poprzedniego problemu wynika, co następuje: jak pracować z plikami projektu za pomocą IDE zainstalowanego w systemie Windows. Jako „najlepszą praktykę” znalazłem dla siebie tylko jedną opcję - pracę z VSCode (chociaż jestem fanem PhpStorm).

Po pobraniu i zainstalowaniu VSCode pamiętaj o zainstalowaniu go w rozszerzeniu Pakiet rozszerzeń Remote Development.

Po zainstalowaniu wyżej wymienionego rozszerzenia wystarczy uruchomić polecenie code . w katalogu projektu, gdy uruchomiony jest VSCode.

W tym przykładzie nginx jest wymagany, aby uzyskać dostęp do kontenerów za pośrednictwem przeglądarki. Zainstaluj go przez sudo apt-get install nginx Okazało się, że nie jest to takie proste. Najpierw musieliśmy zaktualizować dystrybucję WSL, uruchamiając ją sudo apt update && sudo apt dist-upgradei dopiero potem rozpocznij instalację Nginx.

Ważne! Wszystkie domeny lokalne są zarejestrowane nie w pliku /etc/hosts dystrybucji Linuksa (nawet go tam nie ma), ale w pliku hosts (zwykle zlokalizowanym C:WindowsSystem32drivesetchosts) systemu Windows 10.

Źródła informacji

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

Źródło: www.habr.com

Dodaj komentarz