透過 Docker Desktop (WSL 2) 快速建立 Windows 11 虛擬機

Ted Liou 2025.08.31 模擬器 最後更新 2026.03.17

快速摘要

本文整理如何在 Windows 11 上用 Docker Desktop 搭配 WSL 2 跑 dockur/windows,快速建立一台 Windows 11 虛擬機。重點不只是 Compose 設定,而是先確認 WSL 2 裡的 KVM 能不能正常工作。

可以,而且現在這條路比以前成熟很多。不過先別被標題誤導,這不是把 Windows 當成一般 Docker container 直接跑起來;dockur/windows 實際上是把 QEMU/KVM 包進容器,讓我們在 Docker Desktop 搭配 WSL 2 的環境裡快速開一台 Windows 虛擬機。

這條路最先要確認的,不是 docker compose 指令會不會打,而是 WSL 2 裡的 KVM 能不能正常用。dockur/windows 的官方 README 目前也把相容性講得很直接:Docker Desktop 這條路支援 Windows 11,不支援 Windows 10。請參考:dockur/windows

先把環境條件對齊

本文的前提是:

  1. 主機是 Windows 11
  2. 已安裝 WSL 2
  3. 已安裝 Docker Desktop,且使用 WSL 2 backend
  4. 至少有一套 WSL 2 Linux 發行版,例如 Ubuntu

WSL 目前已經能直接用 wsl --install 安裝,Microsoft 官方也說明了新安裝的 Linux 發行版預設就是 WSL 2。請參考:安裝 WSL

1wsl --install

Docker Desktop 的部分,請確認下列設定已經開啟:

  1. Settings > General > Use WSL 2 based engine
  2. Settings > Resources > WSL Integration 內對 Ubuntu 的整合

下圖就是 Docker Desktop 的 WSL Integration 設定位置。

Docker Desktop 的 WSL Integration 設定畫面

Docker 官方文件目前也提醒,WSL 版本最好至少在 2.1.5 以上。請參考:Docker Desktop WSL 2 backend on Windows

先在 WSL 2 裡檢查 KVM

這一步很重要,因為 dockur/windows 依賴 /dev/kvm。官方 README 現在建議直接用 cpu-checker 裡的 kvm-ok 來驗證。

進入 Ubuntu,執行:

1sudo apt update
2sudo apt install -y cpu-checker
3kvm-ok

如果結果顯示 KVM 可用,我們再往下做。如果這裡就失敗,先回頭檢查幾件事:

  1. BIOS 裡的 Intel VT-x 或 AMD SVM 是否啟用
  2. 這台主機是否其實還跑在另一層虛擬機裡,導致 nested virtualization 沒開
  3. Docker Desktop 是否真的接到 WSL 2 那套 Ubuntu,而不是跑在別的模式

dockur/windows 官方 README 另外也提到,如果 kvm-ok 明明通過,但容器還是抱怨 /dev/kvm 權限問題,可以先把 privileged: true 加回 Compose 來排除權限因素。這招不一定每台都需要,但遇到問題時很值得先試。

建立 Compose 設定

接著在 Ubuntu 裡準備一個工作資料夾,例如:

1mkdir -p ~/docker/windows-11
2cd ~/docker/windows-11

建立 compose.yaml

 1services:
 2  windows:
 3    image: dockur/windows
 4    container_name: windows
 5    environment:
 6      VERSION: "11"
 7      DISK_SIZE: "256G"
 8    devices:
 9      - /dev/kvm
10      - /dev/net/tun
11    cap_add:
12      - NET_ADMIN
13    ports:
14      - 8006:8006
15      - 3389:3389/tcp
16      - 3389:3389/udp
17    volumes:
18      - ./windows:/storage
19    restart: always
20    stop_grace_period: 2m
21    # privileged: true

這份設定基本上就是跟著目前官方 README 走,只多補了一個 DISK_SIZE,讓磁碟空間從預設值往上拉。如果你想改登入帳號密碼,也可以再補:

1environment:
2  VERSION: "11"
3  DISK_SIZE: "256G"
4  USERNAME: "myuser"
5  PASSWORD: "mypassword"

若沒有額外設定,dockur/windows 預設建立的帳號是 Docker,密碼是 admin

啟動安裝程序

compose.yaml 所在目錄執行:

1docker compose up -d

第一次啟動後,用瀏覽器打開:

1http://127.0.0.1:8006

這個網頁檢視器的用途,主要是讓我們確認安裝流程有真的開始。dockur/windows 官方也明講,這個 viewer 比較像安裝期間用的觀察窗,畫質、剪貼簿和音訊都不是重點。

安裝畫面出來後,大致會像下面這樣。

透過網頁版檢視器安裝 Windows 11 的畫面

這個階段要有一點耐心。ISO 下載、磁碟初始化和自動安裝都需要時間,磁碟效能慢的機器看起來會像卡住,但其實只是還在跑。

改用 RDP 才是正常操作方式

當 Windows 11 安裝完成並進桌面後,就不要再把網頁檢視器當主力操作介面了。dockur/windows 官方 README 直接建議改用 RDP,使用體驗會好很多。

如果沿用預設帳號,RDP 連線資訊是:

  1. 位址:主機 IP,若在本機就用 127.0.0.1 或本機名稱
  2. 帳號:Docker
  3. 密碼:admin

在 Windows 主機上可以直接開 mstsc 連線。連進去之後,操作感會比網頁檢視器正常很多。

使用 RDP 連入容器內 Windows 11 的畫面

如果你希望區網內其他裝置也能直連,先確定主機防火牆與 3389 port 已開放,再考慮是不是要搭配 ZeroTier 或其他內網穿透工具。這裡先把原則講清楚就好,沒必要把網路拓樸一次講滿。

常見卡點

這條路常見的問題,其實不外乎三類。

第一類是 /dev/kvm 不存在或不能用。這通常是 BIOS 沒開虛擬化,或 Docker Desktop 沒真的跑在你那套 WSL 2 發行版上。

第二類是容器起得來,但安裝速度異常慢。這多半和磁碟位置、主機資源或背景還有其他大型 VM 在搶資源有關。

第三類是能看到 viewer,卻連不上 RDP。這時先確認 Windows 內部安裝是否已經完成,再檢查 3389 port 是否有被占用、被防火牆擋住,或只是自己改過 USERNAMEPASSWORD 後忘了。

總結

用 Docker Desktop 搭配 WSL 2 跑 dockur/windows,最大的優勢不是效能神奇地超越傳統虛擬機,而是建立速度快、設定檔集中,而且整台測試機可以跟著專案資料夾一起管理。對需要快速開一台乾淨 Windows 11 測試機的人來說,這個流程很有吸引力。

不過這套方法能不能順利成功,決定因素其實一直都是 KVM。只要 WSL 2 的 /dev/kvm 正常、Docker Desktop 整合沒有接錯,後面的 Compose 與 RDP 反而都只是收尾。

常見問題

可以,但它本質上不是一般意義上的 Windows 容器,而是 dockur/windows 透過 QEMU/KVM 在容器裡建立虛擬機。能不能順利啟動,關鍵在於 Windows 11、WSL 2、Docker Desktop 與 /dev/kvm 是否都正常。

先在 WSL 2 裡用 kvm-ok 檢查 KVM,確認 BIOS 的 VT-x 或 AMD SVM 已啟用。若 kvm-ok 顯示可用,但容器仍抱怨權限問題,可再嘗試於 Compose 設定加上 privileged: true

安裝期間先用瀏覽器連到 http://127.0.0.1:8006 看網頁版檢視器;進桌面後再改用 RDP。dockur/windows 預設帳號是 Docker,密碼是 admin,也可以在 Compose 裡自行改掉。

作者

Ted Liou

現職 Unity C# 工程師,主要分享 Unity、C# 與 Vibe Coding 相關技術教學。

上一篇 將 Unity 腳本編譯成獨立 .dll:打造可重用、跨專案的函式庫 下一篇 在 Windows 上直接部署 GitLab Runner