Docker虚拟化概念

news/2025/1/16 18:08:26/

Docker虚拟化概念

1、虚拟化技术的概念

  • 虚拟化技术主要是将物理资源转变为逻辑上可以管理的资源;
  • 用以打破物理资源结构之间的壁垒;
  • 让计算的原件运行在虚拟的基础之上;而不是直接运行在硬件设备资源上;

说白了就是硬件资源转变成虚拟资源;

虚拟化技术的底层是要进行虚拟的硬件设备物理机,通过虚拟化技术可以将物理机虚拟生成N台虚拟机、应用程序、软件服务是运行在虚拟机上的,而不是直接运行在物理设备机上

应用程序:

  • Nginx、MySQL、Redis 、MQ、ZK、Kafka;

当下主流技术:

  • 虚拟化、:
    • -虚拟化技术允许一个平台同时运行多个操作系统,
    • 并且应用程序都可以在相互独立的空间内运行而互不影响,
    • 从而显著提高计算机的工作效率,是一个为了简化管理,优化资源的解决方案。
  • 云计算:
  • 大数据

2、虚拟化技术的意义

虚拟化技术主要是为了最大化利用高配硬件设备的资源,提供机器资源利用率;

  • 如果物理资源已经全部用完了,其他的程序就无法使用

可以对软件服务、进程资源进行隔离、限制;

  • 限制内存分配、硬盘、CPU的分配

可以淘汰老、旧服务器资源,对老、旧、服务器资源进行重组、重用、加快企业自动化运维&DevOps脚步进程

  • 硬件整合,

3、虚拟化技术的种类

  • VMware ESXI
    • VMware workstations:
    • vmware公司的产品
  • XEN
  • KVM:
    • 最终的产物就是虚拟环境、虚拟机
    • 用于业务,
    • 虚拟机也可以理解为云主机
  • Open-vz
  • Hyper-V:
    • 微软的虚拟化软件
  • Podman:
    • 比较火?就是docker 的命令?
    • 很相似–>掌握思想,学习思路
      • podman pull nginx
      • docker pull nginx
  • Docker:
    • Docker被淘汰了?
    • K8S不用docker用于底层管理;
    • 运维都很焦虑?

4、Docker简介

  • Docker 是众多虚拟化技术中的一种,是目前企业中使用最多的虚拟化技术软件;
  • Docker是一款轻量级、高性能的虚拟化技术,是目前互联网使用最多的虚拟化技术
  • Docker虚拟化 是一个开源的应用容器引擎,
  • Docker容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行
  • Docker的基础是 Linux 容器(LXC)等技术。

5、Docker虚拟化技术特点:

  • 轻量级、高性能、安全、稳定、管理方便;
  • Docker虚拟化技术的产物就是Docker容器;
  • 那么Docker容器与KVM的虚拟机有什么不同?
    • Docker容器也被称为轻量级的虚拟机,
    • 比传统的KVM虚拟机更加轻巧
  • 容器共享宿主机的资源、内核
  • 不管是什么的虚拟化技术都会共享宿主机的资源;

6、Docker架构:

  • Server(硬件资源)–>Host OS(宿主机操作系统)–>VMware(虚拟软件)–>APP(应用服务)
  • 效率高,启动快
  • 轻量级虚拟化:
  • 开源免费
    • Docker虚拟化技术是在硬件的基础上,基于现有的操作系统层面上实现虚拟化,直接复用本地主机的操作系统,直接虚拟生成Docker容器,
    • Docker容器上部署相关的APP应用(Apache、MYSQL、PHP、JAVA)。
  • Docker虚拟化的优点:
    • 操作启动快
    • 轻量级虚拟化
    • 开源免费
    • 前景好,云支持多
  • Docker虚拟化的缺点
    • 难度高、技术资料不多;
    • Go语言还没有完全成熟;

传统虚拟化架构:

  • Server(硬件资源)–>Host OS(宿主机操作系统)–>VMware(虚拟软件)–>Guest OS(虚拟机系统)–>APP(应用服务)
  • 完全虚拟化技术
  • 半虚拟化技术
    • KVM、XEN、ESXI传统虚拟化(完全、半虚拟化)是在硬件的基础上,
    • 基于现有的操作系统层面上实现虚拟化,但是不能复用本地主机的操作系统
    • 而是必须虚拟出自己的Guest OS系统,
    • 然后在Guest OS系统上部署相关的APP应用(Apache、MYSQL、PHP、JAVA)。

什么是LXC技术?

  • LXC(Linux Container)linux容器概念
    • LXC是基于是内核级的虚拟化技术

7、Docker 虚拟化技术结构:

  • LXC(Linux Container)+AUFS(Another Union File System)结构组合
  • Docker虚拟化技术是在LXC技术上进一步的封装提供了一系列完整的功能
    • LXC主要负责资源管理
    • AUFS主要负责镜像管理
    • LXC包括Cgroup、NameSpace、Chroot等组件,并通过Cgroup进行资源管理。
  • Docker、LXC、Cgroup三者的关系
    • Cgroup在最底层落实资源管理,
      • Cgroups又名Control groups,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(CPU、 Memory、IO、NET)的机制。
    • LXC在cgroup上封装了一层,
      • Linux Container容器技术可以提供轻量级的虚拟化,以便隔离进程和资源
      • LXC是建立在CGroup基础上,可以理解为:LXC = Cgroup+ namespace + Chroot + veth +用户态控制脚本
    • Docker又在LXC封装了一层
      • Docker容器的文件系统最早是建立在Aufs基础上的

Aufs文件系统

  • Aufs将挂载到同一虚拟文件系统下的多个目录分别设置成read-only,read-write以及whiteout-able权限
    • read-only:只读权限
    • read-write以:写操作
    • whiteout-able:

Device Mapper文件系统

  • Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
  • 内核架构:
    • Device Mapper 进一步体现了在 Linux 内核设计中策略和机制分离的原则,
    • 将所有与策略相关的工作放到用户空间完成,
    • 内核中主要提供完成这些策略所需要的机制。
    • Device mapper 用户空间相关部分主要负责配置具体的策略和控制逻辑,
    • 整个Device Mapper机制由两部分组成-内核空间的Device mapper 驱动、用户空间的Device mapper 库以及它提供的Dmsetup工具。

OverlayFS文件系统

  • OverlayFS是目前使用比较广泛的层次文件系统,是一种类似Aufs的一种堆叠文件系统
  • Docker虚拟化Overlay存储驱动利用了很多OverlayFS特性来构建和管理镜像与容器的磁盘结构
  • 在真实使用中,OverlayFS代表整个文件系统,而Overlay/Overlay2表示Docker的存储驱动

Docker引擎架构

  • docker引擎是一个C/S结构的应用;
    • Docker使用C/S架构,Client 通过接口与Server进程通信实现容器的构建,运行和发布

8、Docker的三大概念:

  • Docker镜像、
    • Docker虚拟化最基础的组件为镜像
    • Docker镜像是静止的、只读的,不能对镜像进行写操作。
  • Docker容器、
    • Docker容器是Docker虚拟化的产物
    • 基于镜像运行,并且在镜像最上层添加一层容器层之后的实体,容器层是可读、可写的
  • Docker仓库
    • Docker仓库是用于存放Docker镜像的地方,
    • Docker仓库分为两类:
      • 公共仓库(Public)
      • 私有仓库(Private)

Docker镜像原理:

  • Docker镜像是分层的;有多个层级组成;每个层级实现某个功能;
    • Docker镜像是分层的,由多个层级组成
    • 编写Dockerfile和基于容器Commit实现镜像制作
    • Docker引擎默认通过镜像ID来识别镜像;
    • 每个镜像层都是只读,即使启动成容器
  • Docker容器是一个或者是多个运行的进程,
    • 消耗CPU、内存的资源
    • json文件可以反映运行的进程;

Docker组件说明

  • Docker Server是一个常驻进程
  • REST API 实现了client和server间的交互协议
  • Docker CLI 实现容器和镜像的管理,为用户提供统一的操作界面;
  • Images为容器提供了统一的软件、文件底层存储;
  • Container是Docker虚拟化的产物,直接作为生产使用;
  • Network为Docker容器提供完整网络通信;
  • Volume为Docker容器提供额外磁盘、文件存储对象。

http://www.ppmy.cn/news/61414.html

相关文章

考研机试刷题第二天:任意进制转任意进制【高进度短除法】

理一下思路&#xff1a; 看了y总的视频之后我觉得这道题其实只需要对上次写的进制转换微微做一下调整即可。 于是我写出了下面的代码 #include <iostream> #include <vector> #include <algorithm> #include <cstring>using namespace std;vector<…

精品:Stimulsoft Forms 2023.2.2

Stimulsoft Forms 是一种用于创建、编辑、填写、发布、分发交互式表单和收集结果的工具。我们的产品可嵌入到应用程序中&#xff0c;并允许您创建各种自定义填充模板。丰富的功能使模板具有真正的交互性。用户会收到 PDF 格式的可填写表格&#xff0c;他们可以在任何支持此格式…

【性能设计篇】性能设计-缓存

前言 在分布式系统中&#xff0c;最耗费性能的地方就是数据库&#xff0c;而对于数据库的操作基本上就是添加&#xff0c;修改&#xff0c;删除和查询&#xff0c;对于前3者来说&#xff0c;基本上不会出现性能瓶颈。最耗费性能的地方就是查询了&#xff0c;对于查询有join、w…

Axure教程——用中继器制作动态柱状图

今天作者就教大家在Axure里面如何用中继器做一个可以动态的柱状图。 制作完成之应具备以下交互效果&#xff1a; 1.在中继器表格中填写具体数据和坐标轴后&#xff0c;自动生成对应的柱状图 2.鼠标移动到每项&#xff0c;显示其数据 预览地址&#xff1a;https://tj4v11.axshar…

让Python也能读取yaml配置

在 Python 中&#xff0c;可以使用 PyYAML 库来解析和生成 YAML 格式的配置文件&#xff0c;以实现环境配置。以下是一个使用 PyYAML 库读取 YAML 配置文件并将其应用到应用程序中的 Python 代码示例&#xff1a; 安装 PyYAML 库 pip install pyyaml创建 YAML 配置文件 # co…

射频功率放大器在S180肿瘤细胞膜研究中的应用

实验名称&#xff1a;聚焦超声对S180肿瘤细胞膜理化性质的影响 研究方向&#xff1a;生物医疗 测试目的&#xff1a; 细胞膜是细胞生命活动中有着复杂功能的重要结构其基本作用在于维持细胞内外环境的相对稳定而其通透性、完整性及流动性等理化性质则与胞内外信息传递、物质…

天梯赛L1-001 ~ 010

&#x1f442; White Lie - Jhameel - 单曲 - 网易云音乐 &#x1f442; 丁丁猫儿 - 施鑫文月 - 单曲 - 网易云音乐 今年蓝桥 / 天梯都陪跑&#xff0c;希望明年&#xff0c;蓝桥杯省一&#xff08;CA组60分&#xff09;&#xff0c;天梯赛国三&#xff08;180分&#xff09;…

微机作业题

答案做的&#xff0c;正确性不保证。 1. 微型计算机的性能主要取决&#xff08; A &#xff09;的性能。 A. CPU B. 显示器 C. 硬盘 D. U盘 2. 计算机的工作过程&#xff0c;本质是&#xff08; A &#xff09;的过程。 A. 进行科学计算 …