docker 部署Windows 桌面镜像
前言
在docker部署Windows系统,本质上是通过docker帮助管理一个kvm虚拟机,故类似的玩法仅限于物理机,或者已经开启了虚拟化透传的虚拟机、云服务器。开启了虚拟化的物理计算机可以玩,开启了虚拟化透传的虚拟机可以玩,绝大多数云服务器、VPS,还是洗洗睡吧。云服务器之类的基本上只能玩玩没有独立内核的openvz或者docker,或者以CPU模拟低效率的实现虚拟机。
项目推荐
实际上类似的项目相当多,但是许多项目实现的不是太多,仍然需要用户自备iso,安装系统镜像加载kvm虚拟设备驱动,因此从价值上,我推荐这个项目:https:///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-failuredocker 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
描述
提供者
国内下载速度
镜像大小
win11
Windows 11 Pro
Microsoft
极慢,可能很快
6.4 GB
win10
Windows 10 Pro
Microsoft
极慢,可能很快
5.8 GB
ltsc10
Windows 10 LTSC
Microsoft
极慢,可能很快
4.6 GB
win81
Windows 8.1 Pro
Microsoft
极慢,可能很快
4.2 GB
win7
Windows 7 SP1
Bob Pony
极慢
3.0 GB
vista
Windows Vista SP2
Bob Pony
极慢
3.6 GB
winxp
Windows XP SP3
Bob Pony
极慢
0.6 GB
2022
Windows Server 2022
Microsoft
极慢,可能很快
4.7 GB
2019
Windows Server 2019
Microsoft
极慢,可能很快
5.3 GB
2016
Windows Server 2016
Microsoft
极慢,可能很快
6.5 GB
2012
Windows Server 2012 R2
Microsoft
极慢,可能很快
4.3 GB
2008
Windows Server 2008 R2
Microsoft
极慢,可能很快
3.0 GB
core11
Tiny 11 Core
不可用
2.1 GB
tiny11
Tiny 11
不可用
3.8 GB
tiny10
Tiny 10
不可用
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",就可用使用自定义的镜像了。
Docker的三种网络代理配置:dockerd pull镜像代理;容器docker run网络代理;docker build代理--build-argdocker pull 代理
docker Windows10镜像 docker部署windows镜像
Windows下部署安装Docker docker安装部署windows 10
linux docker 部署 云桌面 docker部署owncloud
windows 10更改WSL Docker镜像目录docker能装windows镜像吗
Windows 2012 基于会话的远程桌面部署windows2012开启远程桌面
(精华)2020年10月30日 Docker Windows10安装Docker Desktopwindows10下安装docker
Windows10 Docker镜像加速docker win10镜像