Avere a che fare con l’errore “Unexpected WSL error” su Docker Desktop può essere piuttosto fastidioso. Soprattutto se si utilizza Docker per lavoro, armeggiare con le configurazioni di WSL (Windows Subsystem for Linux), i permessi o i componenti mancanti può causare ogni sorta di grattacapo.È una vera seccatura perché a volte sembra che risolverlo sia un gioco di tentativi ed errori. Ma per fortuna, esistono alcuni metodi efficaci per la risoluzione dei problemi e, si spera, per far funzionare di nuovo Docker senza intoppi.
Come risolvere l’errore “WSL imprevisto” in Docker Desktop
Metodo 1. Installa WSL se non è presente
In sostanza, Docker si basa fortemente su WSL2. Se WSL non è installato o configurato correttamente, Docker potrebbe generare quell’errore. Quindi, la prima cosa da verificare è se WSL è presente e installato correttamente.
- Premi il tasto Windows + S per aprire la Ricerca.
- Digita Prompt dei comandi e fai clic con il pulsante destro del mouse per selezionare Esegui come amministratore. Sì, devi farlo con i diritti di amministratore.
- Nel terminale, digita
wsl --installe premi Invio Enter. Questo comando avvia l’installazione di WSL 2 se non è già installato. In alcune build, questo installa automaticamente anche l’aggiornamento del kernel di Windows, quindi assicurati che il tuo sistema sia completamente aggiornato. - Al termine, riavvia il PC.
Questo aiuta a garantire che WSL venga configurato da zero, soprattutto se era completamente assente. Assicurati di aver installato gli aggiornamenti di Windows più recenti, perché le versioni precedenti potrebbero interferire.
Metodo 2. Aggiornare WSL all’ultima versione
Successivamente, è necessario aggiornare WSL. Le versioni obsolete possono causare problemi di compatibilità che portano a errori.È possibile farlo da una finestra del prompt dei comandi o di PowerShell con privilegi di amministratore.
- Premi il tasto Windows + R, quindi digita cmd e premi Invio Ctrl + Shift + Enterper ottenere i privilegi di amministratore.
- Conferma la richiesta che compare.
- Digita
wsl --updatee premi Enter. In questo modo verrà scaricato l’ultimo aggiornamento di WSL da Microsoft. - Riavvia il sistema. A volte, questo passaggio risolve problemi di incompatibilità del kernel o bug.
Questo metodo è applicabile se la versione di WSL in uso è obsoleta o presenta dei bug, che possono causare errori in Docker Desktop durante il tentativo di avviare WSL2.
Metodo 3. Modificare il file Settings.json in Docker.
A volte le configurazioni interne di Docker si alterano, soprattutto il file di impostazioni JSON. Vale la pena dargli un’occhiata se le altre soluzioni non funzionano.
- Apri Esplora file con il tasto Windows + E.
- Incolla %Appdata%\Docker nella barra degli indirizzi e premi Enter.
- Individua e fai doppio clic sul file settings.json. Se non è presente, Docker potrebbe essere danneggiato e potrebbe essere necessario reinstallarlo.
- Cerca le linee:
"integratedWslDistros" : [ ]"enableIntegrationWithDefaultWslDistro" : false
- Regola queste impostazioni se necessario. Ad esempio, impostando
"enableIntegrationWithDefaultWslDistro"sutrueè possibile rendere Docker più compatibile. Salva le modifiche e riavvia Docker.
Assicurarsi che le configurazioni JSON di Docker siano allineate con la configurazione WSL spesso risolve l’errore. Per esperienza, impostazioni configurate in modo errato possono facilmente causare strani errori di Docker relativi all’integrazione con WSL.
Metodo 4. Passare il prompt dei comandi alla modalità legacy
Questo è un trucco subdolo. A quanto pare, alcuni utenti hanno scoperto che Docker segnala meno errori quando il prompt dei comandi è impostato sulla modalità Legacy, soprattutto se la console predefinita presenta problemi.
- Apri la barra di ricerca, digita Prompt dei comandi, fai clic con il pulsante destro del mouse e scegli Esegui come amministratore.
- Fai clic con il pulsante destro del mouse sulla barra superiore, quindi seleziona Proprietà.
- Vai alla scheda Opzioni.
- Seleziona “Usa console legacy”.
- Fai clic su OK e riavvia Docker. A volte, questo piccolo accorgimento stabilizza le interazioni con WSL.
A quanto pare, in alcune configurazioni la console legacy funziona meglio con i componenti WSL di Docker, anche se è un po’ datata.
Metodo 5. Reimposta le impostazioni di rete con Winsock reset
Problemi di rete o stack di rete malfunzionanti possono interferire con la connettività di WSL, causando errori Docker. Il ripristino di Winsock e delle configurazioni di rete può aiutare a risolvere il problema.
- Premi il tasto Windows + R, digita cmd, quindi premi Ctrl + Shift + Enter.
- Consenti l’autorizzazione UAC se viene visualizzata.
- Esegui questi due comandi uno dopo l’altro:
netsh int ip resetnetsh winsock reset
- Una volta terminato, riavviate il sistema.È un’operazione un po’ macchinosa, ma a volte l’instabilità della rete causa errori in WSL e Docker, quindi questo procedimento risolve il problema.
In alcune configurazioni, questo passaggio ha risolto errori WSL relativi alla rete o problemi di blocco di Docker.
Metodo 6. Reinstallare completamente WSL e le relative funzionalità di Windows.
Se nessun’altra soluzione funziona, la rimozione e la reinstallazione completa di WSL e delle funzionalità opzionali possono essere l’ultima risorsa. Certo, è un’operazione più complessa, ma a volte Windows si sovraccarica o si blocca.
- Premi il tasto Windows + I per aprire le Impostazioni.
- Accedi ad App, quindi fai clic su App installate.
- Individua “Sottosistema Windows per Linux” e fai clic sui puntini di sospensione ( … ) accanto ad esso.
- Seleziona Disinstalla. Ripeti l’operazione per le applicazioni come Ubuntu o altre distribuzioni Linux che hai installato.
- Successivamente, vai su Funzionalità facoltative (puoi trovarle cercando in alto in Impostazioni), quindi fai clic su Altre funzionalità di Windows in basso.
- Deseleziona Sottosistema Windows per Linux e piattaforma macchine virtuali.
- Fai clic su OK, quindi riavvia.
- Dopo il riavvio, torna indietro e riattiva queste funzioni. Riavvia di nuovo.
- Infine, reinstalla WSL tramite il prompt dei comandi con
wsl --install— sì, a volte rifare l’installazione iniziale da zero risolve tutti gli stati corrotti.
Questa è una soluzione drastica, ma su alcune macchine è l’unico modo per ripartire da zero.
Riepilogo
- Assicurarsi che WSL sia installato correttamente.
- Aggiornare WSL all’ultima versione.
- Verifica e modifica le impostazioni JSON di Docker.
- Se necessario, passa alla modalità legacy del prompt dei comandi.
- Ripristino delle impostazioni di rete: ripristino di Winsock e IP.
- Se tutto il resto fallisce, reinstalla WSL da zero.
Incartare
Questo tipo di errore non è affatto piacevole. Nella maggior parte dei casi, si tratta di un componente mancante o di un’incongruenza nella configurazione. Risolverlo di solito comporta l’installazione, l’aggiornamento o il ripristino di alcune parti di WSL e delle impostazioni di Docker. A volte, l’unica soluzione è una reinstallazione completa. Tuttavia, una volta che tutto è allineato, Docker tende a funzionare di nuovo correttamente. Spero che questo possa aiutare qualcuno a evitare ore di scervellamento. Ha funzionato per alcune configurazioni, spero funzioni anche per la tua.