虚拟化+docker概念基本介绍

本文介绍了虚拟化技术,包括虚拟化概述、CPU虚拟化、虚拟化优缺点以及虚拟化工作原理。接着深入探讨了Docker,阐述了Docker的概念、意义、使用场景和与虚拟化的区别。Docker作为轻量级的虚拟化方式,提供了更高效、便携的容器化应用解决方案。
摘要由CSDN通过智能技术生成

目录

容器技术产生的背景

虚拟化

虚拟化概述

总结(虚拟化的作用):

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

  CPU虚拟化瓶颈

虚拟化工作原理

虚拟化类型

虚拟化的优缺点

优势

劣势

Docker

什么是docker

使用docker的意义

docker的使用场景

docker引擎(Docker Engine)

docker三要素

六大名称空间

资源控制——cgroups

容器特性

容器小的架构体系

Docker和虚拟化的区别

问:dovker 和VM 解决了虚拟机的什么问题?

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

总结

什么是docker?docker原理?

简述Docker主要使用的技术?

简述Docker体系架构

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


 前言:

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

容器技术产生的背景

  • 以linux而言,linux操作系统会有一个主进程pid=1派生出其他进程来控制不同服务
  • 例如: pid=2 ——> python pid=3——>java pid4——>php,三个服务可能会相互影响
  • 使用者期望将这三个不同的服务,跑在不同的运行时环境中实现相互不影响,同时不会增加服务器成本
  • ——> 延伸出——>能否将这三种服务分别封装起来——>KVM虚拟化技术,实现了一个操作系统模拟多个操作系统/不同的运行时环境
  • 随着技术发展——>虚拟化技术开销较大(例如:只 要运行一个py脚本,想要使用虚拟化方式实现,还需要安装一个操作系统,并不方便/合理)
  • ——>延伸出容器技术

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

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

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

虚拟化

虚拟化概述

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

  • 在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(ngintx/tomcat),从而实现一台宿主机搭建一个集群(从整体)
  • 通过软件/应用程序的方式,来实现物理硬件的功能(ensp)

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

总结(虚拟化的作用):

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

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

  • 正常每个任务以轮询的方式去处理,这个时候一个CPU一个整体。
  • 以下是针对的CPU单位时间内的一个资源。按时间划分,1秒划分成10个0.1秒,每个0.1秒可以全力处理10单位的任务。在1秒内,都在全力工作。
  • cpu 1s全力运转的性能——》逻辑分割成分成了10份,可以理解为在单位时间内可以处理10个任务,每一个0.1s cpu是满的。原先分片前100M以下的任务一次只可以处理1个,现在100M的任务一次可以处理10个。这就是时间分片的一个概念。
  • 虚拟化作用——》缓解/解决了资源利用率的问题(总结)

  CPU虚拟化瓶颈

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

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

虚拟化工作原理

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

两大核心组件:QEMU、KVM

QEMU:

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

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

KVM:

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

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

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

虚拟

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值