dockur/windows:在 Docker 里跑 Windows

dockur/windows 在 GitHub 上已经拿到 51.7K Star 了。

这个项目做了一件很直接的事:用一个 Docker 容器把 Windows 跑起来。一条命令下去,从下载镜像到装好系统全自动完成,省掉了装虚拟机软件和手动配 ISO 的步骤。

1、 它解决了什么问题

在 Linux 或 macOS 上临时需要一个 Windows 环境,传统做法是装 VirtualBox 或 VMware,下载 ISO,手动走一遍安装流程,配网络、装驱动,折腾半小时起步。

dockur/windows 把这个过程压缩成一条 docker run 命令。容器启动后自动下载指定版本的 Windows ISO,通过 KVM 加速完成安装,装好之后通过浏览器或者 RDP 客户端直接连上去用。

正文顶部截图

2、 支持哪些系统

从 Windows XP 到 Windows 11,从 Server 2003 到 Server 2025,十几个版本都有对应的支持。在 compose 文件里改一下 VERSION 环境变量就行:

  • 11 对应 Windows 11 Pro,约 7.9 GB
  • 10l 对应 Windows 10 LTSC,约 4.6 GB
  • xp 对应 Windows XP Professional,只有 0.6 GB
  • 2025 对应 Windows Server 2025,约 7.6 GB

还可以指定自定义 ISO 的 URL,或者直接挂载本地 ISO 文件。ARM64 版本的 Windows 也有单独的项目(dockur/windows-arm)支持。

3、 怎么用

最简单的方式是 Docker Compose:

services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "11"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    volumes:
      - ./windows:/storage
    restart: always
    stop_grace_period: 2m

也可以直接用 Docker CLI:

docker run -it --rm --name windows -e "VERSION=11" -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/windows:/storage" --stop-timeout 120 docker.io/dockurr/windows

Kubernetes 环境下同样能跑,项目提供了现成的 kubernetes.yml 文件。

容器启动后,浏览器打开 8006 端口就能看到安装过程。整个安装是全自动的,不需要手动点任何东西。装好之后,可以用任何 RDP 客户端连 3389 端口,获得更好的画质和音频支持。

README区域截图

4、 可以调哪些参数

CPU、内存、磁盘大小、用户名密码、系统语言、键盘布局,都能通过环境变量配置:

  • RAM_SIZE: "8G"CPU_CORES: "4" 调整资源,默认是 2 核 4G
  • DISK_SIZE: "256G" 扩展磁盘,默认 64G
  • USERNAMEPASSWORD 设置账户,默认是 Docker/admin
  • LANGUAGE: "French" 切换系统语言,支持中文、日文、韩文等三十多种
  • KEYBOARDREGION 调整键盘布局和区域设置

文件共享方面,桌面会有一个 Shared 文件夹,把主机目录挂载到 /shared 就能双向传文件。多块磁盘、磁盘直通、USB 设备直通也都支持。

5、 网络方面

默认用桥接网络,容器和主机共享 IP。如果需要容器有独立 IP,可以创建 macvlan 网络。还支持 DHCP 模式,让 Windows 直接从路由器获取 IP,像一台真正的物理机一样接入局域网。

6、 适合什么场景

临时需要 Windows 环境跑某个只能在 Windows 上运行的工具或脚本。CI/CD 流水线里需要 Windows 测试环境。快速搭一个隔离的 Windows 沙箱做安全测试。或者就是想在 NAS 上挂一个 Windows 虚拟机随时远程连上去。

虚拟化平台、ISO 管理、手动装系统这些全跳过了。Docker 能跑的地方,它就能跑。

试。或者就是想在 NAS 上挂一个 Windows 虚拟机随时远程连上去。

虚拟化平台、ISO 管理、手动装系统这些全跳过了。Docker 能跑的地方,它就能跑。

更多推荐