深入剖析虚拟化技术概念和应用场景
虚拟化,一是项技术~~,是一种资源解决方案。
虚拟化技术是将物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒,使计算元件运行在虚拟的基础上,而不是真实的物理资源上。
通过虚拟化技术,可以将物理资源转变为逻辑资源(虚拟机),应用程序服务运行在虚拟资源上,而不是真实的物理机上。
VMware workstation 属于个人版虚拟化软件,称为虚拟机软件。将物理资源转变为多台虚拟机,应用软件运行在虚拟机中,各个虚拟机共享物理机的资源 (CPU,硬盘,网卡,内存,IO设备...)
虚拟化技术的落地,底层就必须有物理机支撑!
单纯的物理机器是不能直接虚拟化的,都需要虚拟化软件来实现。目前主流的虚拟化软件有:KVM,XEN,ESXI,HP-V,Docker,Virtual BOX等
虚拟化技术的应用场景示例
企业需求:部署一百套Nginx WEB服务,要求对外端口为80,要求独立服务器部署
很明显,第二种方案,从成本、部署难度、维护等方面,第二种都是比第一种好的。
所以,虚拟化的意义:
对于硬件设备资源的最大化利用,降低企业各种费用成本,简化后期资源部署和维护,动态满足企业需求
,基于虚拟化资源来代替待淘汰的物理资源
云计算技术概念和应用场景
深入剖析Docker虚拟化概念和底层原理
Docker简介
Docker是虚拟化技术的一种,也是目前使用比较多的一种。Go语言开发引擎
Docker利用“集装箱”(容器)的原理,将系统、开发软件包、依赖环境等统一打包到容器中,将整个容器部署至其他的平台或者服务器上。
容器技术:一种虚拟化的方案,和传统的虚拟机(通过中间层"guerst OS"运行服务)不同,Docker直接运行在操作系统之上。
因此容器虚拟化也被称之为操作系统虚拟化。Docker容器依赖于Linux内核特性,Namespace和Cgroups,所以只能运行在Linux之上。
官方定义:Docker是一个开元的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化
容器是完全使用沙箱机制,相互之间没有任何接口(iphone的app也是这样),几乎没有性能开销;可以很容易在机器和数据中心运行。最重要的是,他们不依赖任何语言,框架甚至系统
Docker虚拟化技术比传统虚拟化技术的优点
假设基于传统虚拟化和Docker虚拟化部署Nginx WEB服务,两种方案部署如下:
传统的虚拟化,不能直接启动Nginx WEB,Docker可以直接启动Nginx WEB
如果是传统虚拟化技术,原本只需要很少资源的服务应用,就需要很大的“guestOS“资源来支撑真正的服务
Docker目标
Docker的使用场景
-
使用Docker容器开发、测试、部署服务。
docker本身是轻量级的,所以本地开发人员可以构建、运行并分享docker容器,容器可以在开发环境中创建,然后提交到测试,在到生产环境。
-
创建隔离的运行环境
在很多企业应用中,同一服务的不同版本可能服务于不同的用户,使用Docker很容易创建不同的环境来运行不同版本的服务
-
搭建测试环境
有于Docker的轻量化,所以开发者很容易在本地搭建测试环境,用来测试程序在不同系统下的兼容性,甚至集群式的测试环境。
-
构建多用户的平台服务(PaaS)基础设施
-
即同软件即服务(SaaS)应用程序
-
高性能、超大规模的宿主机部署
Docker的基本组成
Docker基本组成:
-
Docker Client 客户端
-
Docker Daemon 守护进程
-
Docker Image 镜像
-
Docker Container 容器
-
Docker Registry 仓库
-
Docker客户端/守护进程:
docker是C/S架构的程序,docker客户端向服务端发送请求,守护进程处理完所有的工作,并返回处理结果。客户端对服务端的访问,既可以是本地,也可以通过远程
-
Docker镜像:
docker镜像是docker容器的基石。跟ISO镜像类似,静止的模版,用于Docker容器的底层基础文件
docker镜像是一个层叠的只读文件系统(联合文件系统):
最低端是一个引导文件系统 bootfs
第二层是rootfs,位于引导文件系统之上,可以是一种或多种操作系统(redhat/ubuntu等),在docker中,rootfs永远是只读方式,并且利用联合加载技术(union mount),加载更多的只读文件系统
-
Docker容器:
docker容器通过docker镜像启动,是Docker镜像运行的实体,是活动的。
当一个容器启动时,会再docker镜像的最顶层加载一个读写文件系统,docker中运行的程序就是在该层进行运行的,第一次启动是,初始化的读写层是空的,所有的写操作都应用在该层(从只读的底层复制到读写层(写时复制技术))
Docker镜像和容器的关系,跟程序和进程的关系类似
-
Docker仓库:
存放Docker镜像的地方,一般分为公共仓库和私有仓库,docker公司提供了一个自己的仓库"Docker Hub"
Docker的相关技术
Docker依赖Linux的内核特性有:Cgroup(控制组)和Namespace(命名空间)
命名空间是一种封装的概念,在操作系统层面上,提供了系统资源的隔离,系统资源包括{进程、文件系统、网络等}。Linux实现命名空间的目的:为了实现轻量级虚拟化服务,在不同命名空间下的进程,彼此毫无关系。
docker使用了五种命名空间:
-
PID 进程隔离
-
NET 管理网络接口
-
IPC 管理进程间通信
-
MNT 管理挂载点,文件系统间的隔离
-
UTS 管理内核和版本标示的隔离
Cgroup对隔离的资源进行管理,是一种用来限制、记录,隔离进程组资源的机制。就是为了容器技术而生的。
Cgroup对资源的管理方式:
-
资源限制 如:对内存的分配上限
-
优先级设定 如:某个进程优先使用cpu时间片
-
资源计量 计算进程组使用了多少系统资源,尤其时在记费系统中
-
资源控制 将进程组挂起或恢复
Docker容器的能力:
-
文件系统隔离:每个容器都有自己的root文件系统
-
进程隔离:每个容器都运行在自己的进程环境中,互相不影响
-
网络隔离:容器间的虚拟网络接口和IP地址都是分开的
-
资源隔离和分组:使用Cgroups将CPU和内存之类的物理资源独立的分配给每个Docker容器
1 云服务的运营模式
IaaS(基础设施即服务):经营的是基础设施,比如阿里云服务器(只安装操 作系统)
PaaS(平台即服务):经营的是平台,比如 MySQL 开发平台(安装在 linux 里面现成的平台)、redis 开发平台。
SaaS(软件即服务):经营的是软件,比如公司的 OA 系统(部署到远程服务 器中的 OA 软件)
2 What is
Docker
Docker
就是一种
虚拟
化
容器
技术
。 通过
Docker
这种
虚拟
化
容器
技术
,可以对物理机的资源进行更加合理有效 的利用,可以将一台物理机器
虚拟
化
出很多个拥有完整操作系统,并且相互
(1)什么是
虚拟
化
把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大
化
和灵活管理的
技术
(2)
虚拟
化
层①X86平台指令集划分为4个特权模式:ring0-3②操作系统工作在ring0③应用程序使用ring3④驱动程序使用ring1-2(3)
虚拟
化
的优势①减少服务器数量,降低硬件采购成本②资源利用率最大
化
③降低机房空间、散热、电耗成本④硬件资源可动态调整,提高企业IT业务灵活性⑤高可用性⑥在不中断服务的情况下进行物理硬件调整⑦降低管理成本⑧具备更高效的灾备能力(4)VMware
虚拟
化
①vSphere是VMw
诞生背景一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验.
Docker
之所以发展如此迅速,也是因为它对此给出了一个标准
化
的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用
Docker
可以消除协作编码时“在我的机器上可正常工作”的问题。开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。不过
官网:www.
docker
.com(与文档)
Docker
的英文翻译是”搬运工“的意思,他搬运的东西就是我们常说的集装箱Container,Container 里面装的是任意类型的App,我们的开发人员可以通过
Docker
将App变成一种标准
化
的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。
Docker
是一个开源的应用容器引擎,基于go语言,并遵从Apathe2.0协议开源。
Docker
可以让开发者打包他们的
目录一.
Docker
概述1.
Docker
概述2.容器的优点3.
Docker
与
虚拟
机的区别4.
Docker
核心
概念
二.安装
Docker
三.
Docker
镜像操作1.搜索镜像2.获取镜像3.镜像下载加速4.查看镜像信息5.查看本地镜像6.获取镜像详细信息7.为本地镜像添加新标签8.删除镜像9.保存镜像到本地10.载入镜像11.上传镜像四.
Docker
容器操作1.容器创建2.查看容器运行状态3.启动容器4.终止容器运行5.容器的进入6.容器的导出与导入7.删除容器
一.
Docker
概述
1.
Docker
概
虚拟
化
:是指通过
虚拟
化
技术
将一台计算机
虚拟
为多台逻辑计算机。
在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,
并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率
传统
虚拟
化
: IAAS(基础设施级服务) ----PAAS(平台级服务)
2、
虚拟
化
后的结果
打破了操作系统和硬件的互相倚賴
通过封装到到
虚拟
机的
技术
, 管理操作系统和应用程序为单一的个体
強大的安全和故障隔离
虚拟
机是独立于硬件的
文章目录一、为什么要
虚拟
化
二、什么是
虚拟
化
三、
虚拟
化
技术
分类(1)全
虚拟
化
技术
(2)半
虚拟
化
技术
(3)寄居架构(4)裸金属架构四、
Docker
与传统
技术
对比五、
Docker
技术
六、
Docker
重要
概念
一、为什么要
虚拟
化
虚拟
化
前:
1、系统资源利用率低。经调查,服务器只有5%的资源得到利用。
2、每台主机一个操作系统,且在一个电脑上运行多个进程会遭遇冲突。
3、硬件成本高昂且不够灵活。
虚拟
化
后:
1、打破系统和硬件的相互依赖。
2、强大安全和故障的隔离。
3、通过封装到
虚拟
机,管理程序和应用程序为单一个
2.1 什么是
Docker
Docker
是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到安装了任何 Linux 发行版本的机器上。
Docker
基于LXC来实现类似VM的功能,可以在更有限的硬件资源上提供给用户更多的计算资源。与同VM等
虚拟
化
的方式不同,LXC不属于全
虚拟
化
、部分
虚拟
化
或半
虚拟
化
中的任何一个分类,而是一个操作系统级
虚拟
化
。
Docker
是直接运行在宿主操作系统之上的一个容器,使用沙箱机制完全
虚拟
出一个完整的操作,容器之间不会有任何接口,从而让