Virtualbox e Docker di norma non possono convivere sullo stesso sistema Windows 10: la prima è un’apprezzatissima soluzione per la virtualizzazione (Virtualbox, cos’è e come funziona. Le novità della sesta versione) mentre la seconda è una piattaforma che permette la containerizzazione delle applicazioni. Rispetto a Virtualbox, Docker non virtualizza l’intero hardware sottostante ma soltanto il sistema operativo: Docker, cos’è e come funziona la containerizzazione delle applicazioni.
Docker o meglio la versione per Windows scaricabile cliccando qui, poggia su Hyper-V e Virtualbox: quest’ultimo, a sua volta, non è compatibile con l’hypervisor di Microsoft.
Al momento dell’installazione di Docker, la piattaforma chiede l’autorizzazione per abilitare Hyper-V: cliccando su OK il sistema in uso, trascorsi pochi secondi, sarà automaticamente riavviato per consentire l’installazione e l’attivazione dell’hypervisor Microsoft.
Una volta rientrati in Windows, i container Docker potranno essere correttamente creati e gestiti ma non sarà possibile caricare sistemi operativi guest con Virtualbox perché la procedura di boot si interromperà prematuramente.
Come può essere configurato Windows 10 in maniera tale da consentire l’utilizzo di container e il caricamento di macchine virtuali Virtualbox?
Diciamo subito che con la versione stabile di Docker non sarà comunque possibile usare contemporaneamente container e virtual machine Virtualbox.
Se si volessero usare simultaneamente container e macchine virtuali Virtualbox è possibile installare Docker Toolbox: si tratta di una versione legacy progettata principalmente per i sistemi Windows 7 e Windows 8.1 ma che può essere comunque utilizzata anche in Windows 10.
Gli sviluppatori del progetto Docker raccomandano l’utilizzo della versione basata su Hyper-V ma il pacchetto Toolbox è comunque installabile sui sistemi Windows ove s’intenda adoperare simultaneamente anche Virtualbox. Essa necessita infatti della presenza di Virtualbox come requisito essenziale.
Coloro che volessero usare Docker con Hyper-V e Virtualbox mantenendoli contemporaneamente installati sulla stessa macchina Windows 10, possono semplicemente configurare il sistema operativo in maniera tale che l’hypervisor di Microsoft venga attivato o disattivato all’occorrenza.
Per procedere in tal senso si può:
1) Digitare cmd
nella casella di ricerca di Windows 10 e premere la combinazione di tasti CTRL+MAIUSC+INVIO
. Rispondendo Sì il prompt dei comandi verrà aperto con i diritti di amministratore.
2) Utilizzare l’utilità di sistema bcdedit
(presentata nell’articolo EasyBCD, gestire il menu di boot di Windows e avviare file ISO) per aggiungere una nuova voce al menu di avvio di Windows 10. Il comando da impartire è il seguente:
Così facendo verrà aggiunta una nuova opzione nel menu di avvio chiamata No Hyper-V.
3) Dopo aver utilizzato il comando, esso risponderà con La voce è stata copiata correttamente in. A destra di tale frase si leggerà una lunga stringa tra parentesi graffe che dovrà essere interamente selezionata e copiata in memoria (selezionarla e premere il tasto INVIO
).
4) Al prompt dei comandi digitare quindi bcdedit /set
seguito dalla lunga stringa alfanumerica compresa tra parentesi graffe (premere CTRL+V
per incollarla dagli Appunti di Windows) chiudendo infine con hypervisorlaunchtype off
.
Il comando completo apparirà così: bcdedit /set {STRINGA_ALFANUMERICA} hypervisorlaunchtype off
.
5) Prima di riavviare il sistema, suggeriamo di fare clic con il tasto destro sull’icona di Docker visualizzata nella traybar di Windows 10 quindi scegliere la voce Settings.
Nella sezione General (colonna di sinistra), togliere il segno di spunta dalla casella Start Docker Desktop when you log in.
In questo modo si eviterà che la piattaforma venga automaticamente caricata a ogni avvio del sistema operativo, anche quando Hyper-V non è disponibile.
6) A questo punto, riavviando Windows 10, comparirà un menu di scelta attraverso il quale sarà possibile decidere se avviare il sistema normalmente (quindi con Hyper-V caricato) oppure se impedire il caricamento di Hyper-V in modo da usare la virtualizzazione di Virtualbox (opzione No Hyper-V).
Se in modalità No Hyper-V Docker continuasse ad avviarsi mostrando l’errore An error occurred, suggeriamo di scaricare e avviare l’utilità Autoruns, portarsi nella scheda Logon e disattivare la casella in corrispondenza di Docker for Windows.
Qualora in futuro ci si volesse liberare della voce di avvio, basterà digitare bcdedit /deletevalue
seguito dal valore, ricompreso tra parentesi graffe, della voce No Hyper-V aggiunta in precedenza.