首页 > 其他分享 >容器技术和虚拟化的比较

容器技术和虚拟化的比较

时间:2023-10-11 13:32:53浏览次数:30  
标签:容器 操作系统 虚拟化 虚拟机 轻量级 比较 运行

容器概念与特点

容器(Container):一种轻量级的虚拟化技术,这种技术允许操作系统上的用户空间被分割成几个独立的单元在内核中运行,彼此互不干扰。这样一个独立的空间,就称之为一个“容器”。

容器技术和虚拟化的比较_容器

如果把容器比作集装箱的话,应用就相当于集装箱里的货物。

容器技术和虚拟化的比较_虚拟化_02

容器类似“集装箱”,应用好比“货物”

容器为应用软件及其依赖组件提供了一个资源独立的运行环境应用软件所依赖的组件会被打包成一个可重用的镜像,镜像运行环境并不会与主机操作系统共享内存、CPU和硬盘空间,由此也保证了容器内部的进程与容器外部进程的独立关系。

举个例子,一个操作系统,可以类比成一套公寓,那么容器就相当于公寓中的一个房间,大家共享同一个客厅,厨房和卫生间。但是房间和房间之间彼此隔离,一个房间里面的人的活动,不会影响到其他房间的住客。房间也有门,因此有一定的安全隔离保障。

容器的技术特点

  • 容器是自包含的。它打包了应用程序及其所有依赖,可以直接运行。
  • 容器是可移植的。可以在几乎任何地方以相同的方式运行。这就可以确保应用在开发环境、测试环境、生产环境等都有完全一样的运行环境。
  • 容器是轻量级的。占用资源很少,可以秒级启动。
  • 容器是互相隔离的。同一主机上运行的多个容器,不会互相影响。

容器技术和虚拟化的比较

在虚拟化架构中,底层是硬件,往上是虚拟化层hypervisor,之上安装虚拟机操作系统,接着配置应用运行所需的依赖环境,然后安装APP。而在容器架构中,底层也是硬件,往上是操作系统而不是虚拟化层hypervisor,再安装容器引擎,就可以在容器中配置应用运行依赖并安装APP。

容器技术和虚拟化的比较_虚拟化技术_03

这两种架构,一个很直观的对比结果是,容器的运行不需要再额外安装虚拟机操作系统。可见,容器是一种比虚拟机更轻量级的虚拟化技术支持秒级启动具备更好的快速扩展能力,具备更好的跨平台迁移能力。当然也由于这个原因,容器的隔离性上不如虚拟机。两者主要差异如下:

  • 虚拟机OS占用了较多资源,一个虚拟机基本是GB 级的,一个容器可小至几MB。
  • 虚拟机的启动时间一般是分钟级的,而容器的启动时长是毫秒级的。
  • 由于容器的轻量级,它具备了更好的快速扩展能力。
  • 容器比虚拟机具备更好的跨平台迁移能力,如虚拟机无法从Vmware迁移至KVM。

标签:容器,操作系统,虚拟化,虚拟机,轻量级,比较,运行
From: https://blog.51cto.com/u_7575433/7809735

相关文章

  • Docker容器基础知识
    Docker容器基础知识Docker是一个流行的用Go语言开发的开源项目,基于Linux内核的cgroup、namespace及AUFS等技术,对进程进行封装隔离,由Dotcloud公司开发。Docker已成为容器行业的事实标准。Docker是众多容器实现中最流行的技术,是容器技术的事实标准,其他知名的还有:rkt, Podman......
  • 顺序容器(vector、deque、list、forward_list、array 、string)
    一、顺序容器概述   顺序容器提供了控制元素存储和访问顺序的能力,顺序与元素加入容器时的位置相对应。1、常见的顺序容器类型:vector:可变大小的数组。支持快速随机访问,在尾部之外的位置插入或者删除元素可能很慢。deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很......
  • 关联容器(map、set、multimap、multiset、pair、unordered_map)
    一、使用关联容器key---value)对:关键字起到索引的作用,值则表示与索引相关联的数据。set中每个元素只包含一个关键字;set支持高效的关键字查询操作---检查一个关键字是否在set中。multimap允许多个元素具有相同的关键字。   pair类型用于保存两个数据类型,pair的数据成员是public......
  • 顺序容器(vector、deque、list、forward_list、array 、string)
    一、顺序容器概述   顺序容器提供了控制元素存储和访问顺序的能力,顺序与元素加入容器时的位置相对应。1、常见的顺序容器类型:vector:可变大小的数组。支持快速随机访问,在尾部之外的位置插入或者删除元素可能很慢。deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快......
  • Spring源码解析——ApplicationContext容器refresh过程
    正文在之前的博文中我们一直以BeanFactory接口以及它的默认实现类XmlBeanFactory为例进行分析,但是Spring中还提供了另一个接口ApplicationContext,用于扩展BeanFactory中现有的功能。ApplicationContext和BeanFactory两者都是用于加载Bean的,但是相比之下,ApplicationContext提供了......
  • Oracle建立索引前后性能比较
    1.SQL语句createtableC##HR.t_noindexasselect*fromall_objects;createtableC##HR.t_indexedasselect*fromall_objectscreateindexowner_idxonC##HR.t_indexed(owner);select*fromC##HR.t_noindexwhereowner='SYSTEM';select*fromC##H......
  • 在JavaScript比较中,应该使用哪个等号运算符(== vs ===)?
    内容来自DOC[https://q.houxu6.top/?s=在JavaScript比较中,应该使用哪个等号运算符(==vs=)?](https://q.houxu6.top/?s=在JavaScript比较中,应该使用哪个等号运算符(vs===)?)我正在使用JSLint来检查JavaScript代码,并且它返回了许多建议,建议在if语句中比较idSele_UNVEHtype.value.......
  • TypeScript与JavaScript比较(区别)
     TypeScript和JavaScript是目前项目开发中较为流行的两种脚本语言,TypeScript是JavaScript的一个超集,但是TypeScript与JavaScript之间又有什么样的区别呢?在选择开发语言时,又该如何抉择呢?本文将会深入对比这两种语言,讨论两种语言之间的关联和差异,并概述两种语言各自的优势......
  • 【Docker】镜像容器记录
    ..跳过安装docker教程,直接开始一.容器镜像加速拉取镜像速度太慢,使用阿里云的镜像加速地址:https://cr.console.aliyun.com/cn-shanghai/instances/mirrors找到容器镜像加速,按操作文档cv重启docker即可二.镜像仓库/下载镜像docker镜像搜索命令是dockersearch镜像名称......
  • 容器网络之Calico
    Calico网络的大概思路,即不走Overlay网络,不引入另外的网络性能损耗,而是将转发全部用三层网络的路由转发来实现。首先,如果全部走三层的路由规则,没必要每台机器都用一个docker0,从而浪费了一个IP地址,而是可以直接用路由转发到vethpair在物理机这一端的网卡。同样,在容器内,路由......