在虚拟机上使用Docker有什么意义?

Docker新手Docker被描述为虚拟机的替代品。 我现在读了一些,这是有道理的。 我不完全明白的是,为什么你会在虚拟机上使用Docker。 这正是AWS现在提供的豆荚。

这是否仅仅是因为大多数托pipe是基于虚拟机的,而且Docker为您提供了灵活性,即使它不是取代虚拟机,它仍然(可能取决于用例)值得使用吗?

我们使用的用例是,您可以在真实的盒子,虚拟机,不同的操作系统等上使用相同的Docker镜像,并拥有相同的受控环境。

即使你只打算在一种types的机器上运行(例如在EC2虚拟机上),你仍然可能在你的笔记本电脑或台式机上开发它,所以使用它可能是有意义的。

最重要的是,Docker的开销非常小(或者至less是这个想法),所以即使在虚拟硬件上运行也不会影响性能。 这与“真正的”虚拟机(没有双关语,但听起来不错:)),这将在类似的情况下会带来很大的开销。

基础设施副总裁埃里克·布鲁尔(Eric Brewer)表示 ,谷歌的所有产品都运行在Linux容器中

但Google的所有内容都不在虚拟机中运行。

是的,当需要不同的操作系统时使用KVM,公共计算平台服务(现在)在VM内部运行Docker,可能是为了更强大的隔离和控制。 否则,Google的大部分容器都是裸机。 为什么增加额外的开销

如果你知道不同,请纠正我。

在今天的企业中,虚拟机与容器的比例可能是99:1。到30/70或20/80要多久?

虽然Kubernetes和其他容器编排工具可能永远不会达到vSphere的光泽和易用性,但我现在不希望成为虚拟化供应商。

任何第一次遇到容器世界的人都会奇怪,在虚拟机之上使用Docker有什么意义? ..我不是例外。

虽然这可以很简单地回答,但正如大家所指出的那样,容器只是在大多数云提供商当前发生的虚拟机内部运行, 以确保应用程序的隔离 。 但众所周知的事实是,迁移到容器并不能简单地提供虚拟机的安全性。 这就是容器运行在虚拟机之上的原因,以利用pipe理程序提供的已build立和validation的安全性

是的,Linux上改进的容器安全性和隔离性已经到了可以使用裸机容器服务的地步,而无需使用虚拟机进行隔离。 IBM的Bluemix云服务就是这种情况的好例子。 Bluemix已经在公共Bluemix云服务上构build了一个托pipe容器服务,该服务在应用程序之间运行时没有VM隔离。

VMWareIntelHyper ..等公司正在研究构build基于虚拟机的快速架构,以实现Docker API,以获得基于容器的工作stream和pipe理程序安全性的速度。

然而,为了保持容器的灵活性优势,每个虚拟机中运行多个容器,而且更关心安全性的组织可以使用虚拟机来分离在不同安全级别运行的容器。 例如银行部门,容器处理客户账户和支付信息可以在单独的节点上被调度为面向面向用户的网站预留的节点。