作家
登录

虚拟机与Docker有何不同?

作者: 来源: 2017-06-01 08:55:49 阅读 我要评论

译者按:各类虚拟机技巧开启了云计算时代;而 Docker,作为下一代虚拟化技巧,正在改变我们开辟、测试、安排应用的方法。那虚拟机与Docker毕竟有何不合呢?

为了包管可读性,本文采取意译而非直译。别的,本文版权归原作者所有,翻译仅用于进修。

起首,大年夜家须要明白一点, Docker容器 不是 虚拟机 。

2014年,当我第一次接触Docker的时刻,我把它比做一种轻量级的虚拟机。如许做无可厚非,因为Docker最初的成功桥绫桥,恰是它比虚拟机更节俭内存,启动更快。Docker一向地给大年夜家宣传,”虚拟机须要数分钟启动,而Docker容器只须要50毫秒”。

然而, Docker容器 并非 虚拟机 ,我们不妨来比较一下它们。

懂得虚拟机

虚拟机与Docker有何不合?

大年夜下到上懂得上图:

  • 基本举措措施(Infrastructure) 。它可所以你的 小我电脑 ,数据中间的 办事器 ,或者是 云主机 。
  • 主操作体系(Host Operating System) 。你的小我电脑之上,运行的可能是 MacOS , Windows 或者某个 Linux 发行版。
  • 虚拟机治理体系(Hypervisor) 。应用Hypervisor,可以在 主操作体系 之上运行多个不合的 大年夜操作体系 。类型1的Hypervisor有支撑MacOS的 HyperKit ,支撑Windows的 Hyper-V 以及支撑Linux的 KVM 。类型2的Hypervisor有VirtualBox和VMWare。
  • 大年夜操作体系(Guest Operating System) 。假设你须要运行3个互相隔离的应用,则须要应用Hypervisor启动3个 大年夜操作体系 ,也就是3个 虚拟机 。这些虚拟机都异常大年夜,也许有700MB,这就意味着它们将占用2.1GB的磁盘空间。更糟糕的是,它们还会消费很多CPU和内存。
  • 各类依附 。每一个 大年夜操作体系 都须要安装很多依附。如不雅你的的应用须要连接PostgreSQL的话,则须要安装 libpq-dev ;如不雅你应用Ruby的话,应当须要安装gems;如不雅应用其他编程说话,比如Python或者Node.js,都邑须要安装对应的依附库。
  • 应用 。安装依附之后,就可以在各个 大年夜操作体系 分别运行应用了,如许各个应用就是互相隔离的。

Docker守护过程可以直接与 主操作体系 进行通信,为各个 Docker容器 分派资本;它还可以将容器与 主操作体系 隔离,并将各个容器互相隔离。 虚拟机 启动须要数分钟,而 Docker容器 可以在数毫秒内启动。因为没有痴肥的 大年夜操作体系 ,Docker可以节俭大年夜量的磁盘空间以及其他体系资本。

懂得Docker容器

应用 Docker容器 运行多个互相隔离的应用时,如下图:

虚拟机与Docker有何不合?

不难发明,比拟于 虚拟机 , Docker 要简洁很多。因为我们不须要运行一个痴肥的 大年夜操作体系 了。

大年夜下到上懂得上图:

  • 基本举措措施(Infrastructure) 。
  • 主操作体系(Host Operating System) 。所有主流的Linux发行版都可以运行Docker。对于MacOS和Windows,也有一些办法”运行”Docker。
  • Docker守护过程(Docker Daemon) 。Docker守护过程代替了Hypervisor,它是运行在操作体系之上的后台过程,负责治理Docker容器。
  • 各类依附 。对于Docker,应用的所有依附都打包在 Docker镜像 中, Docker容器 是基于 Docker镜像 创建的。
  • 应用 。应用的源代码与它的依附都打包在 Docker镜像 中,不合的应用须要不合的 Docker镜像 。不合的应用运行在不合的 Docker容器 中,它们是互相隔离的。

比较虚拟机与Docker

说了这么多Docker的优势,大年夜家也没有须要完全否定 虚拟机 技巧,因为两者有不合的应用处景。 虚拟机 更擅善于彻底隔离全部运行情况。例如,云办事供给商平日采取虚拟机技巧隔离不合的用户。而 Docker 平日用于隔离不合的应用,例如 前端 , 后端 以及 数据库 。

如不雅你对Docker感兴趣的话,不妨进修一下 Dive Into Docker course 。

应用 虚拟机 运行多个互相隔离的应用时,如下图:

【编辑推荐】

  1. 华为虚拟机机能冲破100万IOPS
  2. Ubuntu虚拟机:若何选择虚拟化软件
  3. 办事器整合:虚拟机密度大年夜未必功德
  4. 深刻懂得OpenStack虚拟机之Metadata
  5. 别随便马虎说代替:容器不会代替虚拟机
【义务编辑:51CTO_OS TEL:(010)68476606】

  推荐阅读

  HTTP Session 的工作原理以及几个思维扩展

HTTP 协定一开端被设计成如许照样有一些汗青原因的,当时的互联网多用于学术交换,只用于文┞仿信息的┞饭现之类的工作,远没有如今这么丰富多彩。所以在当时的背景下 HTTP 协定被设计成>>>详细阅读


本文标题:虚拟机与Docker有何不同?

地址:http://www.17bianji.com/lsqh/35504.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)