[TOOLS] 13 分鐘閱讀OraCore 編輯部

Windows Docker Desktop 用 WSL 2 裝乾淨

整理 Windows 上安裝 Docker Desktop 的正確順序:先開虛擬化、再裝 WSL 2、選對 x64/ARM64,最後用驗證指令確認真的能跑容器。

分享 LinkedIn
Windows Docker Desktop 用 WSL 2 裝乾淨

這篇直接給你 Windows 安裝 Docker Desktop 的順序、驗證指令和可複製模板。

我帶人裝 Windows 上的 Docker Desktop 很久了,老實說,每次都差不多同一齣戲。安裝檔下載很順,畫面也很乖,結果一按下去,Windows 就開始跟你玩猜謎。不是 BIOS 裡虛擬化沒開,就是 WSL 2 半套,或是看起來裝好了,Docker whale 圖示卻卡在啟動中,像在跟你討債。

我後來才想通,這件事不能當成「按一次就好」的安裝,而是一條鏈。硬體虛擬化、WSL 2、CPU 架構、登入後的 session、最後再驗證容器真的跑得起來,缺一個都會歪。這篇我就是把這條鏈拆開,順手把我自己踩過的坑也一起攤開。

這份拆解主要是從 usedocker.com/install/windows 這篇 Windows 安裝指南來的,我也對照了 Docker 官方 Windows 安裝文件,再拿 Microsoft 的 WSL 安裝頁 交叉確認。Windows 這種東西,我不太想只信一個來源。

先把虛擬化當成硬體問題,不是 Docker 問題

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

Confirm each one now and you’ll skip the most common first-launch errors.

翻譯一下就是:Docker Desktop 不是幫你打開虛擬化的地方,它只是最後一個抱怨的人。Intel VT-x、AMD-V 或 SVM 如果在韌體裡是關的,Docker 再怎麼重裝都沒用。這不是安裝流程的細節,這是地基。

Windows Docker Desktop 用 WSL 2 裝乾淨

我以前遇過一台筆電,Windows 表面上看起來正常得要命,裝什麼都不報錯,結果 Task Manager 一看,虛擬化就是 disabled。那時候我還傻傻重裝 Docker,重到最後只是在浪費時間。真正要改的是 UEFI 裡那個跟 Docker 完全沒關係的選項。

現在我都先叫人打開 Task Manager,到 Performance,點 CPU,看右下角是不是 Virtualization: Enabled。如果不是,先進 BIOS/UEFI 開起來,再回 Windows 確認一次。

實操寫法很簡單:

  • 先查 Task Manager,不要先跑安裝檔。
  • 如果顯示 disabled,就去 BIOS/UEFI 開 Intel VT-x、AMD-V 或 SVM。
  • 回到 Windows 再確認一次狀態有變。

如果你想看官方說法,MicrosoftInstall WSL 會講到 WSL 2 需要的底層條件;Docker 這邊則寫在 Windows install docs。我會兩邊都看,因為 Windows 的安裝頁常常過一陣子就跟現實脫節。

WSL 2 才是正路,先把它裝好

Docker Desktop’s default backend is WSL 2.

也就是說,你現在在 Windows 上跑 Docker,主流路線不是老 Hyper-V 那套,而是 WSL 2。Docker Desktop 其實是在用一個輕量 Linux 環境去跑 Linux containers。WSL 2 沒準備好,Docker Desktop 就會開始裝乖、裝死,反正就是不讓你舒服。

我現在最喜歡的做法是直接在系統管理員 PowerShell 跑 wsl --install。如果機器上本來就有 WSL,那就先跑 wsl --update。這一步很多安裝文都講得很含糊,結果大家把鍋都甩給 Docker,其實只是 WSL kernel 太舊。

我遇過最煩的一種狀況,是舊機器上還留著 WSL 1 的 distro。Docker 安裝看似成功,但 backend 就是卡卡的。先把 WSL 更新掉,很多怪問題會直接消失。對,還是要重開機。Windows 很愛把「需要重開」包裝成可選項,直到它真的需要。

實操寫法:

  • 用系統管理員身分開 PowerShell。
  • 新機器直接跑 wsl --install
  • 如果已經有 WSL,就跑 wsl --update
  • 完成後先重開機,再開 Docker Desktop。

Microsoft 的 WSL 安裝頁 是最該看的,基本指令也可以參考 WSL basic commands。我故意把連結放這麼明白,因為隨便搜到五年前論壇文通常只會把你帶去錯的 feature。

x64 和 ARM64 不一樣,別拿錯安裝檔硬上

Pick the installer that matches your CPU architecture.

白話就是:Windows 筆電現在不是一種規格吃到底。Intel、AMD 的機器通常要 x64;如果你是 Snapdragon X 或其他 ARM Windows 機器,就要 ARM64。裝錯版本,後面你會花一堆時間在一個根本不是 Docker 的問題上。

Windows Docker Desktop 用 WSL 2 裝乾淨

這點我很認同原始指南,因為很多人還停留在「Windows 安裝檔就是一個檔案」的舊腦袋。不是。ARM64 現在越來越常見,尤其 Windows on ARM 已經不是什麼邊角料。安裝檔除了架構要對,簽章也要看一下,來源不對我會直接重抓,不會硬撐。

我之前幫人處理一台 Surface,就是他習慣性抓了 x64 版。安裝程式沒有大聲爆炸,結果後面一堆混亂,讓人以為是 Docker 壞掉。那次之後我都先確認架構,再下載一次就好,不要下載三次還都錯。

實操寫法:

  • Intel / AMD 用 x64。
  • Snapdragon X 或其他 ARM Windows PC 用 ARM64。
  • 跑安裝檔前先看簽章。
  • 只從官方頁或你信得過的指南下載。

官方下載頁在這裡:Docker Desktop。ARM64 的 Windows 安裝說明可以看 Docker 官方文件,如果你想補 ARM 的背景,Windows on Arm 是比較正常的起點。

安裝成功不代表能用,session 更新才是坑

The installer copies ~600 MB of files, adds your user to docker-users, and registers a Windows service.

翻譯一下就是:Docker Desktop 改的不只是 app 本身,它會動到 service、群組成員、以及跟 engine 溝通的權限。這也是為什麼安裝完之後,原始指南會叫你登出。因為新的群組權限,不會自動套到你已經開著的 session。

這個 Windows 老毛病真的很煩。你以為 wizard 跑完就結束了,結果只是「檔案裝好了」,不是「你現在有權限了」。很多人說 Docker 裝好了不能用,實際上只是沒重新登入。

我看過太多人重裝三次,最後才發現問題是沒 log out。這種事最氣的地方在於,它不是技術難題,是流程難題。你只要漏掉一步,後面就會像鬼打牆。

實操寫法:

  • 用管理員帳號跑安裝程式。
  • 維持 Use WSL 2 instead of Hyper-V 勾選。
  • 安裝完先登出,再登入。
  • 不要跳過 session refresh。

Docker 對 Windows backend 的設定寫在 官方安裝文件。原始指南提到 docker-users 群組和 com.docker.service 服務,這些細節我也建議你記起來,因為它們就是權限問題的來源。

第一次啟動時,授權和登入會一起冒出來

You’re prompted to accept the Docker Subscription Service Agreement.

也就是說,Docker Desktop 不是那種裝完就當沒事的純本機 app。它有訂閱和授權邏輯,第一次啟動就會把這件事擺在你面前。個人使用、教育、開源貢獻、小型團隊,跟大型公司,處理方式本來就不一樣。

我也認同原始指南的說法:你可以用 Docker Hub 帳號登入,但不代表你一定要登入。登入有時候能帶來像 Docker Scout 這類功能,也可能影響 pull 限制,但它不是安裝成功的必要條件。很多團隊把「登入」跟「授權合規」混在一起,這兩件事根本不是同一個層次。

還有,whale 圖示不是裝飾品,它是狀態燈。一直卡在啟動中,通常代表 backend 根本沒起來。這時候我不會繼續亂點 UI,我會直接去查 backend、服務、權限,而不是祈禱它自己好。

實操寫法:

  • 先看清楚 subscription agreement 再按接受。
  • 需要 Docker Hub 或 Docker Scout 再登入。
  • 看系統匣的 whale 圖示判斷 engine 狀態。
  • 不要以為登入帳號就能修 backend。

授權與方案資訊看 Docker pricing,Docker Hub 則在 Docker Hub。我會把這兩個連結放進來,因為很多安裝教學都把 licensing 講得像附註,實際上它就是流程的一部分。

驗證指令才是唯一值得相信的部分

Run docker --version and docker run --rm hello-world.

白話就是:app 裝好,不等於 container engine 真能用。我比起安裝畫面,更相信驗證指令,因為它直接證明整條路是通的:shell 能連到 Docker、Docker 能起 container、container 還能把訊息吐回來。

我遠端幫人排錯時,最常先看這兩個指令。docker --version 有回應,不代表全都好;如果 docker run --rm hello-world 失敗,就表示 CLI 在,但 daemon path 還是壞的。兩個都成功,才叫可以開始幹活。

這一步請你一定要開新的 PowerShell 視窗,尤其是你剛剛才登出登入過。然後照原樣輸入指令,不要自己加戲。只要 hello-world 跑出標準成功訊息,基本上就能確定 Docker Desktop 已經可用。

實操寫法:

  • 重新登入後開一個新的 PowerShell。
  • docker --version
  • docker run --rm hello-world
  • 兩個都成功再往下做事。

官方的 hello-world image 在這裡:hello-world on Docker Hub。如果你想對照 Docker 的入門文件,Docker Get Started 也可以一起看。驗證指令不帥,但它最誠實。

資源限制先別亂調,真的需要再動手

Cap the resources Docker Desktop is allowed to use.

翻譯一下就是:Docker Desktop 可以很客氣,但你還是得知道哪個旋鈕在管什麼。WSL 2 backend 會動態吃 Windows 的記憶體,這很方便,可是你如果想要硬上限,就得去改 %USERPROFILE%\.wslconfig。這不是必做,是有需要才做。

我喜歡這段,因為它提醒大家不要太早過度調校。不要因為有 Kubernetes checkbox 就順手勾;不要在你根本不知道瓶頸在哪之前,就先把資源限制調得亂七八糟。可是如果你是筆電、共享機器,或 Docker 跟 IDE、瀏覽器、資料庫搶資源,那這些設定就很實用。

我自己有在一些機器上用 .wslconfig 壓 memory 和 CPU,效果很直接,至少不會讓 Docker 把整台機器吃到發抖。反過來說,某些人一上來就啟動 Kubernetes,結果只是自找麻煩。這種情況我通常只會說:先少做一點。

實操寫法:

  • 真的有需要再用 .wslconfig 限制 memory / CPU。
  • 改完跑 wsl --shutdown
  • 只有真的要本機 cluster 才開 Kubernetes。
  • 只有常用的機器才考慮自動啟動。

Docker 的 Windows 設定頁在 Docker Desktop settings on Windows,WSL config 語法則看 WSL configuration。這兩頁是我需要精準選項名稱時會回去查的地方。

可抄的模板

# Windows Docker Desktop 安裝檢查表

## 安裝前
- [ ] Windows 10 21H2 以上或 Windows 11
- [ ] BIOS/UEFI 已開啟硬體虛擬化
- [ ] 有管理員帳號
- [ ] 已下載正確架構的安裝檔
  - x64:Intel / AMD
  - ARM64:Snapdragon X / 其他 ARM Windows PC

## WSL 2 設定
用系統管理員身分開 PowerShell:

powershell
wsl --install
# 如果系統已經有 WSL:
wsl --update


完成後重開機。

## 安裝 Docker Desktop
1. 執行 `Docker Desktop Installer.exe`
2. 保持勾選 **Use WSL 2 instead of Hyper-V**
3. 完成安裝
4. 登出再登入

## 第一次啟動
1. 從開始功能表開啟 Docker Desktop
2. 接受 Subscription Service Agreement
3. 只有需要 Docker Hub / Docker Scout 時才登入
4. 等待 whale 圖示顯示正在執行

## 驗證安裝
開新的 PowerShell 視窗,執行:

powershell
docker --version
docker run --rm hello-world


兩個指令都成功,才算真的裝好。

## 可選調整
如果需要限制資源,編輯 `%USERPROFILE%\.wslconfig`:

ini
[wsl2]
memory=8GB
processors=4


套用變更:

powershell
wsl --shutdown


## 常見修法
- 虛擬化沒開:去 BIOS/UEFI 開 Intel VT-x / AMD-V / SVM
- WSL 2 不完整:先跑 `wsl --update` 再重開機
- Docker 一直啟動中:重開 Windows,確認系統匣狀態
- 權限怪怪的:確認安裝後有登出再登入

這份模板我會直接貼進團隊 wiki,幾乎不用改。它把順序固定住,也把驗證步驟放在最後,避免大家裝完就宣布成功。

原始來源是 https://usedocker.com/install/windows,我這篇是依它整理,再加上 Docker 與 Microsoft 的官方文件交叉確認後的衍生版。不是逐字抄,重點是我把真正會卡人的地方整理成可以直接照做的版本。