windows
允许用户在 Docker 容器中运行 Windows 系统。
支持自动下载不同版本的 Windows,如 Windows 10、11、或 Server,用户可以调整 CPU、内存和存储等参数,并支持通过网页或远程桌面连接访问。
还支持网络配置、文件共享和安装后脚本运行等功能,适合用于虚拟化测试和开发环境。
Github地址
https://github.com/dockur/windows
视频介绍 (科学上网)
https://www.youtube.com/watch?v=xhGYobuG508
特性 ✨
• 支持 ISO 文件下载
• 支持 KVM 加速
• 提供基于 Web 的查看器
使用方法 🐳
可以通过 Docker Compose、Docker CLI 或 Kubernetes 来启动 Windows 容器。
Docker Compose
services:
windows:
image: dockurr/windows container_name: windows environment:
VERSION: "11"
devices:
- /dev/kvm cap_add:
- NET_ADMIN ports:
- 8006:8006
- 3389:3389/tcp - 3389:3389/udp stop_grace_period: 2m
Docker CLI
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
Kubernetes
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
兼容性 ⚙️
• Docker Engine on Linux: ☑️
• Docker Desktop on Linux: ✖️
• Docker Desktop on macOS: ✖️
• Docker Desktop on Windows 11: ☑️
• Docker Desktop on Windows 10: ✖️
常见问题解答 💬
• 如何使用?
• 启动容器并通过浏览器连接到端口 8006。
• 自动完成整个安装过程。
• 看到桌面后,Windows 安装即可使用。
• 如何选择 Windows 版本?
• 默认安装 Windows 11,可以通过设置
VERSION
环境变量来选择其他版本。• 如何更改存储位置?
• 通过在 compose 文件中添加绑定挂载来更改。
• 如何更改磁盘大小?
• 通过设置
DISK_SIZE
环境变量来扩大默认的 64 GB 磁盘大小。• 如何与主机共享文件?
• 通过在 compose 文件中添加卷绑定来共享文件。
• 如何安装自定义镜像?
• 可以通过指定 ISO 的 URL 或者使用本地 ISO 文件。
• 如何运行安装后的脚本?
• 创建一个
install.bat
文件并将其与需要的文件一起放在一个文件夹中,然后通过 compose 文件将该文件夹绑定到容器中。• 如何手动安装?
• 添加
MANUAL
环境变量进行手动安装。• 如何更改 CPU 或 RAM 数量?
• 通过设置
RAM_SIZE
和CPU_CORES
环境变量来调整。• 如何配置用户名和密码?
• 通过设置
USERNAME
和PASSWORD
环境变量来更改默认的 Docker 用户。• 如何选择 Windows 语言?
• 通过设置
LANGUAGE
环境变量来选择语言。• 如何选择键盘布局?
• 通过设置
KEYBOARD
和REGION
环境变量来选择键盘布局。• 如何使用 RDP 连接?
• 使用 Microsoft Remote Desktop 客户端连接到容器的 IP 地址。
• 如何为容器分配单独的 IP 地址?
• 创建一个 macvlan 网络并配置 compose 文件。
• 如何让 Windows 从路由器获取 IP 地址?
• 配置 macvlan 并添加
DHCP
环境变量。• 如何添加多个磁盘?
• 在 compose 文件中添加额外的磁盘大小和卷绑定。
• 如何透传磁盘?
• 将磁盘设备直接添加到 compose 文件中。
• 如何透传 USB 设备?
• 查找 USB 设备的 vendor 和 product id,并添加到 compose 文件中。
• 如何验证系统是否支持 KVM?
• 运行
kvm-ok
命令来检查。• 如何在容器中运行 macOS?
• 使用 dockur/macos。
• 这个项目合法吗?
• 是的,项目只包含开源代码,不分发任何版权材料,且遵循所有适用法律。