在 Docker 容器中运行 Windows 系统,支持通过网页或远程桌面连接访问。还支持网络配置、文件共享和安装后脚本

文摘   2024-11-14 10:15   广东  

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。

  • • 这个项目合法吗?

    • • 是的,项目只包含开源代码,不分发任何版权材料,且遵循所有适用法律。


github淘金
打破信息差,不为免费而付费。关注我,每日分享各种有趣,实用的开源项目。
 最新文章