Sviluppo con Docker su sottosistema Windows per Linux (WSL)

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:

  1. Anteprima tecnica Docker Desktop WSL 2
  2. Ubuntu 18.04 da Windows Store

In entrambi i punti seguiamo tutte le istruzioni di installazione e configurazione.

Installazione della distribuzione Ubuntu 18.04

Prima di eseguire Ubuntu 18.04, è necessario abilitare Windows WSL e Windows Virtual Machine Platform eseguendo due comandi in PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (richiede il riavvio del computer)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Successivamente dobbiamo assicurarci di utilizzare WSL v2. Per fare ciò, nel terminale WSL o PowerShell, esegui i seguenti comandi:

  • wsl -l -v - guarda quale versione è attualmente installata. Se 1, ci spostiamo più in basso nell'elenco
  • wsl --set-version ubuntu 18.04 2 - per aggiornare alla versione 2
  • wsl -s ubuntu 18.04 - installa Ubuntu 18.04 come distribuzione predefinita

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.

Sviluppo con Docker su sottosistema Windows per Linux (WSL)

Nella finestra che si apre, clicca sul pulsante Start.

Sviluppo con Docker su sottosistema Windows per Linux (WSL)

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ì.

Sviluppo con Docker su sottosistema Windows per Linux (WSL)

Importante! Oltre alla casella di controllo di attivazione WSL, devi anche attivare la distribuzione WSL nella scheda Risorse->Integrazione WSL.

Sviluppo con Docker su sottosistema Windows per Linux (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 scaricato e installato VSCode, assicurati di installarlo nell'estensione Pacchetto di estensione per lo sviluppo remoto.

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:

Fonte: habr.com

Aggiungi un commento