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

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


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

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

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

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

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

     正如你可以在下图中看到的,左侧是 LXC 虚拟的 Ubuntu ,默认安装使用 11 MB 大小。
Docker教程:Docker与传统虚拟机的区别_第3张图片

你可能感兴趣的:(容器化Docker)