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

Ted Liou 2025.08.31 模擬器
本文將說明如何在 Windows 11 上使用 Docker Desktop 與 WSL 2,配合 dockurr/windows 來快速建立一個 Windows 11 虛擬機,並透過 RDP 來遠端桌面連線。

dockurr/windows 開源專案提供了可快速在 Docker 上建立 Windows 容器的映像檔,我們能在 Windows 電腦中配合 Docker Desktop + WSL 2 來建立獨立的子系統,包括 Windows 11、10 或 Server,可用於 CI/CD、伺服器架設等用途。

建立的 Windows 系統可使用網頁版的 VNC 來做簡易控制,也能用 RDP 做遠端桌面連線。

環境設定:啟用 KVM 支援

首先,請確認您的電腦已安裝 Windows 11、啟用 WSL 2,並已安裝 Docker Desktop。由於 Docker Desktop 預設的 Linux 發行版不支援 KVM,我們需要手動安裝一個支援的發行版,例如 Ubuntu。

  1. 安裝 Ubuntu on WSL:前往 Microsoft Store 搜尋並安裝 “Ubuntu”。

  2. 啟用 Docker 整合:開啟 Docker Desktop,進入 Settings > Resources > WSL integration。勾選 Enable integration with my default WSL distro,並在下方的發行版列表中,啟用 Ubuntu 的整合開關,最後點擊 Apply & Restart

完成後,Docker 將能利用 Ubuntu 環境中的 KVM 模組來執行虛擬機。

撰寫 Docker Compose 設定檔

接著,我們透過 docker-compose.yml 來定義虛擬機的規格。

  1. 建立專案資料夾:選擇一個磁碟空間充裕的位置,建立一個新資料夾,例如 D:\docker-vm\windows-11

  2. 建立設定檔:使用 VS Code 或其他編輯器,在該資料夾內建立一個 docker-compose.yml 檔案,並貼上以下內容:

 1services:
 2  windows:
 3    image: dockurr/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

您可以根據需求微調 environment 中的參數:

  • VERSION:指定要安裝的 Windows 版本,前後需用引號。
  • DISK_SIZE:虛擬硬碟的大小,預設為 64G。
ValueVersionSize
11Windows 11 Pro5.4 GB
11lWindows 11 LTSC4.7 GB
11eWindows 11 Enterprise4.0 GB
10Windows 10 Pro5.7 GB
10lWindows 10 LTSC4.6 GB
7uWindows 7 Ultimate3.1 GB
xpWindows XP Professional0.6 GB
2025Windows Server 20255.6 GB
2022Windows Server 20224.7 GB

啟動並安裝 Windows 虛擬機

設定檔完成後,即可啟動容器來開始安裝。

  1. 啟動服務:在 VS Code 中若有安裝 Docker 擴充套件,可以直接在 docker-compose.yml 檔案上點擊右鍵,選擇 Compose Up。或者,在該資料夾下開啟終端機,執行 docker-compose up -d

  2. 錯誤排除:如果啟動時出現 no such file or directory 且與 /dev/kvm 相關的錯誤,請將 docker-compose.yml 最後一行的 # privileged: true# 移除,使其變為 privileged: true,然後重新啟動服務。

  3. 自動安裝:開啟瀏覽器並訪問 http://127.0.0.1:8006/。網頁會顯示一個遠端畫面,系統會自動下載對應的 Windows ISO 映像檔並開始安裝。

提示:安裝過程完全自動,但依據您的硬碟讀寫速度,網頁畫面可能會長時間沒有動靜,請耐心等待安裝完成。虛擬機的所有系統資料,都會存放在與 docker-compose.yml 同層的 windows/data.img 檔案中。

使用 RDP 遠端桌面連線

當 Windows 安裝完畢並運行後,即可透過遠端桌面連線進行操作。

  1. 連線資訊

    • 電腦:用 Zerotier 取得的虛擬區網 IP,我測試本機連不到,可能需要特別設定網路。
    • 帳號Docker
    • 密碼admin
  2. 跨裝置連線:您可以搭配 ZeroTier 等虛擬區域網路工具,將主機的 ZeroTier IP 作為連線位址,即可從任何地方遠端存取這台 Windows 虛擬機。

總結

相較於傳統的 VMware 或 VirtualBox,使用 Docker 與 WSL 2 來建立 Windows 虛擬機提供了一種更為輕量、快速且可攜的方案。整個虛擬環境被打包在一個資料夾中,方便管理與遷移。對於需要頻繁建立乾淨測試環境的開發者來說,這是一個非常高效的選擇。

相關文章

Ted Liou

我是一位遊戲開發工程師 / 軟體工程師,專精於 Unity 和 C#。我善於自學新技術,並樂於將所學轉化為淺顯易懂的教材,幫助他人學習與成長。