将 脚本之家 设为“星标⭐”
第一时间收到文章更新
做开发我平时更多用 macOS,但有时候免不了得在 Windows 上跑点程序,平常的做法当然是开虚拟机装个 Windows,不过有时候真觉得太慢了,启动久,安装还麻烦,如果有更轻松的解决方法就好了。
有一个开源项目,听起来有点离谱——在 Docker 里跑 Windows。
开源地址:
https://github.com/dockur/windows
现在 Star 数都来到了 45k+,可见欢迎程度:没错,不是装虚拟机,不是远程桌面,是直接在 Docker 容器里跑一整台 Windows,而且还能在浏览器里打开桌面。
先说 Docker,它本质上是一个轻量级虚拟化工具。简单理解,就是一种把应用和运行环境打包在一起的容器。
容器里有程序运行需要的所有东西:代码、依赖库、配置一应俱全,启动快,占用少,不像传统虚拟机那么笨重。
举个例子,你用 Docker 可以在 Linux 上直接跑 MySQL、Nginx 或 Python,甚至还能隔离不同的环境,互不干扰。
通常 Docker 用来跑 Linux 应用,但 dockur/windows 就有点魔幻——它居然把 Windows 装进 Docker 里,让你也能在容器里跑 Windows 系统。
安装与使用指南
1、使用 Docker Compose
创建 docker-compose.yml
文件,配置信息如下:
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
2、使用 Docker CLI
不想写 Compose 文件,也可以直接用命令启动:
docker run -it --rm --name windows \
-p 8006:8006 \
--device=/dev/kvm --device=/dev/net/tun \
--cap-add NET_ADMIN \
-v "${PWD:-.}/windows:/storage" \
--stop-timeout 120 dockurr/windows
3. 通过 Kubernetes
直接应用官方配置文件即可:
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
默认会安装 Windows 11 专业版,如果想安装其他版本,只需在配置文件里加上 VERSION 环境变量即可,例如:
volumes:
- ./windows:/storage
配置好后执行:
几分钟后打开浏览器访问 http://localhost:8006,就能看到 Windows 桌面。
提取 Windows 11 映像:
提取完成后,就开始构建:
然后开始安装:
之后就可以看到 Windows 系统了: