
Docker 运行 Windows 全流程1 份 Compose 配置从 KVM 自检到日常使用【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows老同事发来一份 2009 年的行业软件装不上 Windows 11但公司又没人愿意为它单独开一台虚拟机。Dockur/Windows 这个项目就是把 Windows 装进一个 Docker 容器里跑官方 ISO 自动下载、安装全程无人值守你只需要在浏览器里看着进度条走完。本文按你实际会经历的路径走一遍——先判断值不值得跑再检查机器条件最后讲日常怎么用、卡住怎么查。三个值得上手的真实场景怀旧与兼容性测试Win7、XP 甚至 98 上的老插件、老驱动、老游戏不用翻旧硬盘找镜像机容器里几分钟就装好一套。教学演示给学生或新人一台用完即毁的 Windows 环境装坏直接删容器重来宿主机不沾一点痕迹。远程办公与临时工位家里 Linux 机器白天跑业务晚上开个 Windows 容器处理公司系统下班关容器内存立刻归零。判断标准很简单只要你能接受它是一台完整的虚拟 Windows而不是原生应用这三类需求它都接得住。跑之前KVM 一键自检容器里跑 Windows 靠的是 KVM 硬件加速没有它性能会掉到不可用所以这是唯一硬性前置条件。在 Linux 宿主机上执行sudo apt install cpu-checker sudo kvm-ok输出KVM acceleration can be used就说明虚拟化可用再ls -l /dev/kvm确认设备节点存在。其他要求门槛不高Docker或 Podman已装好、可用内存至少 2GB、磁盘至少 32GB 空闲。两个常见的坑提前说Docker DesktopLinux/macOS 版不向容器暴露 KVM不支持要用原生 Docker 引擎。宿主机本身是虚拟机或 VPS 时需要确认嵌套虚拟化已开启否则kvm-ok会失败。如果kvm-ok通过但容器里仍报 KVM 不可用可以在 compose 文件里临时加一行privileged: true排除设备权限问题。一份 Compose 文件跑起来项目根目录已有一份现成的 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保存为compose.yml执行docker compose up -d。等安装结束后浏览器打开http://127.0.0.1:8006就能看到桌面。8006 是网页控制台3389 是 RDP 端口/storage挂到./windows是为了把磁盘镜像留在宿主机删容器不丢系统。如果你更喜欢纯命令行等价做法是一条docker run加上-e VERSION11 -p 8006:8006 --device/dev/kvm --device/dev/net/tun --cap-add NET_ADMIN -v ./windows:/storage --stop-timeout 120 dockurr/windows效果完全一样。生产环境想放到 K8s 的话仓库里的 kubernetes.yml 可以直接kubectl apply。选哪个系统VERSION 代码对照版本号通过VERSION环境变量指定不写默认装 Windows 11 Pro。镜像体积差异很大按用途选代码系统体积11Windows 11 Pro7.9 GB11lWindows 11 LTSC4.7 GB10Windows 10 Pro5.7 GB7uWindows 7 Ultimate3.1 GBxpWindows XP Professional0.6 GB2022Windows Server 20226.0 GBtiny11Tiny11精简版 115.3 GB完整清单含 Vista、Windows 95/98/ME、2000/2003 到 Server 2025、ReactOS见 docs/environment.md。另外两个实用选项LANGUAGE: Chinese装中文系统VERSION也可以直接填一个 ISO 下载地址或者把本地 ISO 挂载为/custom.iso跳过下载。内存不够就改这一行默认分配 2 核 CPU、4GB 内存、64GB 磁盘。三个参数都在environment里改完重建容器生效RAM_SIZE: 8G内存不够就加这里也支持half、max按宿主机比例分配。CPU_CORES: 4同理支持half、max。DISK_SIZE: 256G默认 64GB 装完系统还剩很多但装数据库或大量软件前建议调大。这个变量对已存在的磁盘同样有效——直接改大再启动旧数据不丢只是新空间会以未分配区出现需要在 Windows 磁盘管理里手动扩展。参考档位轻度办公 2 核 4GB 就够日常开发 4 核 8GB 比较从容。宿主机内存紧张时可以开启内存气球ballooning让容器按宿主内存压力动态回收 Windows 里的闲置内存。装好之后怎么用最舒服网页控制台主要服务于安装阶段日常使用建议切到 RDP体验接近原生还支持剪贴板。用任意微软远程桌面客户端连容器 IP账号Docker密码admin手机上有 Android/iOS 版客户端Linux 用 FreeRDPWindows 直接mstsc。账号想改的话安装前设USERNAME/PASSWORD即可。文件传输靠 Shared 文件夹把宿主机目录挂载到/shared桌面会出现Shared快捷方式同时映射为Z:盘Samba 协议实现双向读写。想让 Windows 像真机一样进局域网而不是走容器 NAT两条路建一个 macvlan 网络并在 compose 里指定ipv4_address容器拿到固定 IP顺带连端口映射都省了或者加DHCP: Y并挂载/dev/vhost-net走 macvtap让 Windows 直接向路由器要 DHCP 地址连打印机、投屏都方便。注意 macvlan 模式下宿主机会访问不到该 IP需要回宿主机时要另建一条网络。卡住时的自查清单按出现频率排序启动报 KVM 不可用先跑kvm-ok再查 BIOS 里 VT-x / AMD-V 是否开启宿主机是虚拟机的话确认嵌套虚拟化。kvm-ok通过仍报错时临时加privileged: true排除权限问题。安装过程卡住或失败确认宿主机网络稳定ISO 是下载完才装的、磁盘剩余空间是否够镜像体积的 2 倍以上/storage所在分区空间不足是最常见原因。网页画面慢、RDP 连不上网页端定位偏低是正常的日常请用 RDP确认 3389 端口映射存在用容器 IP 而不是宿主机 IP 连接。整体偏慢优先加内存到 8GB 以上其次加 CPU 核心最后才怀疑 KVM。更多参数USB 直通、多磁盘、音频流、加域等全在 docs/environment.md安装逻辑本身可以翻 src/ 下的脚本看。一句话收尾一台支持 KVM 的 Linux 机器加一份 Compose 配置你就拥有了一台随开随关、装完即可用的 Windows。【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考