風雲論壇电脑网络 → 浏览:帖子主题
* 帖子主题:Docker 中运行 Windows 系统
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 1 楼 ] 回复
Docker 中可以运行 Windows 系统,安装 qemu 就行了,甚至不需要 root 权限。
以 opensuse 为例,需要安装的软件包有:
zypper in qemu-x86 qemu-tools qemu-ui-gtk qemu-lang
如果是在纯命令行下操作,甚至连 qemu-ui-gtk 都不需要安装,可以使用 vnc 远程管理。

qemu 安装完成后,创建硬盘的命令为:
qemu-img create -f qcow2 win7.img 20G
然后下载 Windows 安装光盘(建议 Win7 以下系统,没那么卡),尽量下载官方原版 iso 镜像,国内下载的一些 iso 镜像启动不了。

然后挂载 光驱和硬盘启动安装(安装完成后可以去掉 -cdrom 参数):
qemu-system-x86_64 -hdb win7.img -cdrom win7.iso -m 4G -smp 4 -rtc base=localtime
-smp 4 表示 4 核,-rtc base=localtime 可以避免开机后慢 8 小时的问题。
安装完成后,可以通过 tmux 在后台运行 qemu,这时不需要视频输出,可以使用 -nographic 关闭视窗输出。

如果需要做端口映射,可以增加参数:
-nic user,hostfwd=tcp::2589-:3389,hostfwd=tcp::2580-:80

如果想使用 vnc 管理界面,可以增加参数:
-vnc :87 -usbdevice tablet
则可以通过 localhost:5987 管理虚拟机,默认无需提供账号密码(可以使用 -vncpasswd 提供密码)。-usbdevice tablet 提供一个触摸屏设备,是为了改善 VNC 连接后鼠标不同步的问题。

使用最佳虚拟化:
--enable-kvm -cpu host
宿主机是什么 CPU,虚拟机就是什么 CPU。但是此参数需要 KVM 支持,容器运行时有 --device /dev/kvm 参数。
2023/12/2 21:11:39 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 2 楼 ] 回复
如果不安装 qemu-ui-gtk,默认会提供 vnc 管理端口。通过 tmux 运行很不错,虽然远程桌面进去有些卡,但是跑 Web 服务是没问题的。
2023/12/2 21:24:33 IP:已设置保密
pojin (ID: 2)
等级:风云使者
积分:318
发帖:2
来自:保密
注册:2022/3/30 11:42:27
造访:2024/12/21 22:23:34
[ 第 3 楼 ] 回复
实现 linux 服务器安装 windows 系统,也实现了使用隧道的功能,非常好!
但是对新手来说,上手还是有点困难,如果有直接拉取镜像建 docker,这种应该方便点。
2023/12/3 11:27:06 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 4 楼 ] 回复
qemu 很小,主流 Linux 的源中基本都有,例如 alpine, mariner, opensuse 等。

主要是 Windows 安装镜像太大,安装后硬盘文件更大,不适合做 docker 镜像。
2023/12/3 11:29:23 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 5 楼 ] 回复
网上有专门的镜像,启动指令为:
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 -e VERSION=win81 dockurr/windows
可以通过 -e VERSION=http://192.168.137.132/Win81.iso 的方式从网址下载 iso 文件,会更快。
启动成功后,可以访问 http://IP:8006 通过 Web 方式操作虚拟机。

dockurr/windows 的 github 地址为:https://github.com/dockur/windows
2024/1/28 16:09:06 IP:已设置保密
分页: 1, 共 1 页
快速回复主题
账号/密码
用户: 没有注册? 密码:
评论内容