转载 https://www.jianshu.com/p/d132333dbf40

因为虚拟机已经是比较普及和成熟的技术,所以文章主要重点是介绍一下容器,然后容器和虚拟机的区别。

首先我们来看一下虚拟机和容器的架构图:

 

架构图

虚拟机

图中左侧是虚拟机的架构。从左图中看出,我们有4个操作系统(Operating System) 。他们是 Host Operating System 和 3个 Guest Operating System。

由于有了多个操作系统,所以虚拟机的架构中我们知道每个虚机中都有一个独立的Kernel.

什么是Kernel?

简单来讲Kernel 就是连接操作系统(OS)和硬件(Hardware)的一个中间组件。

大概个架构图如下

 

Kernel

容器

架构图的右侧为容器架构,很明显图中只有一个操作系统,即只有一个独立的Kernel.

我们知道每个操作系统有多个进程(Process)

简单来讲容器可以理解为进程沙盒(sandbox)

那到底这个进程沙盒里装了些什么呢?

  • process namespace (进程命名空间): 来规定可以使用什么资源
  • Cgroups (控制组) : 来规定可以用多少资源:如CPU,内存, 网络等
  • Union-capable file system: 把不同文件联合到一个挂载点的文件系统服务

相对虚拟机架构来讲,容器架构有什么好处呢?

左图的虚拟机架构中,我们的主机有Host 三个不同的操作系统,这个就意味着需要模拟(emulate) 三个操作系统。
对比右图的容器架构中,我们的3个容器都在一个操作系统上运行,并不需要模拟任何操作系统。所以相对左图我们会消耗更少的资源,并达到跟虚拟机架构中等同的效果。

用一张图大概描述容器相对虚拟机的优势

 

对比图

  • 容器架构降低了硬件成本
  • 更快速的部署开发/测试/生产环境
  • 更简便的维护开发/测试/生产环境
  • 与微服务架构更为契合



作者:纯正it狗
链接:https://www.jianshu.com/p/d132333dbf40
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐