Dezvoltare cu Docker pe subsistemul Windows pentru Linux (WSL)
Pentru a lucra pe deplin cu un proiect Docker în WSL, trebuie să instalați WSL 2. În momentul scrierii, utilizarea acestuia este posibilă numai ca parte a participării la programul Windows Insider (WSL 2 este disponibil în versiunile 18932 și mai recente). De asemenea, merită menționat separat că versiunea Windows 10 Pro este necesară pentru a instala și configura Docker Desktop.
Primii pași
După ce vă alăturați programului Insider și instalați actualizări, trebuie să instalați o distribuție Linux (Ubuntu 18.04 în acest exemplu) și Docker Desktop cu WSL 2 Tech Preview:
Acum puteți porni Ubuntu 18.04 și îl puteți configura (specificați numele de utilizator și parola).
Instalarea Docker Desktop
Urmați instrucțiunile în timpul procesului de instalare. Computerul va necesita o repornire după instalare și la prima pornire pentru a activa Hyper-V (care necesită Windows 10 Pro pentru a fi compatibil).
Important! Dacă Docker Desktop raportează blocarea de către firewall, accesați setările antivirus și efectuați următoarele modificări în regulile firewallului (în acest exemplu, Kaspersky Total Security este folosit ca antivirus):
Accesați Setări -> Securitate -> Firewall -> Configurați regulile de pachete -> Serviciu local (TCP) -> Editați
Eliminați portul 445 din lista de porturi locale
Reține
După ce porniți Docker Desktop, selectați WSL 2 Tech Preview din meniul său contextual.
În fereastra care se deschide, faceți clic pe butonul Start.
Docker și docker-compose sunt acum disponibile în distribuția WSL.
Important! Desktop-ul Docker actualizat are acum o filă cu WSL în fereastra de setări. Suportul WSL este activat acolo.
Important! Pe lângă caseta de selectare Activare WSL, trebuie să activați și distribuția WSL în fila Resurse->Integrare WSL.
lansa
Ceea ce a fost neașteptat au fost numeroasele probleme care au apărut la încercarea de a ridica containerele de proiect aflate în directorul de utilizatori Windows.
Erorile de diferite feluri asociate cu lansarea scripturilor bash (care încep de obicei la construirea containerelor pentru instalarea bibliotecilor și distribuțiilor necesare) și alte lucruri comune pentru dezvoltarea pe Linux ne-au făcut să ne gândim la plasarea proiectelor direct în directorul de utilizatori al Ubuntu 18.04.
.
De la soluția la problema anterioară, urmează: cum să lucrați cu fișierele de proiect printr-un IDE instalat pe Windows. Ca „cea mai bună practică”, am găsit o singură opțiune pentru mine - să lucrez prin VSCode (deși sunt fan PhpStorm).
După instalarea extensiei menționate mai sus, pur și simplu rulați comanda code . în directorul de proiect atunci când VSCode rulează.
În acest exemplu, nginx este necesar pentru a accesa containerele prin browser. Instalați-l prin sudo apt-get install nginx S-a dovedit a nu fi atât de simplu. Mai întâi, trebuia să actualizăm distribuția WSL rulând sudo apt update && sudo apt dist-upgrade, și numai după aceea porniți instalarea nginx.
Important! Toate domeniile locale sunt înregistrate nu în fișierul /etc/hosts al distribuției Linux (nici măcar nu există), ci în fișierul hosts (de obicei situat în C:WindowsSystem32driversetchosts) al Windows 10.
surse
O descriere mai detaliată a fiecărui pas poate fi găsită aici: