Window 上安裝 Docker 的問題排解

Chite
6 min readSep 9, 2021

--

前言

因為 Docker 是依賴在 Linux OS,Window 上安裝 Docker,需要開啟許多功能,才能順利執行 Docker,這裡將一一敘述安裝的流程。

安裝 Docker

要跑 Docker,首先電腦上要有 Docker。在 官網 安裝 Docker Desktop,接下來的安裝流程都還滿簡單的,所以直接省略。

安裝後打開 Docker Desktop,會跑出類似下方警告訊息:

error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.35/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

會出現這原因的問題有很多,對於筆者而言,首先是 Hyper-V 沒啟動。要怎麼查看 window 是否啟動 Hyper-V 呢?依序點選「 控制台程式和功能開啟或關閉 Windows 功能」,正常而言,到這裡就能看到 Hyper-V 選項。

Window 功能中,檢視「Hyper-V」

咦?我的 Windows 功能沒有 Hyper-V 欸?

那就是不正常的情況,所謂的不正常,其實就只是 Windows 版本是家用版。 Windows 預設只要是專業版以上,都會有這項功能。要怎麼查看自己是不是家用版呢?點選「設定系統 關於」,裡頭會有一區是叫 Windows 規格,底下就有 版本 可以查看自己是否為家用版。

那家用版就跟 Hyper-V 無緣了嗎?好在天無絕人之路,家用版其實也可以 DIY 安裝 Hyper-V。(參考自挨踢路人甲

  1. 首先在桌面按右鍵「新增」 → 「文字文件」。
  2. 重新命名,就取名叫「hyperV.cmd」吧!
  3. 將以下內容複製進 hyperV.cmd 檔案中。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

4. 在hyperV.cmd 按右鍵,點選「以系統管理員身分執行」。點選後系統會開始處理,請耐心等待。

5. 跑完後,最後一行會問你是否要重新開機,輸入「Y」來重新開機。

重開機後,再次依序點選「 控制台程式和功能開啟或關閉 Windows 功能」,應能看見 Hyper-V 了,記得要將它們勾選起來喔。

咦?我的電腦還是不能跑 Docker 欸?

在「工作列」按右鍵,點選「工作管理員」,再點選「效能」,查看 模擬 是否已啟用。

工作管理員,檢視「模擬」欄位

如果不是像筆者上面那張圖一樣顯示已啟用,需要進到 BIOS 做設定。

如何進到 BIOS 呢?點選 「設定更新與安全性復原立即重新啟動」,接著會進入到藍色畫面,選擇「 疑難排解進階選項UEFI 韌體設定重新啟動」,這樣就會進到 BIOS。

BIOS 中開啟模擬的設定,會因電腦品牌不同而有差異,具體可以參考這裡,筆者的電腦是 Lenovo,是到「Configuration Intel Virtual Technology」設為 Enabled ,保存後退出。

之後再到工作管理員上查看,「模擬」的欄位應為已啟用。

lenovo 的 Bios

再次嘗試開啟 Docker Desktop,結果出現以下警告:

WSL 2 installation is incompleteThe WSL 2 Linux kernel is now installed using a separate MSI update package. Please click the link and follow the instructions to install the kernel update:https://aka.ms/wsl2kernelPress restart after installing the Linux kernel

這是當你已安裝 WSL(Windows Subsystem for Linux),但不是 Docker Desktop 所需要的 WSL2,需要將它升級。

點擊警告中的連結,下載 WSL2 的更新套件,接著依照連結中官網的操作流程去執行,就能順利更新到 WSL2 囉。

到這裡,Docker Sesktop 應該能順利執行了。

參考文章:

  1. https://github.com/docker/for-win/issues/1825
  2. https://walker-a.com/archives/6818
  3. https://support.bluestacks.com/hc/zh-tw/articles/115003910391-%E5%A6%82%E4%BD%95%E5%9C%A8%E9%9B%BB%E8%85%A6%E4%B8%8A%E5%95%9F%E7%94%A8%E8%99%9B%E6%93%AC%E5%8C%96-VT-
  4. https://support.lenovo.com/tw/zh/solutions/ht500222
  5. https://docs.microsoft.com/zh-tw/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package

Press restart after installing the Linux kernel

--

--

Chite
Chite

Written by Chite

任何套件框架只能陪伴一段路,終將逝去,留在心中的只有思想,而這正是推動進步的泉源。