本文共 1993 字,大约阅读时间需要 6 分钟。
原文:
为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。
首先,大家需要明确一点,Docker容器不是虚拟机。
2014年,当我第一次接触Docker的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为Docker最初的成功秘诀,正是它比虚拟机更节省内存,启动更快。Docker不停地给大家宣传,"虚拟机需要数分钟启动,而Docker容器只需要50毫秒"。
然而,Docker容器并非虚拟机,我们不妨来比较一下它们。
使用虚拟机运行多个相互隔离的应用时,如下图:
<div style="text-align: center;">
<img style="width:60%;" src="docker-and-vm/vm.jpg" /></div>使用Docker容器运行多个相互隔离的应用时,如下图:
<div style="text-align: center;">
<img style="width:60%;" src="docker-and-vm/docker.jpg" /></div>不难发现,相比于虚拟机,Docker要简洁很多。因为我们不需要运行一个臃肿的从操作系统了。
Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。
说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。
如果你对Docker感兴趣的话,不妨学习一下。
专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了7亿+错误事件,得到了Google、360、金山软件、百姓网等众多知名用户的认可。欢迎免费试用!
转载时请注明作者以及本文地址:
转载于:https://blog.51cto.com/13957060/2318661