【发布时间】:2014-09-02 06:31:58
【问题描述】:
为什么当 Vagrant 运行一个新的操作系统并隔离其中的所有内容时,Vagrant 不被视为隔离,而 Docker 是?当有人说:“如果您正在寻找隔离,请使用 Docker”时,隔离是什么意思?
【问题讨论】:
为什么当 Vagrant 运行一个新的操作系统并隔离其中的所有内容时,Vagrant 不被视为隔离,而 Docker 是?当有人说:“如果您正在寻找隔离,请使用 Docker”时,隔离是什么意思?
【问题讨论】:
隔离的意思是“仅隔离”,即不是虚拟化。当您想在 linux 上运行 linux 应用程序时,我们正在谈论隔离;当您想在任何操作系统之上运行任何应用程序时,我们就会谈论虚拟化。
你从哪里读到 Vagrant 不被认为是孤立的?
实际上,这个说法是正确的,因为 Vagrant 既不是 Container 后端也不是 VirtualMachine。这是一个经理。它可以管理 VirtualBox、VMWare 和现在的 Docker。根据您的需求,您可以通过 VirtualBox 或 Docker 通过 Vagrant 实现隔离,但 Vagrant 本身不提供隔离。
现在 Vagrant 支持 Docker,如果需要,你可以使用它;但是,Docker 本身非常简单,恕我直言,不需要像 Vagrant 这样的工具。另一方面,当您在玩虚拟机时,Vagrant 非常有帮助。
【讨论】:
Vagrant 只是一个创建虚拟机(甚至是云实例和 Docker 容器)的工具。 Vagrant 本身对隔离没有任何作用。但是,它可以处理的工具(例如虚拟机或 Docker)可以用于隔离(但也可以用于许多其他事情,隔离只是众多方面之一)。
有关 Docker 和 VM 之间差异的一些启发,请参阅How is Docker different from a normal virtual machine?
【讨论】:
Docker: 将application 与其运行的底层Operating System 分开。
Docker virtualise the Operating System for the application.
Vagrant 是一个虚拟机管理器,所以让我们将虚拟机与 Docker 进行比较。
虚拟机: 将Operating System 与其运行的底层hardware 分开。
virtual machine virtualise the hardware for the operating system.
【讨论】: