Docker教程:Docker与传统虚拟机的区别

Docker教程:Docker与传统虚拟机的区别


     容器与虚拟机有着类似的资源隔离和分配的优点,但拥有不同的架构方法,容器架构更加便携,高效。

特性虚拟机的架构容器的架构
启动分钟级秒级
性能弱于原生接近原生
硬盘使用一般为GB一般为MB
系统支持量一般几十个单机上千个容器

     传统虚拟化是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层,而Docker容器是在操作系统层面实现虚拟化,直接复用本地主机操作系统,更加轻量级。

     虚拟机的架构: 每个虚拟机都包括应用程序、必要的二进制文件和库以及一个完整的客户操作系统(Guest OS),尽管它们被分离,它们共享并利用主机的硬件资源,将近需要十几个 GB 的大小。
在这里插入图片描述
     容器的架构: 容器包括应用程序及其所有的依赖,但与其他容器共享内核。它们以独立的用户空间进程形式运行在主机操作系统上。他们也不依赖于任何特定的基础设施,Docker 容器可以运行在任何计算机上,任何基础设施和任何云上。
在这里插入图片描述
     Docker 的容器利用了 LXC,管理利用 namespaces 来做权限的控制和隔离,利用cgroups 来进行资源的配置,并且还通过 aufs 来进一步提高文件系统的资源利用率,而这些技术都不是 Docker 独创。

     LXC 与虚拟机的不同之处在于,它是一个操作系统级别的虚拟化环境,而不是硬件虚拟化环境。他们都做同样的事情,但 LXC 是操作系统级别的虚拟化环境,虚拟环境有它自己的进程和网络空间,而不是创建一个完整成熟的虚拟机。因此,一个 LXC 虚拟操作系统具有最小的资源需求,并启动只需几秒钟。

     正如你可以在下图中看到的,左侧是 LXC 虚拟的 Ubuntu ,默认安装使用 11 MB 大小。
在这里插入图片描述

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页