Sviluppo con Docker su sottosistema Windows per Linux (WSL)
Per poter lavorare pienamente con un progetto Docker in WSL, è necessario installare WSL 2. Al momento in cui scrivo, il suo utilizzo è possibile solo nell'ambito della partecipazione al programma Windows Insider (WSL 2 è disponibile nelle build 18932 e successive). Vale anche la pena menzionare separatamente che per installare e configurare Docker Desktop è necessaria la versione Windows 10 Pro.
Primi passi
Dopo aver aderito al programma Insider e aver installato gli aggiornamenti, è necessario installare una distribuzione Linux (Ubuntu 18.04 in questo esempio) e Docker Desktop con WSL 2 Tech Preview:
Ora puoi avviare Ubuntu 18.04 e configurarlo (specifica nome utente e password).
Installazione del desktop Docker
Seguire le istruzioni durante il processo di installazione. Il computer richiederà un riavvio dopo l'installazione e al primo avvio per abilitare Hyper-V (che richiede il supporto di Windows 10 Pro).
Importante! Se Docker Desktop segnala un blocco da parte del firewall, vai alle impostazioni dell'antivirus e apporta le seguenti modifiche alle regole del firewall (in questo esempio, Kaspersky Total Security viene utilizzato come antivirus):
Vai su Impostazioni -> Sicurezza -> Firewall -> Configura regole pacchetti -> Servizio locale (TCP) -> Modifica
Rimuovere la porta 445 dall'elenco delle porte locali
Salva
Dopo aver avviato Docker Desktop, seleziona WSL 2 Tech Preview dal menu contestuale.
Nella finestra che si apre, clicca sul pulsante Start.
Docker e docker-compose sono ora disponibili nella distribuzione WSL.
Importante! Il desktop Docker aggiornato ora dispone di una scheda con WSL all'interno della finestra delle impostazioni. Il supporto WSL è abilitato lì.
Importante! Oltre alla casella di controllo di attivazione WSL, devi anche attivare la distribuzione WSL nella scheda Risorse->Integrazione WSL.
Запуск
Ciò che era inaspettato erano i numerosi problemi sorti durante il tentativo di sollevare i contenitori di progetto situati nella directory utente di Windows.
Errori di vario tipo associati al lancio degli script bash (che di solito iniziano durante la creazione di contenitori per l'installazione delle librerie e distribuzioni necessarie) e altre cose comuni per lo sviluppo su Linux ci hanno fatto pensare di posizionare i progetti direttamente nella directory utente di Ubuntu 18.04.
.
Dalla soluzione al problema precedente, segue: come lavorare con i file di progetto tramite un IDE installato su Windows. Come "migliore pratica", ho trovato solo un'opzione per me: lavorare tramite VSCode (anche se sono un fan di PhpStorm).
Dopo aver installato l'estensione sopra menzionata, esegui semplicemente il comando code . nella directory del progetto quando VSCode è in esecuzione.
In questo esempio, è necessario nginx per accedere ai contenitori tramite il browser. Installalo tramite sudo apt-get install nginx Si è rivelato non così semplice. Innanzitutto, dovevamo aggiornare la distribuzione WSL eseguendo sudo apt update && sudo apt dist-upgrade, e solo dopo avviare l'installazione di nginx.
Importante! Tutti i domini locali non sono registrati nel file /etc/hosts della distribuzione Linux (non è nemmeno lì), ma nel file host (di solito situato in C:WindowsSystem32driversetchosts) di Windows 10.
fonti
Una descrizione più dettagliata di ogni passaggio può essere trovata qui: