Docker:(一)虚拟化+docker概念

目录

一:容器技术产生的背景

二:虚拟化概述

2.1什么是虚拟化

2.2虚拟化的作用

2.3cpu的时间分片(cpu虚拟化)

2.4cpu虚拟化性能瓶颈

2.5虚拟化工作原理

2.6虚拟化类型

2.7虚拟化的优缺点

三:Docker

3.1什么是docker

3.2使用docker的意义

3.3docker的使用场景

 3.4docker引擎(Docker Engine)

3.5docker三要素

3.6六大名称空间

3.7资源控制——cgroups

3.8容器特性

3.9容器小的架构体系

四:Docker和虚拟化的区别

五:Docker有哪些优势?和虚拟化比有什么优势?

六:总结

6.1什么是docker?docker原理?

6.2简述Docker主要使用的技术?

6.3简述Docker体系架构

6.4如何把多个目录挂载到同一个目录下?

引言:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一:容器技术产生的背景

(1)以linux而言,linux操作系统会有一个主进程pid=1派生出其他进程来控制不同服务

(2)例如: pid=2 ——> python pid=3——>java pid4——>php,三个服务可能会相互影响

(3)使用者期望将这三个不同的服务,跑在不同的运行时环境中实现相互不影响,同时不会增加服务器成本
——> 延伸出——>能否将这三种服务分别封装起来——>KVM虚拟化技术,实现了一个操作系统模拟多个操作系统/不同的运行时环境

(4)随着技术发展——>虚拟化技术开销较大(例如:只 要运行一个py脚本,想要使用虚拟化方式实现,还需要安装一个操作系统,并不方便/合理)

——>延伸出容器技术

虚拟化层的抽象层(用户层)剥离,使用docker engine来替代(来宾操作系统去除),只要通过引擎就可以直接连接到宿主机操作系统中,极大减小了开销

docker引擎对内核版本是有要求的(至少是3.8+)

docker 需要cgroups(Linux内核态中资源管理的模块) 的资源管理功能


二:虚拟化概述

2.1什么是虚拟化

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间运行而互相不影响,从而提高计算机的工作效率

(1)在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(ngint tomcat),从而实现一台宿主机搭建一个集群(从整体)

(2)通过软件/应用程序的方式,来实现物理硬件的功能(ensp)

以软件形式实现物理设备的功能(二层交换机、路由器、三层交换机等)

2.2虚拟化的作用

将应用程序和系统内核资源进行解耦,以操作系统级别进行隔离,目的是提高资源利用率

2.3cpu的时间分片(cpu虚拟化)

正常每个任务以轮询的方式去处理,这个时候一个CPU一个整体。

以下是针对的CPU单位时间内的一个资源。按时间划分,1秒划分成10个0.1秒,每个0.1秒可以全力处理10单位的任务。在1秒内,都在全力工作。

cpu 1s全力运转的性能——》逻辑分割成分成了10份,可以理解为在单位时间内可以处理10个任务,每一个0.1s cpu是满的。原先分片前100M以下的任务一次只可以处理1个,现在100M的任务一次可以处理10个。这就是时间分片的一个概念。

虚拟化作用——》缓解/解决了资源利用率的问题

2.4cpu虚拟化性能瓶颈

cpu分片后每个任务处理性能会打对折

如果是50m及50m以下的任务的话,虚拟化后的,1s模拟10个cpu,可以处理10个。虚拟化后的性能更高

如果是50+m的任务的话,物理硬件的性能就会比虚拟化的性能高了。虚拟化的cpu会卡顿。所以在极度吃资源的情况下,例如mysql高并发这种,就不适合用虚拟化

2.5虚拟化工作原理

虚拟机管理器功能:调用资源

两大核心组件:QEMU、KVM

QEMU:

①可以理解为队列,核心目的是**调用资源内核中的资源**,需要把KVM逻辑分割出来的资源运输给QEMU,再给虚拟机。

②QEMU它并不是直接调用,而是用I/O方式调用,QEMU把资源调用来的过程借用ioctl,QEMU借助libvirt这个工具调用ioctl,再通过接口,给虚拟机应用程序。

KVM:

①用来逻辑分割物理资源,抽象化为虚拟化资源,根据VMM里的配置,会逻辑分割出多少G,给应用程序,去进行虚拟化。

②只接受来自QEMU的请求指令。对于应用程序直接过来的敏感指令会拦截,然后通过接口发给QEMU,让QEMU判断是否需要执行,可以的话,再下来,不可以的话,打回去,不执行该敏感指令。

对于workstation而言——》硬件辅助虚拟化,表现形式在处理器里面有一个虚拟化引擎,可以勾取硬件辅助虚拟化,看到虚拟接口/dev/kvm,可以加强辅助调用,在应用程序需要频繁调用的时候,需要开启。比如openstack。

2.6虚拟化类型

全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用

半虚拟化:需要修改操作系统

直通:直接使用物理硬件资源

全虚拟化:基于硬件为基础以软件的形式模拟硬件设备(在一定程度上解决了性能利用率的问题)

半虚拟化:趋近于物理设备的性能 (在提高利用率的同时,尽可能的提高性能)

全虚拟化:KVM——产品 vmware(资源损耗大)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值