➣ Reading Time: 9 minutes

問題

在 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 需要具備一些條件:

  1. 安裝 WSL (Windows Subsystem for Linux),以模擬 Linux 環境 (原生 windows 需要安裝才能具備此項目)
  2. 去 BIOS 將 SVM 模式開啟 (虛擬化技術)
  3. 在 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 的一些問題,不過目前靠著裝舊版本暫時解決了。)

Reference

⭐Linux 指令 相關文章整理⭐:
⭐終端機 (terminal) 常用 總整理⭐:
1.(terminal指令 常用總整理)【Linux】linux/ubuntu/mac 基礎終端機 (terminal) 指令 & 基礎知識總整理,初學者/新手 必須知道的基礎指令 & 基礎知識大全(持續更新)
2.(terminal快速鍵 常用總整理)【Linux】linux/ubuntu/mac 基礎終端機 (terminal) 快速鍵/小技巧,初學者/新手 必須知道的一些實用功能!(持續更新)
3.(vim指令 常用總整理)【Linux】linux/ubuntu/mac vim 的 新手/初學者 的基礎使用指令 與 個人常用功能總整理 (持續更新)
4.【MobaXterm】在 Windows 中使用 MobaXterm VPN 連線至遠端系統 (linux, ubuntu) 遠端 ssh 顯示畫面
⭐Linux 基礎指令篇⭐:
1.【Linux】(作業系統基礎知識) 簡單理解「相對路徑」與「絕對路徑」,程式設計 初學者/新手 必須知道的路徑知識總整理
2.【Linux】linux ubuntu 中利用 mkdir 建立資料夾 相關參數總整理 (必定建立資料夾、修改資料夾權限 777)
3.【Linux】linux ubuntu 使用 terminal (終端機) 關機 shutdown、重新開機 reboot 的方法
⭐Linux 網路相關指令篇⭐:
1.【Linux】利用 ifconfig 查詢 ip 並用 scp 傳送資料 – linux, ubuntu 基礎終端機指令學習 sample code (內含範例程式碼)
2.【Linux】使用 sshfs 連線 將遠方磁碟當作像是在自己電腦的硬碟 mount disk on other computer
3.【Linux】使用 curl 將網路上的檔案 透過終端機 terminal 的方式下載 download
⭐Linux 進階指令篇 (檔案處理相關)⭐:
1.【Linux】linux, ubuntu 壓縮檔案常用指令 tar gzip zip 7z 壓縮檔案切割、壓縮檔案加密 與 解壓縮套件安裝方法 (內附圖文說明)
2.【Linux】Linux 查詢資料夾內的檔案數目 ls -1 | wc -l
3.【Linux】linux ubuntu 中利用 tail -f 可以查看 log 並不斷更新
4.【Linux】在終端機 terminal 使用 ln -s 建立如 windows, mac, ubuntu 檔案系統上的捷徑 – 軟連結 (Symbolic Link)
5.【Linux】linux, ubuntu 使用 split 指令檔案切割、檔案合併
6.【Linux】Linux 運用 sed 進行檔案內容的取代 instead 用法
7.【Linux】mac/ubuntu 如何利用 terminal 打開 GUI 資料夾總整理
⭐Linux 進階指令篇 (搜尋相關)⭐:
1.【Linux】linux, ubuntu 使用 ps, grep, pgrep 找到程式碼的 相關資訊 與 pid (ps aux, ps -ef)
2.【Linux】linux ubuntu 使用 grep, awk, xargs 尋找需要的資料,快速濾出/篩選 結果欄位 所需要的資訊 (內附圖文說明) filter column
⭐Linux 特殊應用篇⭐:
1.【Linux】Linux 增加 swap 的虛擬記憶體空間
2.【Linux】在 Ubuntu (Linux 系統) 上透過 / etc/fstab 安裝新的硬碟、新增硬碟容量 (SSD, HDD) (內附圖文說明)
3.【Linux】linux / ubuntu 複製硬碟的方法 copy all disk
4.【Linux】(內附圖文說明) ubuntu 停止自動更新的方法 disable auto update
5.【Linux】linux/ubuntu 下執行 anaconda-navigator 的方法
⭐Bash 自動化程式撰寫⭐:
1.【Bash】echo,bash 的 hello world 基本教學,開始自動化程式的第一堂課 / 撰寫腳本,利用 echo 顯示變數
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡!
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps