记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

在Docker中跑Windows系统,支持远程桌面

在Docker中跑Windows系统,支持远程桌面

这个项目Github上的一款开源项目,支持Web访问(QEMU)和远程桌面,支持安装以下系列Windows系统:
win11 = Windows 11
win10 = Windows 10
win81 = Windows 8.1
win22 = Windows Server 2022
win19 = Windows Server 2019
win16 = Windows Server 2016
准备:
安装之前首先确保你的机器支持KVM,可以用下面命令检查是否支持
sudo apt install cpu-checker
sudo kvm-ok
如果kvm ok命令报错了,则表示不能使用kvm,请检查BIOS中的虚拟化设置。
也可以使用命令
ls /dev/kvm
回显正常就表示硬件支持kvm,如果返回找不到的错误提示,就说明硬件不支持,不能安装win系统。因为是kvm虚拟机,需要网上下载ISO文件,所以安装过程较慢。
安装Docker:
#安装docker+Portainer
XML/HTML代码
  1. bash <(curl -sL https://iii80.com/sh/docker.sh)
  2. bash <(curl -sL https://iii80.com/sh/docker-cn.sh)
安装WIN系统:
1、Docker安装
XML/HTML代码
  1. docker run -it \
  2. -e VERSION="win11" \
  3. -e RAM_SIZE="8G" \
  4. -e CPU_CORES="4" \
  5. -e DISK_SIZE="256G" \
  6. -e MANUAL="N" \
  7. -p 8006:8006 \
  8. -p 3389:3389/tcp \
  9. -p 3389:3389/udp \
  10. -v /opt/windows/storage:/storage \
  11. --device=/dev/kvm \
  12. --cap-add NET_ADMIN \
  13. dockurr/windows:latest
2、docker-compose安装
XML/HTML代码
  1. version: "3.9"
  2. services:
  3.   windows:
  4.     image: dockurr/windows:latest
  5.     container_name: windows
  6.     stop_grace_period: 2m
  7.     restart: unless-stopped
  8.     environment:
  9.       VERSION: "win11"
  10.       RAM_SIZE: "8G"
  11.       CPU_CORES: "4"
  12.       DISK_SIZE: "256G"
  13.       MANUAL: "N"
  14.     devices:
  15.       - /dev/kvm
  16.     cap_add:
  17.       - NET_ADMIN
  18.     ports:
  19.       - 8006:8006
  20.       - 3389:3389/tcp
  21.       - 3389:3389/udp
  22.     volumes:
  23.       - /share/documents/windows/storage:/storage
下面简单介绍下如何设置参数:
如何选择 Windows 的版本?
默认情况下,将安装Windows 11。但是,你可以设置VERSION环境变量指定要下载的Windows版本:
environment:
  VERSION: "win11"
支持设置为以下Windows 版本:
win11  win10  win81  win22  win19  win16
如何设置CPU或RAM的数量?
默认情况下,会分配2个CPU核心和4 GB RAM给容器,这是Windows 11的最低要求。使用下面环境变量可以进行修改:
environment:
  RAM_SIZE: "8G"
  CPU_CORES: "4"
如何更改磁盘的大小?
默认会分配64 GB的磁盘大小,使用下面环境变量可以进行修改:
environment:
  DISK_SIZE: "256G"
如何更改存储位置?
使用下面环境变量可以设置挂载的存储位置,将示例路径/var/win替换为你自己机器上的存储文件夹。
volumes:
  - /var/win:/storage
如何执行手动安装?
默认是自动安装的,如果你想手动执行安装以自定义某些选项,例如选择另一个版本,请添加以下环境变量:
environment:
  MANUAL: "Y"
MANUAL: "Y"表示手工安装,默认是N,笔者建议改成Y,可以自定义进行个性化设置。
如何自定义 Windows 镜像下载地址?
你可以在VERSION环境变量中指定URL,以便下载自定义的ISO文件:
environment:
  VERSION: "https://example.com/win.iso"
在安装过程中,需要添加一些驱动程序,下面会详细介绍。
安装Windows
以下都是使用手工安装的过程,如果你选择自动安装则就不需要看了!安装的步骤比较多,特别是关于选择驱动的步骤,跟虚拟机安装过程相似,请务必仔细操作,不要遗漏。
1、打开Web页面
使用以上介绍的方法启动Docker容器,稍等片刻后在浏览器中输入IP:8006,打开 QEMU。和正常安装win11一样。远程连接Windows,与正常Windows远程桌面没什么区别,如果你是在外网访问家中NAS中的Windows,到路由器中添加以下3389端口的映射。
如果出现以下错误提示
XML/HTML代码
  1. [+] Got latest ISO download link (valid for 24 hours): https://software.download.prss.microsoft.com/dbazure/Win11_23H2_English_x64v2.iso?t=d0b28e69-3569-456b-9d75-be349aa75e4c&e=1706404335&h=89a4e2cb1a9a97e4f43a1c947f42d2942330873b7aefdc347086ddeba5c5f517  
  2. curl: (35) OpenSSL/3.1.4: error:0A00042E:SSL routines::tlsv1 alert protocol version[!] Curl terminated due to a fatal signal![!] 1 attempted download(s) failed! Please re-run Mido with these arguments to try downloading again (any partial downloads will be resumed): win11x64  
  3. [+] Finished! Please see the above errors with information  
  4. ❯ ERROR: Failed to download win11x64
说明下载出错,此时解决方法很简单,拷贝错误信息里面的下载地址,手动下载一下,或者下载自己喜欢的系统ISO,然后把下载后的 iso 安装文件拷贝到 自己设置的存储  /opt/windows/storage 目录下面,并且改名为 custom.iso,然后重新创建系统就可以正常进行了。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):