『现学现忘』Docker相关概念 — 8、虚拟化技术和容器技术的关系
1、云计算中虚拟化技术和容器技术到的关系
通过一个关于房间和住人的小问题,我们来初步的理解一下虚拟化技术和容器技术的关系。
首先有一个大前提就是一个房间只允许一家人来住。这个房间很大,500平米,有床、有厨房、有卫生间。你一家一共就3口人,就你一家人住,别人家只好再找房子,好浪费,资源利用率好低啊。(房子就相当于计算机的硬件基础)
首先是虚拟化上场了,把这个大房子从隔成20间小房子。注意不是那种真砌墙的方式来分隔,而是比如拉上布帘的方式。(不是把硬件真正的分割,而是按需求,虚拟分割。)注意,每个小“房间”是一个独立的空间,都有床、有厨房、有卫生间。这样就可以住20户人家了。这样资源利用率真就提高了,但还是有问题,厨房、卫生间并不是这20家人都会同时使用的啊。(厨房、卫生间相当于Guest OS
和Host OS
操作系统)
此时,该容器上场了!还是刚才500平的那个大房间。容器也是分隔,由于并不是每家人都要同时使用厨房、卫生间。所以可以把刚才的房间隔成50间,每家只有床是独立的。厨房和卫生间则采用公共的,按使用情况进行分配即可。这样就能住50家人了,资源利用率真就大大提高了。(只留下Host OS
操作系统,去掉了占用过多无效资源的Guest OS
操作系统)
所以说,容器是一种轻量级的虚拟化技术,在同等配置的服务器上,容器技术能够轻松更多的应用。对于每一个容器,他们其实是使用同一个宿主机的内核和系统库文件(相当于刚才说的公开卫生间和厨房)。
2、虚拟机和容器对比
这里我们直接通过虚拟机和容器技术的剖析图来分析,就更容易看出容器虚拟化是如何在效率上完胜虚拟机的。
下面两张图很清楚的说明了虚拟机和容器差别:
由于没有了虚拟操作系统和虚拟机监视器这两个层次,大幅减少了应用程序运行带来的额外消耗。
更准确的来说,所有在容器中的应用程序,其实完全运行在了宿主操作系统中,与其他真实运行在其中的应用程序,在指令运行层面是完全没有任何区别的。
下表总结了使用Docker容器技术与传统虚拟机技术的特性比较。
3、虚拟化技术和容器技术区别
传统虚拟化技术从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机(Virtual Machine
)来称呼。
Container
技术则是直接将一个应用程序所需的相关程序代码、函式库、环境配置文件都打包起来建立沙盒执行环境,Container
技术产生的环境就称为Container
。
(1)两者具体区别
- 虚拟机需要安装操作系统(安装
Guest OS
)才能执行应用程序,而Container
内不需要安装操作系统就能执行应用程序 Container
技术不是在OS
外在建立虚拟环境,而是在OS
内的核心系统层来打造虚拟执行环境,透过共享Host OS
的作法,取代一个一个Guest OS
的功用。Container
也因此被称为是OS
层的虚拟化技术。
(2)Container是轻量级虚拟化技术
Container
技术采取共享Host OS
的作法,而不需在每一个Container
内执行Guest OS
,因此建立Container
不需要等待操作系统开机时间,不用1分钟或几秒钟就可以启用,远比需要数分钟甚至数十分钟才能开启的传统虚拟机来的快。
参考:
『现学现忘』Docker相关概念 — 8、虚拟化技术和容器技术的关系的更多相关文章
- 『现学现忘』Docker相关概念 — 1、云计算概念
目录 1.云计算的概念 2.示例说明云计算 3.小故事说明云计算 "云计算"这个词,相信大家都非常熟悉. 作为信息科技发展的主流趋势,它频繁地出现在我们的眼前.伴随它一起出现的,还 ...
- 『现学现忘』Docker相关概念 — 2、云计算的服务模式
目录 1.最底层的,就是IaaS 2.再往上,就是PaaS 3.继续往上,就是SaaS 4.IaaS.SaaS.PaaS三者之间的关系 上一篇文章详细介绍了什么是云计算: 云是一种服务,可以像使用水. ...
- 『现学现忘』Docker相关概念 — 3、IaaS、SaaS、PaaS服务模式补充
目录 1.IaaS服务模式 2.PaaS服务模式 (1)何时使用PaaS (2)PaaS的特点 (3)PaaS优势 3.SaaS服务模式 云计算通俗来说就是输入/输出和计算不在一个主机上.计算要用到计 ...
- 『现学现忘』Docker相关概念 — 4、虚拟化概念
目录 1.虚拟化的概念 2.为什么出现虚拟化 3.虚拟化技术 1.虚拟化的概念 虚拟化是指通过虚拟化技术将计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操 ...
- 『现学现忘』Docker相关概念 — 6、虚拟化技术分类
目录 1.按照虚拟化的程度分类 (1)完全虚拟化技术 (2)半虚拟化技术 (3)完全虚拟化与半虚拟化优缺点 2.从虚拟化架构分类 (1)寄居架构 (2)裸金属架构 虚拟化是一个广义的术语,是指计算元件 ...
- 『现学现忘』Docker基础 — 16、Docker中的基本概念和底层原理
目录 1.Docker的底层原理 2.Docker中常用的基本概念 3.run命令的运行流程 4.为什么Docker比VM快 Docker架构图: 我们依照Docker架构图进行Docker基础概念的 ...
- 『现学现忘』Docker常用命令 — 20、容器常用命令(二)
提示:接上一篇 目录 9.后台启动容器 10.查看容器日志 11.查看容器内运行的进程 12.查看容器内部细节 9.后台启动容器 后台启动容器也叫启动守护式容器. 命令:docker run -d 镜 ...
- 『现学现忘』Docker常用命令 — 21、容器常用命令(三)
目录 13.进入正在运行的容器并以命令行交互 (1)方式一 (2)方式二 (3)attach和exec的区别 14.从容器内拷贝文件到主机上 15.Docker常用命令小结 (1)容器生命周期管理 ( ...
- 『现学现忘』Docker基础 — 29、Docker容器数据卷的应用
目录 1.验证容器和宿主机之间数据共享 2.容器停止退出后,主机修改后数据是否同步 3.带只读权限的挂载数据卷 1.验证容器和宿主机之间数据共享 通过上面的操作,接下来我们演示一下通过数据卷的挂载,实 ...
随机推荐
- python 小兵内置函数进制转换
Python内置函数进制转换的用法 使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Conve ...
- HTML图片轮播
一.纯 CSS 实现图片轮播 引自原文作者:南张人 原文链接:https://blog.csdn.net/u011848617/article/details/80468463 理论基础 CSS3 a ...
- 有关OPenCV的几个库函数的使用
转载请注明来源:https://www.cnblogs.com/hookjc/ 1) IplImage* cvCreateImage( CvSize size, int depth, int chan ...
- kubeadm部署安装+dashboard+harbor
kubeadm 部署安装+dashboard+harbor master(2C/4G,cpu核心数要求大于2) 192.168.80.10 docker.kubeadm.kubelet.kubectl ...
- H5架构和原生架构的区别
1.App的3种开发方式 表面上看,手机App都是同样的东西,就是手机上的应用程序,点击图标就能运行,但是它们的底层技术不一样.按照开发技术,App可以分成三大类.原生应用(简称nativeApp), ...
- linux_16
对常用I/O模型进行比较说明 nginx中的模块分类及常见核心模块有哪些 描述nginx中worker_processes.worker_cpu_affinity.worker_rlimit_nofi ...
- Feign 动态URL 解决记录
Feign中使用动态URL请求 (应当是spring-cloud-starter-openfeign,不知道和一般的feign有何差别) 在spring项目下,假设有这样个Feign的消费接口,原来写 ...
- HTTP缓存协议实战
一.什么是缓存 缓存,又称作Cache,我们把临时存储数据的地方叫做缓存池,缓存池里面放的数据就叫做缓存.当用户需要使用这些数据,首先在缓存中寻找,如果找到了则直接使用.如果找不到,则再去其他数据源中 ...
- PHP面试我有话要说
你好,是我琉忆--PHP程序员面试笔试系列图书的作者. 随着越来越多的人开始迈入PHP开发工程师的队列,不管是一个PHP新手还是一个有一两年开发经验的PHPer都不得不去面对找工作前面试这件事. 我现 ...
- Solution -「Gym 102759C」Economic One-way Roads
\(\mathcal{Description}\) Link. 给定一个含 \(n\) 个点 \(m\) 条边的简单无向图,每条边的两种定向方法各有权值,求使得图强连通且定向权值和最小的方法. ...