在行業內,VisualBox、VMware、Hyper-V沖突也不是什么秘密了
我在公司的電腦上先安裝了Docker,並在安裝Docker之前在BIOS中開啟了虛擬化支持,所以在啟動Docker時沒有任何問題。
查看Windows功能,其中Hyper-V已經完全安裝了
接下來,因為需要開發React Native應用,安裝了Nodejs后,且為了調試方便安裝了Android Studio,(React Native開發環境配置可以參考https://reactnative.cn/docs/0.50/getting-started.html#content) 但在運行項目時,會出現以下錯誤
以下的錯誤意思是,Android Studio與Hyper-V產生了沖突,需要運行命令將Hyper-V功能關閉
好,既然Android Studio給出了提示,那么我就需要運行以上提示給出的命令
使用管理員權限打開一個命令行窗口,運行給出的命令
#是不是一定要在C:\Windows\system32>目錄運行命令不是太清楚,但我運行成功了
bcdedit /set hypervisorlaunchtype off
接着Android Studio又給出了另一個錯誤提示,還是需要先將Hyper-V先關掉才可以。
因為現時Docker暫時不需要用到,所以先暫時關閉
將Android Studio的錯誤提示,點擊OK關閉錯誤提示。
將Android Studio的項目關閉再重新打開,依然看到Hyper-V的錯誤信息,依然不可運行,原因是我運行了命令后,並沒有重啟
當我重啟電腦后,再嘗試運行,確實已經沒有了提示,項目已經正常運行
這時就有一個問題了,我已經成功運行了React Native,或者說Android Studio,那么是不是可以同時運行Docker?
很抱歉,我的機器暫時不行!似乎有一些人有了解決方案,https://stackoverflow.com/questions/43134006/how-can-i-run-both-docker-and-android-studio-emulator-on-windows
或者我們可以微軟的Android模擬器,https://www.visualstudio.com/zh-hans/vs/msft-android-emulator/來解決這個問題。
簡單來說,就是Docker需要使用到Hyper-V,而Android Studio是使用HAXM(硬件加速執行管理器),而HAXM與Hyper-V使用相同的虛擬化擴展,這就意味着,它們之間是沖突的,且不能同時運行兩個技術,
且電腦中只能運行其中一個技術。
2018-08-01 更新
參考了一些網上的說法,似乎Docker與Android Studio是沒辦法在同一個電腦上安裝的,但是找到一個折中的方法,就是安裝Docker Toolbox
Docker Toolbox即是在外面安裝了一個虛擬機給Docker使用,而且Docker Toolbox不需要使用到Hyper-V
Docker Toolbox地址:https://docs.docker.com/toolbox/toolbox_install_windows/
安裝完成后,會在網站生成三個圖標
打開Docker Quickstart Terminal圖標,需要下載一個boot2docker的鏡像,另外需要分配IP地址等,完成后,即會出現一個鯨魚的圖標
如果下載失敗,地址為https://github.com/boot2docker/boot2docker/releases,可以手動下載后放入至文件夾 C:\Users\chenwes(用戶名)\.docker\machine\cache
最后放一個,同時運行Docker與Android Studio的圖片
2019-02-25更新
查看到原有問答,已經解決了該問題
只需要將Windows功能中的Windows Hypervisor Platform勾選即可,但效果如何,我測試還是行不通的
2019-05-06更新
查看到另一個Google的解答
https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html
也有微軟給出的方案
https://devblogs.microsoft.com/visualstudio/hyper-v-android-emulator-support/