共计 1701 个字符,预计需要花费 5 分钟才能阅读完成。
简介
最近发现有意思的项目,使用 docker 搭建 windows。这样的话,即使不使用虚拟化平台如 pve 或者 exsi,也可以搭建搭建一个 windows 系统,并且目录可以映射出来,方便进行备份和迁移。
dockurr/windows
镜像可以进行自动安装或者手动将 iso 镜像映射到指定目录,由于下载需要很久,并且默认安装的都是英文不完整系统,即使将语言修改为中文也是不全的,所以我选择直接将平常装系统的镜像安装。
安装此镜像最好是性能足够,安装 win11 最好至少给足 2h4g 的配置,并且最好是 ssd 硬盘,否则可能安装非常非常慢,甚至不成功,亲测!!!如果安装 win7 配置要求较低,1g 内存就可以了。
部署需要支持 kvm。
egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出值大于 0,则表示虚拟化扩展已启用。若返回结果为 0,物理机请到 bios 中开启虚拟化,虚拟机需要开启嵌套虚拟化,一般是创建虚拟机时 cpu 选择 host 模式。
安装
创建目录,并将 iso 镜像修改为指定名称,放在该目录下:
mkdir -p /home/docker/windows/win11
将镜像名称修改为 custom.iso
,放在上面创建的目录下,然后运行如下安装命令:
docker run -d \
--name win11 \
--device=/dev/kvm \
--cap-add=NET_ADMIN \
-p 8006:8006 \
-p 3390:3389/tcp \
-p 3390:3389/udp \
-v /home/docker/windows/win11:/storage \
-e RAM_SIZE=4G \
-e CPU_CORES=8 \
-e DISK_SIZE=100G \
-e MANUAL=Y \
--stop-timeout 2m \
--restart=on-failure \
dockurr/windows
这里需要注意的是 MANUAL=Y
代表手动安装,不然会自动下载镜像进行安装;--stop-timeout 2m
代表等待关闭的时间,如果 2 分钟 windows 还没有关机,容器也会强制停止。
运行之后,可以马上访问 vnc 页面,即打开 8006 端口。
注意:浏览器插件可能导致无法访问 vnc 页面,最好使用隐匿模式!!!
接下来来到了熟悉的 windows 安装界面,下面两步直接按照提示操作即可。
这里需要安装匹配自己操作系统的 VirtIO SCSI
驱动,比如这里安装的是 win11,那么按如图顺序进行选择 D:\amd64\w11\vioscsi.inf
,然后点击下一步。
安装驱动需要一段时间,然后会进入如下页面,没有激活码的直接点击跳过,其他的继续按提示操作即可。
选择自定义安装。
接下来需要选择网卡驱动,否则安装以后没有网络,安装如下图所示操作,选择 D:\NetKVM\w11\amd64
,确定后点击下一步进行安装。
然后继续点击下一步即可。
接下来就是常规的安装步骤,静静等待安装,安装后会进行重启,这里需要很长时间。
如果没有连接互联网,或者不想被强制登录微软账号,需要按下键盘上的
Shift+F10
组合键,调出CMD命令提示符。 输入 oobe\bypassnro 回车确认,电脑会重启一次,重新进入安装界面。
这种方式的话,需要进行设置安全问题,总体来说可能更麻烦。
如果执行了 oobe\bypassnro
会进入这里。
按照官方的提示,还需要安装一个 virtio-win-gt-x64.msi
的东西。
激活
如果安装的是 windows 家庭版,那么此时是不能够使用 windows 自带的远程桌面的。所以此时需要先将家庭版升级为专业版,首先下载 HEU_KMS_Activator 进行安装。
在进行升级之前首先需要禁用 windows 的网卡,不用担心,vnc 页面还是可以进行操作的。
打开软件进入如下界面,点击更改 windows 版本,选择 professional
进行升级。
需要进行一段时间处理,然后会自动重启。此时系统已经是专业版,但是还没进行激活。打开 kms.cx,按如图所示选择。
复制脚本后,以管理员身份打开 powershell,然后运行脚本。
此时就已经激活了,进入设置打开远程桌面。
之后就可以抛弃难用的 vnc 了。
提醒:本文发布于250天前,文中所关联的信息可能已发生改变,请知悉!