更新 WSL 後無法順利打開 Docker Desktop 解決方法
Contents
最近為了跑 CUDA Docker 服務,把 WSL 更新到新版,結果 Docker Desktop 直接打不開。
其實我平常不太敢亂升級,怕的就是這種「看起來只是更新,實際上整個開發流程卡住」的狀況。這次查了很久,最後找到一個看似不相關、但真的有效的修復方式,順手記錄下來,避免下次再踩一次。
問題現象
- 更新 WSL 後,Docker Desktop 無法正常啟動
- 錯誤訊息提到無法掛載
C:\Program Files\WSL\system.vhd - 重新啟動電腦與 Docker Desktop 都無法解決
原始回報重點如下:
|
|
解決方法
我這邊實測可行的作法是:
- 到 WSL Releases 下載對應版本的 MSI(例如
wsl.2.7.8.0.x64.msi) - 使用
msiexec解出安裝檔內容 - 將
system.vhd複製到C:\Program Files\WSL\system.vhd - 重新啟動 Docker Desktop
msiexec 指令如下:
|
|
補充說明
- 如果你的錯誤同時提到
modules.vhd,也要一起補到C:\Program Files\WSL\tools\modules.vhd,我那個路徑是有這個檔案 - 複製到
Program Files需要系統管理員權限 - 建議使用「與目前安裝相同版本」的 MSI 檔案進行修復
小提示
更新 WSL 前可以先保留目前可用版本的安裝檔,真的出問題時修復速度會快很多。
小結
這次問題的根因看起來是更新後 VHD 檔案遺失,導致 Docker Desktop 無法順利啟動。雖然手動補檔案這個動作一開始看起來很奇怪,但實際上很有效。
後續我也會評估把 Docker 直接裝在 WSL 內部來使用,減少對 Docker Desktop 的依賴,看看整體穩定性會不會更好。