Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Per un uso completo del progetto su Docker in WSL è necessaria l'installazione di WSL 2. Al momento della scrittura di questa nota, il suo utilizzo è possibile solo nell'ambito della partecipazione al programma di valutazione anticipata di Windows (WSL 2 è disponibile nei build 18932 e superiori). È inoltre importante menzionare che è necessaria una versione di Windows 10 Pro per l'installazione e la configurazione di Docker Desktop.

Primi passi

Dopo aver aderito al programma di valutazione anticipata e aver installato gli aggiornamenti, è necessario installare il pacchetto Linux (in questo esempio si utilizza Ubuntu 18.04) e Docker Desktop con WSL 2 Tech Preview:

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

In entrambi i casi seguiamo tutte le istruzioni per l'installazione e la configurazione.

Installazione del pacchetto Ubuntu 18.04

Prima di avviare Ubuntu 18.04, è necessario abilitare WSL di Windows e la Piattaforma di Macchine Virtuali di Windows eseguendo due comandi in PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (richiederà un riavvio del computer)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Dopo dobbiamo assicurarci di utilizzare WSL v2. A tal fine, nel terminale WSL o in PowerShell eseguiamo consecutivamente i comandi:

  • wsl -l -v — controlliamo quale versione è attualmente installata. Se è 1, procediamo con il seguente passaggio
  • wsl --set-version ubuntu 18.04 2 — per l'aggiornamento alla versione 2
  • wsl -s ubuntu 18.04 — impostiamo Ubuntu 18.04 come distribuzione predefinita

Ora possiamo avviare Ubuntu 18.04 e completare la configurazione (specificare nome utente e password).

Installazione di Docker Desktop

Durante il processo di installazione seguiamo le istruzioni. Il computer richiederà un riavvio dopo l'installazione e al primo avvio per abilitare Hyper-V (per il quale è necessaria una versione di Windows 10 Pro).

Importante! Se Docker Desktop segnala un blocco da parte del firewall, andiamo nelle impostazioni dell'antivirus e apportiamo le seguenti modifiche alle regole del firewall (in questo esempio si utilizza Kaspersky Total Security):

  • Andiamo a Impostazioni -> Protezione -> Firewall -> Configurare le regole di pacchetto -> Local Service (TCP) -> Modifica
  • Dalla lista delle porte locali, rimuoviamo la porta 445
  • Salva

Dopo aver avviato Docker Desktop, nel suo menu contestuale selezioniamo l'opzione WSL 2 Tech Preview.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Nella finestra aperta, premiamo il pulsante Avvia.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Ora docker e docker-compose sono disponibili all'interno della distribuzione WSL.

Importante! Nella versione aggiornata di Docker Desktop, ora c'è una scheda con WSL all'interno della finestra di impostazioni. Lì viene attivato il supporto per WSL.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Importante! Oltre alla spunta di attivazione di WSL, è necessario attivare la tua distribuzione WSL nella scheda Risorse->Integrazione WSL.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Avvio

È stata una sorpresa riscontrare i molti problemi che sono emersi nel tentativo di avviare i contenitori dei progetti situati nella directory dell'utente Windows.

Errori di vario genere legati all'esecuzione di script bash (che di solito iniziano durante la costruzione dei contenitori per installare le librerie e le distribuzioni necessarie) e altre questioni comuni nello sviluppo su Linux mi hanno fatto riflettere sulla possibilità di posizionare i progetti direttamente nella directory utente di Ubuntu 18.04.

.

Dalla soluzione del problema precedente scaturisce il seguente: come lavorare con i file di progetto tramite un IDE installato su Windows. Come "best practice", ho trovato solo un'opzione possibile: lavorare tramite VSCode (nonostante sia un fan di PhpStorm).

Dopo aver scaricato e installato VSCode, è fondamentale installare l'estensione Remote Development extension pack.

Dopo aver installato l'estensione sopra citata, è sufficiente eseguire il comando code . nella directory del progetto mentre VSCode è in esecuzione.

In questo esempio, per accedere ai contenitori tramite il browser è necessario nginx. Installarlo tramite sudo apt-get install nginx si è rivelato non così semplice. Per iniziare, è stato necessario aggiornare la distribuzione WSL eseguendo sudo apt update && sudo apt dist-upgrade, e solo dopo questo è stato possibile avviare l'installazione di nginx.

Importante! Tutti i domini locali non vengono scritti nel file /etc/hosts della distribuzione Linux (che non esiste nemmeno), ma nel file hosts (solitamente situato in C:WindowsSystem32driversetchosts) di Windows 10.

Fonti

Una descrizione più dettagliata di ogni passo può essere trovata qui:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster