码迷,mamicode.com
首页 > 其他好文 > 详细

容器vs.虚拟机:系统设计决定工具

时间:2016-02-29 21:36:42      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

在《容器vs.虚拟机:状态管理、网络和蔓延》中我们提到了应用Docker时可能会碰到的困难以及容器技术和虚拟机架构各自的优势与劣势。我们讨论了状态管理、网络和蔓延等广泛存在于IT行业的问题。虽然对于Docker来说解决这些问题的难度可能更大些,不过Docker与虚拟机相比也有着自己的优势。

当我们谈到虚拟机蔓延时所考虑的是资源管理上的问题。如果说的是关闭容器的话,Docker就有一个明显的优势-镜像的确定性。Docker容器我们可以清晰地查看镜像的历史和状态,所以要找出那些使用同一镜像的容器是非常方便的。

容器的替换也很容易。对于虚拟机我们需要管理磁盘快照、镜像和版本等等,但对Docker来说这些工作都可以轻松完成所以蔓延的风险并不是很大。

就网络功能来说虚拟机确实更加灵活,支持的配置和拓扑也更多。不过对Docker来说,如果容器在同一主机可以使用桥接网络,各个主机间也可以使用overlay网络。Docker还推出了一个将引擎聚合成swarm单元的功能来方便容器的管理,聚合成swarm单元的容器可以被视为同一个Docker引擎暴露给外界。从管理的角度来看这为Docker提供了某种程度的自主性,swarm和容器可以分开管理互不干涉。技术不管简单还是复杂,只要能解决问题就可以。

虚拟机挂起是一个很有用的功能,不过要是对比的话Docker可以用一种不同的流程来实现和虚拟机挂起类似的功能。Docker可以轻松地启动和关闭一个轻量级的环境,这一过程是完全自动的,而且可靠性很高,所以只要启用一个新的容器就好。如果比较的是服务的运行时间而不是某个机器的运行时间的话,Docker未必有明显的劣势。

一个服务器连续运行几年固然是给人印象很深的一个成绩,但对于无状态应用模型来说根本没必要。Docker启动关闭容器和生成镜像的便捷使得启用一个新的容器非常方便。机器运行的时间越长,出问题的机会也就越大。

在我们选择工具的时候有一个原则:系统设计决定工具而不是工具决定设计,所以在需要用容器的时候就应该大胆地用,不要被它不如虚拟机的地方束缚了。

容器vs.虚拟机:系统设计决定工具

标签:

原文地址:http://www.cnblogs.com/shidaifazhan/p/5228902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!