我想要一个单独的虚拟化操作系统环境(最好是 Windows,但也欢迎 Linux),但在非常小的 RAM 上运行来运行机器人应用程序。 我已经尝试过 Hyper-V(具有磁盘差异)和 VMware(具有链接/即时克隆)以及 Virtualbox 和 qemu,但到目前为止它们需要完整的操作系统安装,并且会占用如此多的空间。
基本上,我只需要多个类似的环境(接近 100 个),而没有大的 HDD 空间,并且我从本地网络文件夹运行所有应用程序。 (类似于在一个vhd下运行多个虚拟机,但我不想占用那么多HDD空间)
我尝试使用一张定制的 Lubuntu livecd 和 WINPE live CD(Gandalf 的 WINPE 7)在多个 Hyper-V 虚拟机上启动。它们启动得很好,但 Gandalf 的 WINPE 不是完整的 Windows,需要较高的 RAM 使用率,而在 Linux 端,我无法在 WINE 下很好地运行我的 Windows 脚本 + 应用程序,尽管 Linux 内存管理要好得多,而且如果需要的话,我仍然可以使用更小的发行版,例如 Damn Small Linux。
我检查了 Microsoft 的 App-V,但它只是虚拟化了应用程序,而不是设置新的独立环境。我需要一个带有自己的鼠标指针的新环境,但需要非常小的 RAM,最好仅用于运行机器人和应用程序。
谢谢。
最佳答案
我尝试过 FreeBSD Jail、LXC、LXD,但无法按照我想要的方式实现(拥有一台具有多个用户的 PC,但占用空间最小)。
但是,我很高兴找到了解决方案并愿意分享。
这样,您将拥有一个用于部署多个容器的基础镜像(例如让一台计算机同时运行多个用户),只需要最少的 RAM 使用量和磁盘大小。 另一种方法是在多个 Hyper-V VM 中启动基本实时 ISO。然而,它们是 RAM 密集型的,只能部署几个单独的环境。For Windows host machine + Linux guest
Enable Hyper-V in Windows (if supported) or download VirtualBox
Install Docker for Windows
Install RealVNC (or any other VNC client)
Download (pull) or create any linux docker image with desktop environment + VNC (optional: wine, winetricks, playonlinux for running windows apps + cimb-utils [it is for smb sharing network folder])
In powershell deploy multiple container using same image + assign each different vnc port, for example :
For VNC + Samba network sharing + 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
For only VNC without vncpassword (depends on container)
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
etc
Open RealVNC and setup a connection to these addresses; for example :
localhost:5900
localhost:5901
localhost:5902
- etc
Each ports will lead to separate containerised desktops
更多信息+发现:
Docker 实际上与 LXC、LXD 和 FreeBSD Jails 有点相似,因为它们都是容器化镜像。我相信,如果我足够努力,我可以在 LXD 中进行类似的设置。 FreeBSD Jails 也可能是一个不错的选择。
但是,我没有进一步尝试,因为我找不到有关 jail 设置的足够信息。我找不到任何解释如何设置的 Youtube 视频,只有一些文章/博客,但仍然太令人沮丧,因为我没有足够的时间进一步研究。
LXD/LXC 可以配置为虚拟化桌面,但不完全是我想要的,因为这意味着我必须双启动/拥有 Ubuntu 虚拟机。
Docker 最近刚刚实现了 Windows 容器,但基础镜像是无 GUI 的。然而,在 Linux 方面,有相当多的可用镜像已配置了最低限度的桌面环境。
此外,使用 Docker,我不需要运行 Ubuntu/FreeBSD 的虚拟机来设置 lxd/lxc/jails 或双引导 Linux/FreeBSD。另一个优点是,Docker 是跨平台的(可以在 Windows/Linux/MacO 中使用)。
tldr; Docker 太棒了。
关于linux - 是否有任何操作系统虚拟化而无需安装完整的操作系统(需要多个类似的虚拟机)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43693862/