如何用本地 ISO 镜像启动 Dockur Windows?一份完整的实操指南
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
Dockur Windows 是一个把 Windows 装进 Docker 容器的开源项目,而使用「本地 ISO 镜像」安装,能帮你跳过每次从网络拉取镜像的步骤——更快、更可控,版本也完全由你说了算。
整件事只有三步:先把宿主机和环境准备好,再把本地 ISO 挂进容器的/storage目录,最后等容器自动完成安装。装的过程中你会看到进度条和 "Decompressing Windows image..." 这类提示,都属正常。如果中途卡住或报错,照着第四节的清单查一遍,基本都能解决。
一、开始前的三件事
这三件事决定了后面是"坐着等"还是"反复折腾"。先做 KVM,再确认 ISO 没坏,最后把资源留够。
开启 KVM 硬件加速
KVM 是让机器跑起来更顺畅的那块硬件虚拟化支持,没有它,Windows 在容器里会慢到让人怀疑人生。
- 宿主机是 Linux,BIOS 里开好了虚拟化(Intel VT-x 或 AMD-V),且存在
/dev/kvm设备。 - compose 里记得把设备传进容器:
devices: - /dev/kvm - /dev/net/tun备一份没损坏的 ISO
从微软官网下载,或确认手里的拷贝校验值对得上。文件只要少了一个字节,后面就是各种奇怪的引导错误。
给容器留出 CPU 和内存
官方建议内存至少 2 GB、磁盘留 32 GB 以上。装 Windows 11 的话,给 4 核 8 GB 以上会更从容。具体变量(CPU_CORES、RAM_SIZE)可以参考环境变量文档。
二、把本地镜像挂进容器
挂载存储卷
⚙️ 关键就一行:把宿主机上放 ISO 的目录,映射到容器内的/storage。/storage是容器的工作目录,ISO、磁盘镜像、下载文件全都在这里。
volumes: - /你的/ISO目录:/storage左边换成你实际存放 ISO 的路径即可。参考完整配置可以看仓库里的 compose.yml。
放好 ISO 文件
把 ISO 直接放进挂载目录,不用改任何其他环境变量。想省事的话,把文件命名为custom.iso,容器会优先识别它。
别用 VERSION 指本地路径
⚠️ 这是个高频坑:VERSION只用来选要装哪个 Windows 版本(比如"10"、"11"),不是文件路径。把本地路径塞进VERSION,容器会直接把它当版本名去处理,结果就是找不到镜像。
三、启动时容器在忙什么
先启动容器,再打开浏览器看进度。整个过程大致分四步:
- 检查 ISO:容器到
/storage里找你的镜像文件。 - 校验完整性:确认文件能正常读取、大小合理,这一步是后面一切的基础。
- 解包并构建镜像:把 ISO 里的安装内容拆出来,重新打包成适合容器启动的镜像。界面会显示 "Decompressing Windows image..." 并停留一段时间,这是正常等待,耐心点。
- 启动 Windows 系统:构建完成后自动开始装系统,直到你看到桌面。
四、卡住或报错?照这份清单查
如果解包后卡住
- 如果 KVM 没生效,就回第一节能确认
/dev/kvm真的存在、compose 里devices没漏写。没有 KVM 时性能差距是数量级的,"卡住"多半是慢到像卡住。 - 如果 ISO 可能不完整,就重新下载或校验一遍,换个文件再试。
- 如果容器在跑但你打不开界面,就确认 compose 里 8006 端口映射正常——这个端口对应容器内的 Web 界面(容器内服务默认监听 9100,经 8006 对外暴露)。映射好之后,用浏览器访问
http://127.0.0.1:8006就能看到进度。
如果出现 "BdsDxe: failed to load Boot0002"
这是 UEFI 引导阶段找不到可启动项的典型报错,按这三条排查:
- 如果你的 ISO 不是标准 Windows 安装盘(比如某些精简、魔改盘),就换一份官方原版镜像。
- 如果文件传输过程可疑(网盘、断点续传),就按上一条,先怀疑文件损坏,重新获取。
- 如果你的宿主机是 ARM 架构,就别尝试跑 x86 镜像,两者不兼容,得找对应架构的安装介质。
五、让容器更顺手
能落地就两条,都指向 IO 速度:
- 用 SSD 存镜像和磁盘文件:解包、构建、系统盘读写全是重 IO,机械盘上这几步会明显更久。
- 确认 virtio 驱动在工作:virtio 是一套专为虚拟化场景优化的高性能半虚拟化驱动,Windows 用它来操作虚拟磁盘和网络卡,比传统模拟设备快很多。本项目默认就走 virtio 网卡和磁盘通道,只要不额外禁用,你白赚这部分性能。
六、写在最后
流程就是:备镜像 → 挂/storage→ 开容器,剩下的交给它自己。最后提醒一句:把 ISO 放在独立目录而不是系统盘根目录下,重装或清理时不容易误删,/storage里的磁盘文件也是你的系统本体,备份好再动手。
更多参数细节,随时翻 环境变量文档 和 readme。
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考