問題
在 windows 環境使用 docker 時出現以下訊息的解決方式
WSL 2 is not installed
Install WSL using this PowerShell script (in an administrative PowerShell) and restart your computer before using Docker Desktop:
Enable-WindowsOptionalFeature -Online -FeatureName $("VirtualMachinePlatform", "Microsoft-Windows-Subsystem-Linux")
- 如圖:
原因
windows 上要使用 docker 需要具備一些條件:
- - 安裝 WSL (Windows Subsystem for Linux),以模擬 Linux 環境 (原生 windows 需要安裝才能具備此項目)
- 去 BIOS 將 SVM 模式開啟 (虛擬化技術)
- 在 Windows 10 上啟用 Hyper-V,以建立虛擬機器
注意:Hyper-V 角色無法安裝於 Windows 10 家用版。(by windows 官方)
另外,個人由於有使用夜神模擬器,之前有去開關 VT 相關的功能,
如果有沒有使用的讀者,請記得去 BIOS 開啟對應的 SVM 開關
可參考文章:https://support.bignox.com/zh-TW/regular/amd-vt
個人解決方法
step 1: 依照圖上說明,按下「Use Hyper-V」 以啟動 Hyper-V
- 錯誤訊息:WSL 2 is not installed
WSL 2 is not installed
Install WSL using this PowerShell script (in an administrative PowerShell) and restart your computer before using Docker Desktop:
Enable-WindowsOptionalFeature -Online -FeatureName $("VirtualMachinePlatform", "Microsoft-Windows-Subsystem-Linux")
由於個人有使用夜神模擬器的緣故,會去關閉 Hyper-V 的相關功能,
因此我們必須先按下「Use Hyper-V」 以恢復原先 Hyper-V 的功能。
- 如圖:
step 2: 切換至 WSL 2 based engine 以開啟 Hyper-V
- 錯誤訊息:An error occurred
Required Windows feature(s) not enabled: Hyper-V.
Switch to WSL 2 based engine?
To enable Hyper-V: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
個人使用的夜神模擬器,似乎有改動到 VM 相關的設定,
因此 step 1 的步驟通常不會那麼順利,
我們還需要去切換至 WSL 2 based engine 以開啟 Hyper-V,
(再把 kernel 改回 WSL 的設定),才能順利啟用 Docker 功能。
- 如圖:
step 3: 看到以下訊息,重新開機看能不能解決
- 錯誤訊息:An error occurred
Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization
通常依照上述步驟處理後,就會看到這個最後一個只能按 ok 的視窗,
他是在說明目前的虛擬化技術必須去 BIOS 啟動
(也就是我們上述提到的 SVM 技術必須要去 enabled)
如果已經有開啟 SVM 的,試試看在此時重新開機,也許就能夠解決問題。
如果還沒有開啟的,就去開啟 SVM。
如圖:
step 4: 如果還是不行,試著重裝 Docker 看看
偶爾我還是會碰到上述步驟無效的問題,
此時我會去控制台把 Docker Desktop 移除,
並重新安裝,通常就能夠解決問題了
(如果不能解決就再去確認上述的一些設定。)
- 如圖:
重新安裝後可以順利啟動了。
(個人安裝的是 Docker Desktop 3.3.3 的版本,
個人有碰過安裝 Docker Desktop 4.0.0 的一些問題,不過目前靠著裝舊版本暫時解決了。)




