离谱:docker下一分钟部署windows系统
前几天在GitHub查找资料,突然眼前一黑,看到了一个在docker里部署window的项目(不是window部署docker,那种烂大街的教程有啥好写的),和我之前写过docker部署群晖的dms(docker部署群晖DSM系统——快速体验群晖系统)有着异曲同工之处,就干脆部署一个试试。
这个项目本身需要用到kvm,而且作者也提供了x86和arm两种架构可以选,部分设备可能不支持kvm就需要自行开启了。
一、检测kvm
检测是否支持kvm:
sudo apt install cpu-checker
sudo kvm-ok
如果返回结果为则说明支持kvm,若返回错误,物理机请到bios中开启虚拟化,虚拟机请开启嵌套虚拟化。
INFO: /dev/kvm exists
KVM acceleration can be used
这里以turenas为例,开启嵌套虚拟化只需要把cpu模式改成host,实体机等请自行百度bios开启虚拟化方法。
二、docker部署windows
1.docker-compose.yml:
version: "3"
services:
windows:
image: dockurr/windows
container_name: windows #容器名称
environment:
VERSION: "win11" #系统镜像,默认win11,可以自行选择
DISK_SIZE: "256G" #磁盘大小
RAM_SIZE: "8G" #使用内存大小
CPU_CORES: "4" #使用cpu核心数
HV: "N" #禁用Hyper-V功能,在威联通、群晖等部分机器上需要禁用
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- /var/win:/storage
stop_grace_period: 2m
restart: on-failure
VERSION相关镜像名称可以参考下图,由于国内网络影响,仅来源为“Microsoft”也就是微软官方的可以正常下载,虽然速度也感人。
2.docker,这里我没有添加任何环境变量和添加多的端口,需要的同学自行添加即可:
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
3.威联通Container Station:
选择应用程序,单击创建,把上面的docker-compose.yml复制进去,修改磁盘挂载路径,设置名称,验证yml无误,点击创建即可部署。
验证完成后会开始部署,这时候打开浏览器输入ip+8006就可以访问控制台,一般下载速度有点慢,可以先自行下载好安装包重命名custom.iso再放入/storage文件夹中,部署的时候就可以跳过下载这一步直接开始安装,也可以部署的时候自定义下载源。
environment:
VERSION: "https://example.com/win.iso"
三、连接windows
等待安装完成后直接用远程桌面连接到windows系统就可以了,这个就没有啥难度。
四、注意&结论
这个项目和之前介绍的docker-dsm有些不一样,那个可以不用kvm,但是这个一定是需要kvm的,如果系统或者硬件不支持虚拟化,那还是放弃吧,不然一开始就启动不了,(似乎不支持kvm也可以启动,但是总之无法正常使用就是)。
我自己也是试了一下这个,怎么说呢,本质上就是调用的虚拟机的docker,所以没有kvm是跑不了,但是,我都用到虚拟机了为什么还要多此一举搞个dockers,不直接用虚拟机更好吗,总之这个用途有点受限。