超详细保姆级教程:5步在NAS上用Docker跑Windows 支持远程桌面

62 阅读6分钟

前阵子捣鼓威联通NAS,装完DSM系统后顺手发了个教程。结果第二天打开后台,好家伙——私信炸了。有个哥们儿直接问我:"哥,NAS上能跑Windows不?"

我当时盯着屏幕愣了十秒。心说兄弟你这是要上天啊?NAS那小身板跑Windows,怕不是得卡成PPT。但话又说回来,人嘛,总得有点探索精神不是?

然后我就去论坛里翻啊翻。结果你猜怎么着?还真有大佬给整出来了!天地极限,这ID听着就硬核。他搞了个Docker镜像,不用虚拟机,但用起来跟真机没啥区别,还能在里面再套个Docker玩套娃。

我当场就懵了。这操作也太骚了吧?

真的。

我当时坐在电脑前,盯着GitHub页面看了得有五分钟吧,脑子里一直在想这事儿到底靠不靠谱,要不要先备份一下数据,万一整崩了怎么办,不备份吧又怕出问题,反正就是各种纠结,最后心一横:干就完了!

下面我就把这玩意儿怎么整的,从头到尾给你们唠唠。

正式开始前提前做好准备:

  • 确保你的机器支持KVM,可以用下面命令检查是否支持
sudo apt install cpu-checker
sudo kvm-ok

如果kvm ok命令报错了,则表示不能使用kvm,请检查BIOS中的虚拟化设置。

启动Docker

下面正式开始!笔者准备了docker和docker-compose两种安装方式,任选一种即可。 1、Docker安装

docker run -it \
-e VERSION="win11" \
-e RAM_SIZE="8G" \
-e CPU_CORES="4" \
-e DISK_SIZE="256G" \
-e MANUAL="N" \
-p 8006:8006 \
-p 3389:3389/tcp \
-p 3389:3389/udp \
-v path/to/windows/storage:/storage \
--device=/dev/kvm \
--cap-add NET_ADMIN \ 
dockurr/windows:latest

2、docker-compose安装

version: "3.9"
services:
  windows:
    image: dockurr/windows:latest
    container_name: windows
    stop_grace_period: 2m
    restart: unless-stopped
    environment:
      VERSION: "win11"
      RAM_SIZE: "8G"
      CPU_CORES: "4"
      DISK_SIZE: "256G"
      MANUAL: "N"
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    volumes:
      - /share/documents/windows/storage:/storage

3.设置参数:

3.1. 如何选择 Windows 的版本?
默认情况下,将安装Windows 11。但是,你可以设置VERSION环境变量指定要下载的Windows版本:

environment:
  VERSION: "win11"

3.2. 如何设置CPU或RAM的数量?
默认情况下,会分配2个CPU核心和4 GB RAM给容器,这是Windows 11的最低要求。使用下面环境变量可以进行修改:

environment:
  RAM_SIZE: "8G"
  CPU_CORES: "4"

3.3. 如何更改磁盘的大小?
默认会分配64 GB的磁盘大小,使用下面环境变量可以进行修改:

environment:
  DISK_SIZE: "256G"

3.4. 如何更改存储位置?
使用下面环境变量可以设置挂载的存储位置,将示例路径/var/win替换为你自己机器上的存储文件夹。

volumes:
  - /var/win:/storage

3.5. 如何执行手动安装?
默认是自动安装的,如果你想手动执行安装以自定义某些选项,例如选择另一个版本,请添加以下环境变量:

environment:
  MANUAL: "Y"

MANUAL: "Y"表示手工安装,默认是N,笔者建议改成Y,可以自定义进行个性化设置。

3.6. 如何自定义 Windows 镜像下载地址?
你可以在VERSION环境变量中指定URL,以便下载自定义的ISO文件:

environment:
  VERSION: "https://example.com/win.iso"

4 安装Windows

4.1、打开Web页面

使用以上介绍的方法启动Docker容器,稍等片刻后在浏览器中输入IP:8006,打开 QEMU。

4.2、开始安装

就是点按钮。。然后等待!

4.3、安装IO驱动程序

这一步是需要安装磁盘驱动程序,点击浏览。 选择第一个CD 驱动器(D 盘) ,并找到amd64/win11,选中!

选完继续点击下一页,等待!

这里其实是根据你选择的Windows版本安装驱动的,假如你用的是win19就选19

4.4、选择系统版本

这个界面直接点击我没有产品密钥,你如果有密钥你就输入。

接下来选择一个系统版本,建议选Windwos11 专业版就够用了,当然你想选其他的咱也拦不住你~~,继续点击下一页,等待!

嗯,勾选接收许可条款(不接受也不行啊),继续点击下一页,等待!

4.5、选择安装类型和网卡驱动

接下来选择哪种安装类型,选自定义!

这个界面要注意了,要加载一下网卡驱动,笔者第一次安装就忽略了,只好重新装了一遍!这一步很重要,可别直接跳过了!

点击加载驱动程序,在弹出框中选择驱动。

依然是选择第一个CD 驱动器(D 盘) ,并找到NetKVM\w11\amd64,选中!

4.6、个性化设置

选择系统语言

设置默认键盘布局

设置第二个键盘布局

设置主机名

接下来又是一段时间的等待吧,系统会开始自动重启一次。然后会到网络连接界面,直接点击下一步

选第一个就行,继续下一步

这个界面可以登录你的 Microsoft 网络账号,如果点击登录后提示无法连接网络就多试几次,几次之后依然不行,会跳到创建本地账号界面。

4.7、创建本地账号和隐私设置

如果一直无法联网,系统会自动转换到使用本地账号登录。这时候会要求你输入用户名,继续点击下一页

输入一个密码,并确认密码,连续点击下一页

创建本地账户需要设置三个安全问题,自己看着办设置就行。连续点击下一页

这个自己看着选,点击下一页进行选择,最后点接受。然后又是等待系统重启!

继续点击下一步

终于进入系统了!

进入系统后,打开文件管理器中的E盘,找到virtio-win-gt-x64.msi,双击安装它,一路默认下一步就行。

现在,Docker中的Windows已经安装完成啦

5 远程连接Windows

与正常Windows远程桌面没什么区别,如果你是在外网访问家中NAS中的Windows,别忘了到路由器中添加以下3389端口的映射哦,否则是连不上的。

我的构建命令(如果要彻底删除,在删除容器后需要删除/share/documents/windowsltsc10/storage这个目录)

sudo docker run -itd \
	-e VERSION="ltsc10" \
	-e RAM_SIZE="4G" \
	-e CPU_CORES="2" \
	-e DISK_SIZE="100G" \
	-e MANUAL="Y" \
	-e VERSION="http://local.xfnes.top/SW_DVD9_WIN_ENT_LTSC_2021_64BIT_ChnSimp_MLF_X22-84402.ISO" \
	-p 8007:8006 \
	-p 3389:3389/tcp \
	-p 3389:3389/udp \
	-v /share/documents/windowsltsc10/storage:/storage \
	--device=/dev/kvm \
	--cap-add NET_ADMIN \
	--name=winltsc10 \
	dockurr/windows:latest
> 如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!