译者按: 各类虚拟机技术开启了云计算时代;而Docker,做为下一代虚拟化技术,正在改变咱们开发、测试、部署应用的方式。那虚拟机与Docker究竟有何不一样呢?前端
原文: Comparing Virtual Machines vs Docker Containersdocker
译者: Fundebug数据库
为了保证可读性,本文采用意译而非直译。另外,本文版权归原做者全部,翻译仅用于学习。编程
首先,你们须要明确一点,Docker容器不是虚拟机。后端
2014年,当我第一次接触Docker的时候,我把它比作一种轻量级的虚拟机。这样作无可厚非,由于Docker最初的成功秘诀,正是它比虚拟机更节省内存,启动更快。Docker不停地给你们宣传,"虚拟机须要数分钟启动,而Docker容器只须要50毫秒"。服务器
然而,Docker容器并不是虚拟机,咱们不妨来比较一下它们。编程语言
使用虚拟机运行多个相互隔离的应用时,以下图:学习
使用Docker容器运行多个相互隔离的应用时,以下图:测试
不难发现,相比于虚拟机,Docker要简洁不少。由于咱们不须要运行一个臃肿的从操做系统了。云计算
Docker守护进程能够直接与主操做系统进行通讯,为各个Docker容器分配资源;它还能够将容器与主操做系统隔离,并将各个容器互相隔离。虚拟机启动须要数分钟,而Docker容器能够在数毫秒内启动。因为没有臃肿的从操做系统,Docker能够节省大量的磁盘空间以及其余系统资源。
说了这么多Docker的优点,你们也没有必要彻底否认虚拟机技术,由于二者有不一样的使用场景。虚拟机更擅长于完全隔离整个运行环境。例如,云服务提供商一般采用虚拟机技术隔离不一样的用户。而Docker一般用于隔离不一样的应用,例如前端,后端以及数据库。
若是你对Docker感兴趣的话,不妨学习一下Dive Into Docker course。
欢迎加入咱们Fundebug的Docker技术交流群: 305097057。
版权声明:
转载时请注明做者Fundebug以及本文地址: https://blog.fundebug.com/2017/05/31/docker-and-vm/