我想拥有一个单独的虚拟化操作系统环境(最好是Windows,但也欢迎使用Linux),但是在非常小的RAM上运行以运行bot应用程序。 我尝试过Hyper-V(带磁盘差异)和VMware(带链接/即时克隆)和Virtualbox和qemu,但到目前为止他们需要完整的操作系统安装,它可以占用很多空间。
基本上我只需要多个类似的环境(接近100)而没有大的硬盘空间,我从本地网络文件夹运行所有应用程序。 (类似于在一个vhd下运行的多个vms,但我不想占用这么多HDD空间)
我尝试使用一个定制的Lubuntu livecd和WINPE live cd(Gandalf' WINPE 7)在多个Hyper-V vms上启动。它们启动得很好,但Gandalf的WINPE不是一个完整的窗口,需要高RAM使用,而在Linux方面,我无法在WINE下运行我的Windows脚本+应用程序尽管Linux内存管理要好得多,我仍然可以使用如果需要的话,就像Damn Small Linux那样小得多的发行版。
我检查了微软的App-V,但它只是虚拟化了应用程序,没有设置新的独立环境。我需要一个带有自己的鼠标指针的新环境,但需要非常小的RAM,最好只是为了运行机器人和应用程序。
谢谢。
答案 0 :(得分:1)
我已经尝试过FreeBSD Jail,LXC,LXD,但无法按照我想要的方式进行(有一台PC有多个用户,但占用空间最小)。
然而,我很高兴我找到了解决方案,并想分享它。
适用于Windows主机+ Linux来宾
在Windows中启用Hyper-V(如果支持)或下载VirtualBox
安装Docker for Windows
安装RealVNC(或任何其他VNC客户端)
使用桌面下载(拉)或创建任何Linux docker镜像 环境+ VNC(可选:wine,winetricks,playonlinux用于运行windows应用程序+ cimb-utils [用于smb共享网络文件夹])
在powershell中使用相同的图像部署多个容器+分配每个容器 不同的vnc端口,例如:
对于VNC + Samba网络共享+ vncpassword
- docker run -it --user 0 -d -p 5900 :5900 -e VNC_PW = passwd --privileged --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH - security-opt seccomp = unconfined ubuntu
仅适用于没有vncpassword的VNC(取决于容器)
docker run -d -p 5900 :5900 abrahamb / lubuntu-vnc
docker run -d -p 5901 :5900 abrahamb / lubuntu-vnc
docker run -d -p 5902 :5900 abrahamb / lubuntu-vnc
等
打开RealVNC并建立与这些地址的连接;例如:
本地主机:的 5900 强>
本地主机:的 5901 强>
本地主机:的 5902 强>
- 等
- 醇>
每个端口将导致单独的容器化桌面
这样,您将拥有一个用于部署多个容器的基本映像(例如,让一台计算机同时运行多个用户),只需要最少的RAM使用量和磁盘大小。 另一种方法是在多个Hyper-V VM中引导基本实时iso。但是,它们是RAM密集型的,只能部署几个单独的环境。
更多信息+调查结果:
Docker实际上类似于LXC,LXD和FreeBSD Jails,因为它们都是容器化图像。我相信如果我努力尝试,我可以在LXD中进行类似的设置。 FreeBSD Jails也可能是一个不错的选择。
但是,我没有尝试进一步,因为我找不到有关jails设置的足够信息。我找不到任何Youtube视频解释如何设置,只有一些文章/博客,但仍然太令人沮丧,因为我没有足够的时间进一步研究。
LXD / LXC可以配置为虚拟化桌面,但不是我想要的,因为这意味着我必须双启动/拥有Ubuntu vm。
Docker最近刚刚实现了Windows容器,但基本映像是无GUI的。然而,在Linux方面,有很多可用的图像配置了最小的桌面环境。
另外,使用Docker,我不需要运行Ubuntu / FreeBSD的VM来设置lxd / lxc / jails或双启动Linux / FreeBSD。另一个优点,Docker是跨平台(可以在Windows / Linux / MacOs中使用)。
tldr; Docker太棒了。