美文网首页Python程序员软件开发
虚拟机(Virtual Machine)和容器(Containe

虚拟机(Virtual Machine)和容器(Containe

作者: 纯正it狗 | 来源:发表于2018-03-06 18:29 被阅读7752次

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

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


    架构图

    虚拟机

    图中左侧是虚拟机的架构。从左图中看出,我们有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个容器都在一个操作系统上运行,并不需要模拟任何操作系统。所以相对左图我们会消耗更少的资源,并达到跟虚拟机架构中等同的效果。

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


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

    相关文章

      网友评论

        本文标题:虚拟机(Virtual Machine)和容器(Containe

        本文链接:https://www.haomeiwen.com/subject/islrfftx.html