在Docker中跑Windows系统,支持远程桌面
Dockerhub:https://hub.docker.com/r/dockurr/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代码
- bash <(curl -sL https://iii80.com/sh/docker.sh)
- bash <(curl -sL https://iii80.com/sh/docker-cn.sh)
安装WIN系统:
1、Docker安装
XML/HTML代码
- 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 /opt/windows/storage:/storage \
- --device=/dev/kvm \
- --cap-add NET_ADMIN \
- dockurr/windows:latest
XML/HTML代码
- 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
下面简单介绍下如何设置参数:
如何选择 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代码
- [+] 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
- 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
- [+] Finished! Please see the above errors with information
- ❯ ERROR: Failed to download win11x64