Vagrant 与 Docker 中的隔离

Posted

技术标签:

【中文标题】Vagrant 与 Docker 中的隔离【英文标题】:Isolation in Vagrant vs. Docker 【发布时间】:2014-09-02 06:31:58 【问题描述】:

为什么当 Vagrant 运行一个新的操作系统并隔离其中的所有内容时,Vagrant 不被视为隔离,而 Docker 是?当有人说:“如果您正在寻找隔离,请使用 Docker”时,隔离是什么意思?

【问题讨论】:

Should I use Vagrant or Docker.io for creating an isolated environment?的可能重复 【参考方案1】:

隔离的意思是“仅隔离”,即不是虚拟化。当您想在 linux 上运行 linux 应用程序时,我们正在谈论隔离;当您想在任何操作系统之上运行任何应用程序时,我们就会谈论虚拟化。

你从哪里读到 Vagrant 不被认为是孤立的?

实际上,这个说法是正确的,因为 Vagrant 既不是 Container 后端也不是 VirtualMachine。这是一个经理。它可以管理 VirtualBox、VMWare 和现在的 Docker。根据您的需求,您可以通过 VirtualBox 或 Docker 通过 Vagrant 实现隔离,但 Vagrant 本身不提供隔离。

现在 Vagrant 支持 Docker,如果需要,你可以使用它;但是,Docker 本身非常简单,恕我直言,不需要像 Vagrant 这样的工具。另一方面,当您在玩虚拟机时,Vagrant 非常有帮助。

【讨论】:

【参考方案2】:

Vagrant 只是一个创建虚拟机(甚至是云实例和 Docker 容器)的工具。 Vagrant 本身对隔离没有任何作用。但是,它可以处理的工具(例如虚拟机或 Docker)可以用于隔离(但也可以用于许多其他事情,隔离只是众多方面之一)。

有关 Docker 和 VM 之间差异的一些启发,请参阅How is Docker different from a normal virtual machine?

【讨论】:

【参考方案3】:

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.

【讨论】:

以上是关于Vagrant 与 Docker 中的隔离的主要内容,如果未能解决你的问题,请参考以下文章

我应该使用 Vagrant 还是 Docker 来创建隔离环境? [关闭]

Vagrant 搞砸了代码?

vagrant 怎么安装 lnmp 环境

virtualBox结合vagrant离线安装centos7

vagrant快速搭建LNMP环境并且打包带走留着以后用

使用vagrant与virtualbox简易安装centos7 与 docker