Docker虚拟化概念

news2024/11/24 17:01:34

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.coloradmin.cn/o/498830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据开会记录【NiFi数据集成、AllData数据中台管理系统、RuoYi】

今天上午和下午开了个小会,上午说了一下Nifi,下午具体说了一下nifi和ruoyi。 目录 上午 下午 上午 三个人开会。 上次说的挖掘平台,您这边是否有技术人员对nifi比较熟悉,并且能够将相关功能集成到数据中台系统中。 现在结构化的…

不收费的电脑数据恢复软件EasyRecovery16

EasyRecovery是一款操作安全、恢复性比较高的数据恢复工具,小伙伴们可以使用EasyRecovery恢复各种各样被删除的文件、视频、图片等。EasyRecovery还可以支持恢复被格式化的媒体文件,只是使用EasyRecovery恢复时时间较久。如果小伙伴们有误删除的文件需要…

【Qt 从入门到入土】上篇

【Qt 从入门到入土】下篇 一个非常好的学习 Qt 的视频 本文目录 1. Qt 概述1.1 什么是 Qt1.2 Qt 的发展史1.3 支持的平台1.4 Qt 的版本1.5 Qt 的优点1.6 成功案例 2. 创建 Qt 项目2.1 使用向导创建2.2 手动创建2.3 .pro文件2.4 一个最简单的 Qt 应用程序2.5 Qt 命名规范和常用…

【Java入门合集】第三章面向对象编程(下)

【Java入门合集】第三章面向对象编程(下) 博主:命运之光 专栏:JAVA入门 学习目标 理解面向对象三大主要特征; 掌握类与对象的区别与使用; 掌握类中构造方法以及构造方法重载的概念及使用; 掌握包…

已做过算法题总结

217、存在重复元素(easy) 输入:nums [1,2,3,1] 输出:true 输入:nums [1,2,3,4] 输出:false 输入:nums [1,1,1,3,3,4,3,2,4,2] 输出:true 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &…

【2106. 摘水果】

来源:力扣(LeetCode) 描述: 在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上…

Android平台播放透明视频

Android平台播放透明视频 思路 设计一种特殊的视频,它的一半内容存储alpha信息,另一半内容存储rgb信息,接着通过OpenGL获取每个像素点的alpha值和rgb值进行混合,最后出来的画面就是带有透明效果的视频了。 可以上下的分&#xf…

【疯狂造轮子-iOS】JSON转Model系列之二

1. 前言 上一篇《【疯狂造轮子-iOS】JSON转Model系列之一》实现了一个简陋的JSON转Model的库,不过还存在很多问题。下面我会尝试一个个去解决。 2. 存在问题及解决思路 2.1 没有考虑JSON数据并不一定是NSDictionary类型 有时候JSON并不一定是NSDictionary类型&…

【医学影像数据处理】2D/3D patch的crop和merge操作汇总

在做3D分割任务中,多数的方法多采用整体缩放,或裁剪成一个个小的patch操作,这样做的一个主要原因是内存问题。 相较于整体缩放,采用裁剪成patch的方法,对于小目标会更加的鲁棒,这也是大多数3D分割任务中常…

Leetcode448. 找到所有数组中消失的数字

Every day a leetcode 题目来源:448. 找到所有数组中消失的数字 解法1:STL set set 是一个集合类型的容器,里面的元素具有唯一性,并且所有元素都会根据元素的键值自动被排序,以红黑树为底层数据结构。 我们使用集合…

git上传大大大文件项目好折磨人

本来想把unity项目的源码上传上gitee啊,但是那个项目有1个多G,还是个半成品,要是写完,都不知道行不行 正常的上传 所用到的命令: 1、 git init 初始化,创建本地仓库 2、 git add . 添加到本地仓库 3、 git…

【C++】打开C++大门,踏入C++世界

文章目录 ☑️前言一. 浅看【C】关键字二. 命名空间1. 命名空间的定义👌2. 命名空间的使用👌 三. 【C】输入输出(IO)四. 缺省参数1. 缺省参数的概念🏆2. 缺省参数的分类🏆 五. 函数重载1. 函数重载的概念✌️2. 【C】支持函数重载…

【计算机专业漫谈】【计算机系统基础学习笔记】W2-2-2 模运算系统和补码表示

利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了。参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课自查资料整理后的笔记 补码表示法…

实验9 分类问题

1. 实验目的 ①掌握逻辑回归的基本原理,实现分类器,完成多分类任务; ②掌握逻辑回归中的平方损失函数、交叉熵损失函数以及平均交叉熵损失函数。 2. 实验内容 ①能够使用TensorFlow计算Sigmoid函数、准确率、交叉熵损失函数等,…

GEE:基于变异系数法的遥感环境风险评估指数(RSEI)计算

作者:CSDN @ _养乐多_ 本文记录了基于变异系数法计算 Risk-Screening Environmental Indicators (RSEI) 的方法和代码。使用 变异系数法计算权重来代替PCA方法计算权重,根据权重计算综合指标。本文也记录了使用landsat-8数据计算LST、NDVI、NDBSI、WET四个指标的代码。 结果…

密码学:其他常见密码学应用.

密码学:其他常见密码学应用. 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学. 目…

二叉树基础概念详解

文章目录 前言1. 树的基本概念2. 二叉树的基本概念3. 特殊二叉树🍑 满二叉树🍑 完全二叉树🍑 斜树 4. 二叉树的性质🍑 性质一🍑 性质二🍑 性质三🍑 性质四🍑 性质五🍑 性…

华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包

华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的…

【Java】线程池--ThreadPoolExecutor底层原理源码的理解

文章目录 一、根据代码查看jdk提供的3种线程池创建:二、3种方式源码分析1、Executors.newCachedThreadPool()2、Executors.newFixedThreadPool(10)3、Executors.newSingleThreadExecutor() 三、自定义方式执行提交优先级执行优先级 一、根据代码查看jdk提供的3种线程…

第2章Elasticsearch入门

1.正排索引和倒排索引 正排索引: 正排索引(Forward Index)是一种用于搜索引擎和文本检索系统的索引结构,它将文档中的每个单词都映射到该单词在文档中出现的位置。正排索引可以帮助快速定位、检索和渲染文档内容,但它需要消耗大…