docker 部署Windows 桌面镜像
source link: https://blog.51cto.com/infrado/10229576
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
docker 部署Windows 桌面镜像
精选 原创在docker部署Windows系统,本质上是通过docker帮助管理一个kvm虚拟机,故类似的玩法仅限于物理机,或者已经开启了虚拟化透传的虚拟机、云服务器。开启了虚拟化的物理计算机可以玩,开启了虚拟化透传的虚拟机可以玩,绝大多数云服务器、VPS,还是洗洗睡吧。云服务器之类的基本上只能玩玩没有独立内核的openvz或者docker,或者以CPU模拟低效率的实现虚拟机。
实际上类似的项目相当多,但是许多项目实现的不是太多,仍然需要用户自备iso,安装系统镜像加载kvm虚拟设备驱动,因此从价值上,我推荐这个项目: https://github.com/dockur/windows
根据项目页面的描述,这个方式具有以下特性:
- ISO下载
- KVM加速
- 基于WEB的查看器
此开源项目发布也就没几个月,类似的项目大多也都是差不多的时间。从开箱即用的角度,笔者推荐这个。
如果这种docker镜像做不到开箱即用还需要繁琐的系统部署流程,笔者认为不如随意找个主流的Linux发行版手搓kvm命令,或者以qemu-kvm之类的工具部署Windows虚拟机,或者直接在debian操作系统部署一个proxmox ve,嫌弃前者麻烦,后者太重,也有一些例如使用PHP ruby之类的语言编写的简单的基于网页管理的kvm虚拟机管理程序,基本的创建几个简单的虚拟机的需求,这种简单的小规模程序可能会更好:没那么多的东西,本身引入漏洞的风险小很多,也没太高的性能资源占用,特别适合内存不太多的情况。
使用方法非常简单,官方给出了两种方式,docker-compose.yml以及直接docker run命令。
version: "3"
services:
windows:
image: dockurr/windows
container_name: windows
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
restart: on-failure
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
运行命令后,程序就会自动开始运行Windows 11。可以通过浏览器访问运行docker的计算机的IP:8006端口操作Windows;也可以通过RDP协议连接运行docker的计算机的IP连接Windows的RDP服务,能够成功连接的前提是TCP8006,3389的TCP与UDP端口都没有被占用。
environment:
VERSION: "win11"
-e VERSION= "win11"
通过传递环境变量可以控制自动下载的Windows版本。
Value | 描述 | 提供者 | 国内下载速度 | 镜像大小 |
| Windows 11 Pro | Microsoft | 极慢,可能很快 | 6.4 GB |
| Windows 10 Pro | Microsoft | 极慢,可能很快 | 5.8 GB |
| Windows 10 LTSC | Microsoft | 极慢,可能很快 | 4.6 GB |
| Windows 8.1 Pro | Microsoft | 极慢,可能很快 | 4.2 GB |
| Windows 7 SP1 | Bob Pony | 3.0 GB | |
| Windows Vista SP2 | Bob Pony | 3.6 GB | |
| Windows XP SP3 | Bob Pony | 0.6 GB | |
| Windows Server 2022 | Microsoft | 极慢,可能很快 | 4.7 GB |
| Windows Server 2019 | Microsoft | 极慢,可能很快 | 5.3 GB |
| Windows Server 2016 | Microsoft | 极慢,可能很快 | 6.5 GB |
| Windows Server 2012 R2 | Microsoft | 极慢,可能很快 | 4.3 GB |
| Windows Server 2008 R2 | Microsoft | 极慢,可能很快 | 3.0 GB |
| Tiny 11 Core | Archive.org | 2.1 GB | |
| Tiny 11 | Archive.org | 3.8 GB | |
| Tiny 10 | Archive.org | 3.6 GB |
默认情况是2核4G,分配了64G的磁盘空间。同样通过类似的参数可以自由指定:
environment:
RAM_SIZE: "8G"
CPU_CORES: "4"
DISK_SIZE: "256G"
macvlan方式也可以让虚拟机自身直接得到当前局域网的IP地址,而不是与运行docker的计算机共享。也可以自行修改iso地址,VERSION: "win11"修改为例如VERSION: "http://ip/win.iso",就可用使用自定义的镜像了。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK