【问题标题】:Can a VM/Container be run without requiring host system libraries?可以在不需要主机系统库的情况下运行 VM/容器吗?
【发布时间】:2020-02-22 16:05:54
【问题描述】:

我们开发的一些软件,我们已经将它“封装”到一个虚拟机中,我们使用 Virtualbox 以非交互方式在命令行中运行(没有图形界面)。我们向虚拟机发送一些指令,它会输出一些结果文件。我们已经在 Linux 机器上进行了本地测试。现在我们想把它发送给许多使用 Linux 的人,但我们意识到他们会有不同的发行版、系统库版本等,然后我们的 VM 可能会失败。所以我的问题是,有可能拥有不需要使用系统库的静态二进制版本的 Virtualbox(或任何其他类似的系统/VM/容器),因此它可以像静态二进制一样运行?

【问题讨论】:

  • Docker 有 statically linked binaries - 它可能是您描述的案例中最合适的工具
  • 是的,但是我们需要运行守护进程;在某些机器上,普通用户无法安装守护进程

标签: binary virtual-machine virtualbox


【解决方案1】:

了解您的解决方案对系统库和类型的“特殊”要求是很重要的。

如果您使用标准主机配置,则标准 VirtualBox 安装应该能够在任何主机操作系统上运行 VM。

由于 VM 运行自己的内核,因此在大多数情况下,它不依赖于主机库。访问/控制主机资源(磁盘、网络等)时例外。话虽如此,VirtualBox 提供了访问对 VM 透明的最常见资源(磁盘、网络等)的方法。这意味着无论主机是 Win、Linux 还是 Mac,VM 将始终以相同的方式进行配置,并且您可以在 Linux 上导出 VM 并将其导入其他平台,而无需对其进行调整。

容器(例如 dockers)更复杂,因为它共享主机的内核,并且取决于主机内核的配置方式。

同样,如果您的应用程序不依赖于对主机资源的“特殊”访问,Docker 将在所有主机操作系统上以相同的方式运行(Linux 提供本机内核,而 Win 和 Mac 运行 linux 虚拟机,然后里面有码头工人)

如果您认为这不能回答您的问题,请分享有关您的应用程序的“特殊”需求/配置的更多详细信息,以便我们深入研究。

【讨论】:

  • 你是对的。我的另一个问题是,普通用户可以在不安装任何东西的情况下在远程主机上使用 VirtualBox 吗?
  • 这在很大程度上取决于之前在远程主机上是否安装了 VirtualBox,以及之前是否安装了 VirtualBox。如果没有预先安装,可能会很困难,因为安装 VirtualBox 往往需要管理员权限。与容器相同,如果用户事先没有得到管理员的授权,那么运行虚拟机或容器可能会很困难。
【解决方案2】:

您是否考虑过提供可在不同主机系统上运行的可移植虚拟机实例?

这个例子展示了如何为 Windows 主机创建一个,查看here,但我确信它也可以用于不同的主机系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多