LUCA FAVENZI

L’esecuzione di container Docker su un PC Windows 10 è stata difficile negli ultimi anni. È ancora più difficile se vuoi eseguire contemporaneamente macchine virtuali (VM) VirtualBox. Un casuale ricerca su Google si trasformerà frotte di messaggi dicendo che assolutamente non si può fare entrambe le cose in una volta.

Il problema è che Docker su Windows richiedeva di abilitare l’hypervisor Hyper ‑ V, ma VirtualBox 5.x non verrà eseguito mentre Hype ‑ V è attivo. La domanda docker + VM sul sistema operativo Windows è stata posta e risposta così tante volte nel corso degli anni che i risultati della ricerca sono stati inondati dalla stessa risposta obsoleta: No, non puoi avere entrambi. Per alcuni di noi, questo viene ulteriormente complicato da persone che dicono che non è nemmeno possibile utilizzare Hyper ‑ V nella versione Windows 10 Home. Bene, le cose stanno cambiando, ma devi scavare davvero a fondo nel Web per ottenere le informazioni necessarie per realizzarlo.

Due recenti modifiche hanno cambiato le cose. Innanzitutto, VirtualBox 6 ha un supporto “sperimentale” per Hyper ‑ V. In secondo luogo, l’imminente sottosistema Windows per Linux versione 2 supporta completamente la finestra mobile utilizzando Hyper ‑ V, anche nell’edizione Windows Home.

WSL2
Windows Subsystem for Linux (WSL) è davvero ottimo per gli sviluppatori che desiderano installare Windows sul proprio PC. Ti consente di installare un Linux come sistema operativo peer su Windows a cui puoi accedere facilmente tramite un terminale Linux. Tuttavia, la versione 1 di WSL presentava alcune limitazioni. Un aspetto importante per me è che il livello di emulazione delle chiamate di sistema fornito da Microsoft non è in grado di supportare Docker.

WSL2 è un grande aggiornamento: file system più veloce, supporto per l’esecuzione diretta del kernel Linux su Hyper ‑ V. È previsto l’aggiornamento “20H1” che verrà rilasciato nella primavera del 2020, ma puoi ottenerlo ora se ti unisci al programma Windows Insider. Le istruzioni per questo si trovano nella Guida dell’utente del programma Windows Insider . Una volta che hai una versione aggiornata di Windows, l’installazione di WSL2 è abbastanza semplice se segui le istruzioni sul sito Web di Microsoft .

VirtualBox 6
installazione di VirtualBox 6 è semplice e puoi trovare l’installazione nella pagina di download di VirtualBox . Può essere un po ‘complicato far funzionare alcune VM ora che Hyper ‑ V è abilitato. Per me, quando ho provato a riavviare una vecchia VM o a crearne una nuova utilizzando le impostazioni predefinite, avrei ricevuto subito un errore.

Finestra di avviso che mostra il messaggio di errore della Virtual Box: "Impossibile aprire una sessione per la macchina virtuale hypertest."

Per far funzionare le VM, dovrai accedere alle impostazioni della VM, scegliere la sezione Sistema, accedere alla scheda Accelerazione e selezionare Hyper ‑ V come interfaccia di paravirtualizzazione. Potrebbe anche essere necessario disabilitare la casella di controllo APC I / O nella scheda Scheda madre. Ho riscontrato un arresto anomalo del sistema operativo guest con esso controllato, ma se funziona per te, lascialo così com’è. ALLORA, è necessario aggiungere un’impostazione oscura al file .vbox associato all’immagine della VM:

VBoxManage setextradata "<VM Name>" "VBoxInternal/NEM/UseRing0Runloop" 0

Ho trovato quel suggerimento sull’impostazione UseRing0Runloop in un post sul  forum in cui ho avuto la fortuna di imbattermi.

Prestazioni / stabilità
Funziona per la mia configurazione. L’esecuzione con queste funzionalità di livello di beta test presenta alcuni aspetti negativi. Le prestazioni della VM VirtualBox sono notevolmente più lente in questo modo. È anche un po ‘instabile e si verificherà un arresto anomalo del sistema operativo guest intermittente che non si aveva prima. Per me va bene dato che lo sto usando per il lavoro di sviluppo, quindi è abbastanza facile riavviare la VM quando accade. Sul lato WSL, la versione 2 è un grande miglioramento. Tutto ciò che tocca il filesystem è molto, molto più veloce. Poi abbiamo il supporto Docker, ovviamente, motivo per cui ho affrontato tutto questo in primo luogo. Sfortunatamente, vedo che alcune immagini del contenitore di base si arresteranno in modo anomalo su Docker. Ho trovato Centos problematico, ma Ubuntu funziona senza problemi. Microsoft sta ancora lavorando su WSL2 e, a giudicare dai forum, il supporto per i container sta migliorando.

Questo sicuramente non è adatto alla maggior parte delle persone, ma per me è un miglioramento rispetto al mio vecchio setup. L’instabilità a volte è un po ‘fastidiosa. A partire da ora, gennaio 2020, ogni componente è ancora in fase di sviluppo: versione Fast ring Insider di Windows 10, versione beta di WSL2 e supporto sperimentale per Hyper-V in VirtualBox. Detto questo, sono stato in grado di fare cose con i contenitori Docker e WSL che non erano possibili solo pochi mesi fa, e questo mi piace molto.