利用docker容器windows 云电脑不关机

查看 50|回复 0
作者:乌拉擦   
   
过年了,用云电脑搞了个CF私。服玩玩,本来一两天关机一次,没想几小时就断了,搜了一圈没啥好方法 所以docker搞个容器Windows挂着也不错

一键开设Windows系统的容器
共享宿主机所有资源(CPU、内存、硬盘),基于docker所以只占用系统的大小,适合多开
共享IP,做了docker的NAT映射,可选择是否映射到外网或仅内网
设置的win系统默认最多占用为1核2G内存50G硬盘,实际占用看使用情况
无需iptables进行NAT映射,删除容器时自动删除了端口的映射,方便维护
需要考虑宿主机是否支持嵌套虚拟化,暂时只支持X86_64架构的系统
宿主机需要支持嵌套虚拟化,且暂时只支持X86_64架构的系统,手头没ARM机器编译对应的镜像
执行
egrep -c '(vmx|svm)' /proc/cpuinfo
结果需要大于或等于1,不能为0
然后需要先设置docker切换使用v1版cgroup启动
sed -i 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="\1 systemd.unified_cgroup_hierarchy=0"/' /etc/default/grub
update-grub
ls
如果执行都无报错,执行reboot重启系统以使得设置生效
支持的镜像
使用的自建的镜像:https://hub.docker.com/r/spiritlhl/wds
镜像名字        镜像大小
10        20G
2022        17.5G
2019        17G
创建出的容器大小会比镜像大小大一丢丢,但不多
下载脚本
curl -L https://raw.githubusercontent.com/spiritLHLS/docker/main/scripts/onewindows.sh -o onewindows.sh && chmod +x onewindows.sh
使用方法
开设前务必在screen窗口中执行,避免SSH长期链接造成掉线卡死
./onewindows.sh 容器名字 系统版本 RDP的端口 是否为外网映射(留空则默认是N,可选Y)
开设前需要确认宿主机至少有镜像大小的两倍大小加10G硬盘的大小,因为docker在创建容器时得先将镜像拉到本地再创建
创建过程中,硬盘占用峰值为宿主机系统+镜像大小+容器大小
比如开设容器名字为test,占用最低的Windows 2019系统的容器,映射外网RDP端口为13389,设置为外网映射(映射到你的服务器外网IPV4地址)
./onewindows.sh test 2019 13389 Y
开设后默认的用户名是Administrator和vagrant
默认的密码是vagrant
如果你选择开设映射的外网端口,务必登录后修改对应账户的密码(两个账户都可能有,自行尝试),否则可能被人爆破滥用
删除
需要删除对应镜像和容器,先执行docker ps -a和docker images查询镜像是spiritlhl/wds的ID,然后对应使用
docker rm -f 容器的ID
docker rmi 镜像的ID
删除后可开设别的版本的windows容器
(在宿主机上使用Docker安装Windows系统,好像绕过了某些商家不允许DD成Win系统的TOS限制)
感谢大佬提供好东西https://www.spiritlhl.net/developer/l10n.html

镜像, 容器, 宿主

您需要登录后才可以回帖 登录 | 立即注册

返回顶部