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。
安裝 Ubuntu on WSL:前往 Microsoft Store 搜尋並安裝 “Ubuntu”。
啟用 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
來定義虛擬機的規格。
建立專案資料夾:選擇一個磁碟空間充裕的位置,建立一個新資料夾,例如
D:\docker-vm\windows-11
。建立設定檔:使用 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。
Value | Version | Size |
---|---|---|
11 | Windows 11 Pro | 5.4 GB |
11l | Windows 11 LTSC | 4.7 GB |
11e | Windows 11 Enterprise | 4.0 GB |
10 | Windows 10 Pro | 5.7 GB |
10l | Windows 10 LTSC | 4.6 GB |
7u | Windows 7 Ultimate | 3.1 GB |
xp | Windows XP Professional | 0.6 GB |
2025 | Windows Server 2025 | 5.6 GB |
2022 | Windows Server 2022 | 4.7 GB |
啟動並安裝 Windows 虛擬機
設定檔完成後,即可啟動容器來開始安裝。
啟動服務:在 VS Code 中若有安裝 Docker 擴充套件,可以直接在
docker-compose.yml
檔案上點擊右鍵,選擇Compose Up
。或者,在該資料夾下開啟終端機,執行docker-compose up -d
。錯誤排除:如果啟動時出現
no such file or directory
且與/dev/kvm
相關的錯誤,請將docker-compose.yml
最後一行的# privileged: true
的#
移除,使其變為privileged: true
,然後重新啟動服務。自動安裝:開啟瀏覽器並訪問
http://127.0.0.1:8006/
。網頁會顯示一個遠端畫面,系統會自動下載對應的 Windows ISO 映像檔並開始安裝。
提示:安裝過程完全自動,但依據您的硬碟讀寫速度,網頁畫面可能會長時間沒有動靜,請耐心等待安裝完成。虛擬機的所有系統資料,都會存放在與 docker-compose.yml
同層的 windows/data.img
檔案中。
使用 RDP 遠端桌面連線
當 Windows 安裝完畢並運行後,即可透過遠端桌面連線進行操作。
連線資訊:
- 電腦:用 Zerotier 取得的虛擬區網 IP,我測試本機連不到,可能需要特別設定網路。
- 帳號:
Docker
- 密碼:
admin
跨裝置連線:您可以搭配 ZeroTier 等虛擬區域網路工具,將主機的 ZeroTier IP 作為連線位址,即可從任何地方遠端存取這台 Windows 虛擬機。
總結
相較於傳統的 VMware 或 VirtualBox,使用 Docker 與 WSL 2 來建立 Windows 虛擬機提供了一種更為輕量、快速且可攜的方案。整個虛擬環境被打包在一個資料夾中,方便管理與遷移。對於需要頻繁建立乾淨測試環境的開發者來說,這是一個非常高效的選擇。