Windows 桌面容器镜像

需要在 K8s/Docker 上跑一个 Windows(win11)图形桌面容器(基于 KVM 虚拟化)时读这篇

06-二次开发 / 镜像构建
windowswin11桌面容器desktop containerKVMkvm-okdockurr/windowsqemu虚拟化virtualization8006notebook-enterprise:win11

Windows 桌面容器镜像(KVM)

基于 KVM 虚拟化的 Windows(win11)桌面容器镜像,通过浏览器访问 Web 桌面(默认端口 8006)。这是一种独立的镜像类型,与 jupyter/vscode notebook 镜像无关。

源:images/window/window.md

一、校验宿主机是否支持 KVM

容器依赖宿主机的 /dev/kvm,先确认开启了硬件虚拟化:

apt install cpu-checker -y
kvm-ok

期望输出:

INFO: /dev/kvm exists
KVM acceleration can be used

若没有 /dev/kvm,需在 BIOS / 云主机层开启 VT-x/AMD-V 虚拟化。

二、启动 Windows 桌面容器

容器需要 --device=/dev/kvm 透传 KVM、--cap-add NET_ADMIN 配网,--stop-timeout 120 给系统留关机时间。访问 http://<宿主机IP>:8006

# 方式 A:dockurr/windows 上游镜像,在线安装 win11(中文)
docker run -it --name win -p 8006:8006 \
  -e VERSION="win11" -e LANGUAGE="Chinese" \
  -e DISK_SIZE="30G" -e RAM_SIZE="32G" -e CPU_CORES="32" \
  -v $PWD/win11:/shared \
  --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 \
  dockurr/windows:3.11

# 方式 B:平台镜像(带第二块数据盘 DISK2_SIZE,挂到 /storage2)
docker run -it --name win -p 8006:8006 \
  -e VERSION="win11" -e LANGUAGE="Chinese" \
  -e DISK_SIZE="30G" -e RAM_SIZE="32G" -e CPU_CORES="32" -e DISK2_SIZE="32G" \
  -v $PWD/storage2:/storage2 \
  --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 \
  ccr.ccs.tencentyun.com/cube-studio/notebook-enterprise:win11

# 方式 C:已预装好系统的平台镜像(开箱即用)
docker run -it --name win11 -p 8006:8006 \
  -e DISK_SIZE="30G" -e RAM_SIZE="32G" -e CPU_CORES="10" \
  --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 \
  ccr.ccs.tencentyun.com/cube-studio/notebook-enterprise:win11-1

环境变量说明:

变量 含义
VERSION Windows 版本,如 win11
LANGUAGE 系统语言,如 Chinese
DISK_SIZE 系统盘大小
DISK2_SIZE 第二块数据盘大小(挂到 /storage2
RAM_SIZE 分配内存
CPU_CORES 分配 CPU 核数
最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki