【玩转Docker小鲸鱼叭】虚拟化技术简介

news2024/11/25 13:29:11

什么是虚拟化技术?

Docker 是一款基于容器虚拟化技术构建的软件,那到底什么虚拟化技术呢?在学习 Docker 之前,先简单了解下虚拟化技术。

虚拟化是云原生的实现基础,它能够帮助我们更加有效地利用物理计算机硬件。

虚拟化技术是一种将物理资源抽象为虚拟资源,并将虚拟的计算机资源提供给应用程序使用的技术。其中物理资源包括处理器、硬盘、网卡等硬件资源。

虚拟化技术可以将物理资源划分为多个相互独立的虚拟环境,每个虚拟环境都可以运行不同的操作系统和应用程序,从而提高硬件资源的利用率和灵活性,降低硬件成本和管理复杂度。

虚拟化的概念其实不难理解。假设我们有一台 32G 内存的物理机,如果只运行一个占用 4G 内存应用程序,这会浪费大量的资源。通过虚拟化技术,我们可以在一台物理机上运行多个应用程序,为不同的应用程序提供虚拟内存服务。运行在同一台物理机的应用程序是相互独立的,互不影响,这充分提高了计算机硬件资源的利用率

虚拟化技术前后的区别如下图所示:
在这里插入图片描述

虚拟化技术实现

虚拟化技术有下面几种常见的实现方案:

  1. 完全虚拟化:完全虚拟化是指在虚拟机上运行操作系统和应用程序,虚拟机中的操作系统和应用程序不知道自己运行在虚拟环境中,而是认为自己运行在物理机上。完全虚拟化需要在虚拟机中添加虚拟化层,用于模拟物理硬件和操作系统。
  2. 容器虚拟化:
    容器虚拟化是指在操作系统层面上实现虚拟化,每个容器可以运行不同的应用程序,但是共享同一个操作系统内核和系统资源。容器虚拟化通常比完全虚拟化和半虚拟化更加轻量级和快速,但是容器之间的隔离性相对较弱。

完全虚拟化技术的典型实现的是虚拟机,容器虚拟化技术的典型实现是 Docker

虚拟机和Docker有何不同?

虚拟机和 Docker 都是虚拟化技术的实现,但是它们的实现原理和应用场景有所不同。

虚拟机是一种完全虚拟化技术,它可以在物理服务器上创建多个虚拟机,每个虚拟机都具有自己的操作系统、应用程序和系统资源(例如CPU、内存、磁盘、网络等),虚拟机之间是相互隔离的。虚拟机需要在每个虚拟机中模拟物理硬件,因此虚拟机的启动和停止比较慢,占用的系统资源也比较多。虚拟机适用于需要完全隔离的应用场景,例如安全性要求较高的应用程序、不同操作系统之间的互操作等。

Docker 是一种容器虚拟化技术,它可以将应用程序打包成容器镜像,运行在 Docker引擎 中,每个容器都具有自己的应用程序和系统依赖,并共享宿主机的操作系统内核和系统资源。容器启动和停止比较快,占用的系统资源比虚拟机少,因此 Docker 适用于快速部署和迁移应用程序的场景,例如微服务架构、云原生应用程序、开发环境的搭建和管理等。

虚拟机和 Docker容器 的原理图如下图所示:

在这里插入图片描述

虚拟机和 Docker容器 的优缺点如下:

在这里插入图片描述

虚拟化技术的优势

虚拟化技术在行业技术变革中留下了浓墨重彩的一笔,其主要特点和优势如下:

  1. 硬件资源利用率高:虚拟化技术可以将物理资源划分为多个虚拟环境,提高硬件资源的利用率和灵活性,降低硬件成本和管理复杂度。

  2. 系统维护和管理方便:虚拟化技术可以将多个虚拟环境隔离开来,每个虚拟环境可以独立运行和管理,方便系统维护和管理。

  3. 应用程序部署和迁移方便:虚拟化技术可以将应用程序打包成虚拟机镜像或容器镜像,实现应用程序的快速部署和迁移。

总结

  1. 虚拟化技术是一种将物理资源抽象为虚拟资源,并将虚拟的计算机资源提供给应用程序使用的技术。其将物理资源划分为多个相互独立的虚拟环境,每个虚拟环境都可以运行不同的操作系统和应用程序,从而提高硬件资源的利用率和灵活性,降低硬件成本和管理复杂度。
  2. 虚拟化技术实现方案通常有完全虚拟化和容器虚拟化,完全虚拟化的典型实现是虚拟机,容器虚拟化的典型实现是 Docker
  3. 虚拟机和 Docker 都是虚拟化技术,但是它们的实现原理、资源占用和应用场景有所不同。虚拟机适用于需要完全隔离的应用场景,而Docker 适用于快速部署和迁移应用程序的场景。
  4. 通过虚拟化技术可以提高硬件资源的利用率、便于系统的维护和管理并且应用程序可以快速的部署和迁移。


🎉 如果喜欢这篇文章,点赞👍 收藏关注 ✅ 哦,创作不易,感谢!😀

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666180.html

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

相关文章

2023年中级工程师职称认定、考试和评审有什么区别呢?

2023年中级工程师职称认定、考试和评审有什么区别呢? 人社部门中级工程师职称获得的渠道只有三种:认定、考试和评审这三种渠道,都可以拿到正规的中级职称,那么这几种有什么区别呢? 要说区别的话,启程别老师告诉你&…

python使用pyinstaller打包运行过程中莫名的被阻塞

问题描述 使用pyinstaller打包python代码命令 python -m PyInstaller -i logo.ico -F -p ./console -n scl_runner ./main.py运行之后会有一个终端,可以看到终端日志输出正常,多次远程调用也没有问题,死循环测试调用10万次也没有卡死 然…

2023 互联网大厂 Java 面试 1210 道题全解析

很多 Java 工程师的技术不错,但是一面试就头疼,10 次面试 9 次都是被刷,过的那次还是去了家不知名的小公司。 问题就在于:面试有技巧,而你不会把自己的能力表达给面试官。 应届生:你该如何准备简历&#x…

管理类联考——写作——素材篇——论说文——写作素材01—志篇:理想•信念

管理类专业学位联考 (写作能力) 论说文素材 01——志篇:理想信念 论文说材料: 古之立大事者,不惟有超世之才,亦必有坚韧不拔之志。 ——苏轼《晁错论》 一:道理论据 没有生活的理想,就没有理想的生活。 ——中国共…

C/C++入门秋招知识点八股文

1.C/C关键字 1.1 static(静态)变量 在C中,关键字static是静态变量: 静态变量只会初始化一次,然后在这函数被调用过程中值不变。在文件内定义静态变量(函数外),作用域是当前文件&a…

在HTML语法中,用花括号{}括起来的内容是什么呢?

在HTML语法中,使用花括号{}括起来的内容通常表示占位符或模板语法,用于动态地插入或生成具体的内容。这种语法通常是由特定的模板引擎或框架提供,并在服务器端进行处理。 比如在某Django模板文件中,有如下的代码: &l…

理解Widget::Widget(QWidget *parent) :QWidget(parent)同C++ 基类和派生类的构造函数

1 QT中这段代码如何理解呢 Widget::Widget(QWidget *parent) :QWidget(parent){} 2 首先&#xff0c;来看一个例子 #include <iostream> using namespace std; class Base { public:Base() :m_num(0){ // 构造函数让类范围的m_num被初始化. cout << "thi…

平衡小车学习教程1——硬件资源及其小车底层硬件介绍篇

起因 大家在学会了Stm32后&#xff0c;可以做一个项目来进行来进行练手&#xff0c;平衡小车就是一个很好的练手项目&#xff0c;可以检验自己的学习成果&#xff0c;也可以对学习到的知识进行一个复习。再一个就是通过做项目来锻炼自己的工程能力。 好啦&#xff0c;废话不多…

2023 亚马逊云科技中国峰会,引领 Serverless 技术架构新潮流

序言 随着大数据与云计算技术的深入发展&#xff0c;Serverless 已经成为一个技术趋势&#xff0c;一个云的重要发展方向。依托于 Serverless 无服务器架构&#xff0c;云上技术方式正在由过去的集中式、分布式研发&#xff0c;向新式云上组装式研发转变&#xff0c;实现软件研…

医学影像临床信息系统PACS源码

医学影像临床信息系统&#xff08;Picture Archiving and Communication Systems&#xff09;PACS是指从医疗影像设备中获得数字影像&#xff0c;利用高速网络进行存储、管理、传输的医疗影像信息管理系统。通过该系统&#xff0c;能实现影像数字化、无胶片化管理。 登记系统 …

【linux系统编程学习】【未完待续】

牛客网webserver教程 1. linux系统编程入门1.1 Linux开发环境搭建1.2 GCC&#xff08;1&#xff09; 1. linux系统编程入门 1.1 Linux开发环境搭建 安装虚拟机安装VMware tool 解压-提取文件-然后对应文件夹中 sudo ./vmware-install.pl安装openssh-server sudo apt instal…

【后端面经-Java】Java创建线程的方法简介

【后端面经-Java】Java创建线程的方法简介 1. 线程的基本概念1.1 线程1.2 线程状态和生命周期 2. 创建线程的四种方法2.1 继承Thread类2.2 实现Runnable接口2.3 实现Callable接口2.4 使用线程池 3. 参考资料 1. 线程的基本概念 1.1 线程 学过操作系统的同学应该不陌生&#x…

如何使用 SpringFox 自动生成 RESTful API 文档?

如何使用 SpringFox 自动生成 RESTful API 文档&#xff1f; 在开发 RESTful API 时&#xff0c;编写 API 文档是一个重要的任务。API 文档可以帮助其他开发人员了解 API 的用法、参数、返回值等信息。然而&#xff0c;手动编写 API 文档是一项繁琐的工作&#xff0c;往往需要…

苹果Vision Pro生态升级,UWB芯片制程规格将提高

苹果将积极升级硬件产品规格以建构更有竞争力的 Vision Pro 生态&#xff0c;UWB芯片制程规格将提高。 郭明錤称&#xff0c;Vision Pro 的成功关键之一在于生态&#xff0c;当中包括能否与其他苹果硬件产品整合&#xff0c;而与此相关的主要硬件规格为 Wi-Fi 与 UWB。iPhone…

静态NAT和动态NAT实验

静态NAT 拓扑 需求 实现企业内网主机&#xff08;PC1/PC2&#xff09;访问公网网站服务器&#xff08;Server1&#xff09; 配置步骤 第一步&#xff1a;给PC1/PC2/Server1配置接口IP地址&#xff0c;掩码&#xff0c;网关 第二步&#xff1a;R1配置路由和静态NAT -边界路由器…

燕之屋转战港股IPO,3年广告宣传费超8亿,研发费不足1亿

港股“燕窝第一股”又来了&#xff1f; 6月12日&#xff0c;厦门燕之屋生物工程股份有限公司&#xff08;下称“燕之屋”&#xff09;在A股上市未果后&#xff0c;转战港股IPO。 这已经是燕之屋第三次向港交所递交招股书。2011年和2021年其两次向港交所递交招股书&#xff0c…

手机丢失自救手册:48 小时内你能做哪些挣扎?

48小时后&#xff0c;我终于解除了丢失模式 5 月 16 日 19:30&#xff0c;我的苹果手机遗落在深圳某网约车上。当晚&#xff0c;在与司机协商无果、报警无果、定位丢失的前提下&#xff0c;我放弃了寻找。5 月 17 日下午 16:00&#xff0c;手机定位更新&#xff0c;重燃希望的我…

Python换脸——如何让马老师打篮球

文章目录 数据准备提取特征三角剖分仿射变换无缝克隆 简单的换脸只需要四步 提取脸部特征点三角剖分仿射变换无缝克隆 数据准备 想完成这个&#xff0c;opencv足以胜任&#xff0c;首先第一步&#xff0c;自然是打开准备换脸的图像 import matplotlib.pyplot as plt import…

回溯算法-leetcode78 子集(java)

子集 leetcode78 子集题目描述 子集问题的解题思路代码框架子集解题代码 动态规划专题 leetcode78 子集 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/subsets 题目描述 给你一个整数数组 nums &#xff0c;数组中的元…

IS220PPDAH1B 336A5026ADP14 GE Speedtronic MKVIe 燃气轮机控制

IS220PPDAH1B 336A5026ADP14 GE Speedtronic MKVIe 燃气轮机控制 IS220PPDAH1B 336A5026ADP14 GE Speedtronic MKVIe 燃气轮机控制 电机控制二次回路功能说明&#xff1a;电气柜、现场操作箱上的停止按钮能在任何状态下让电机停止运行&#xff1b;控制地点选择开关可以选择“本…