为了账号安全,请及时绑定邮箱和手机立即绑定

Docker与虚拟机有什么不同?

Docker与虚拟机有什么不同?

Docker与虚拟机有什么不同?我一直在重读码头文件试图理解Docker和完整VM之间的区别。它如何设法提供完整的文件系统、隔离的网络环境等。而不是那么沉重?为什么将软件部署到Docker映像(如果这是正确的话)比简单地部署到一致的生产环境容易呢?
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

我喜欢肯·科克伦的回答。

但我想补充一些观点,这里没有详细说明。在我看来,码头在整个过程中也有所不同。与VM相比,Docker并不是(仅仅)最优的硬件资源共享,而且它还为打包应用程序提供了一个“系统”(更好,但不是必须的,作为一组微服务)。

在我看来,它适应了像rpm这样面向开发人员的工具之间的差距,德比安包裹,马文,NPM+Git在一边,操作工具(如木偶VMware,Xen,你说吧.

为什么将软件部署到码头映像(如果这是正确的术语)比简单部署到一致的生产环境容易呢?

您的问题假设了一些一致的生产环境。但是如何保持它的一致性呢?考虑一些服务器和应用程序的数量(>10),在管道中的各个阶段。

为了保持同步,你将开始使用类似木偶的东西,大厨或者你自己的配置脚本,未发布的规则和/或大量的文档.理论上,服务器可以无限期运行,并且保持完全一致和最新。实践无法完全管理服务器的配置,因此有相当大的配置漂移空间,以及对正在运行的服务器的意外更改。

因此,有一种已知的模式可以避免这种情况,即所谓的不可变服务器..但不变的服务器模式并不受欢迎。主要是因为在Docker之前使用的VM的局限性。处理几个千兆字节的大图像,移动这些大图像,仅仅为了改变应用程序中的一些字段,是非常辛苦的。可以理解.。

有了Docker生态系统,您将永远不需要在“小更改”(谢谢aufs和Registry)上移动千兆字节,您也不必担心在运行时将应用程序打包到Docker容器中会失去性能。你不需要担心那个图像的版本。

最后,您甚至可以复制复杂的生产环境,即使在Linux笔记本上也是如此(如果在您的情况下不起作用,就不要打电话给我);)

当然,您可以在VM中启动Docker容器(这是个好主意)。在VM级别上减少服务器配置。所有这些都可以由Docker来管理。

同时,Docker使用自己的实现“libContainer”来代替LXC。但LXC仍然可用。


查看完整回答
反对 回复 2019-06-13
  • 3 回答
  • 0 关注
  • 1189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信