是否有任何操作系统虚拟化而无需安装完整的操作系统(需要多个类似的虚拟机)?

时间:2017-04-29 09:17:25

标签: linux virtual-machine hyper-v

我想拥有一个单独的虚拟化操作系统环境(最好是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,最好只是为了运行机器人和应用程序。

谢谢。

1 个答案:

答案 0 :(得分:1)

我已经尝试过FreeBSD Jail,LXC,LXD,但无法按照我想要的方式进行(有一台PC有多个用户,但占用空间最小)。

然而,我很高兴我找到了解决方案,并想分享它。

  

适用于Windows主机+ Linux来宾

     
      
  1. 在Windows中启用Hyper-V(如果支持)或下载VirtualBox

  2.   
  3. 安装Docker for Windows

  4.   
  5. 安装RealVNC(或任何其他VNC客户端)

  6.   
  7. 使用桌面下载(拉)或创建任何Linux docker镜像   环境+ VNC(可选:wine,winetricks,playonlinux用于运行windows应用程序+ cimb-utils [用于smb共享网络文件夹])

  8.   
  9. 在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

    •   
    •   
  10.   
  11. 打开RealVNC并建立与这些地址的连接;例如:

         
        
    • 本地主机:的 5900

    •   
    • 本地主机:的 5901

    •   
    • 本地主机:的 5902

    •   
    •   
  12.   
  13. 每个端口将导致单独的容器化桌面

  14.   

这样,您将拥有一个用于部署多个容器的基本映像(例如,让一台计算机同时运行多个用户),只需要最少的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太棒了。