Docker虚拟化技术

news2024/11/26 16:51:23

1.3 Docker虚拟化技术概念

Docker是一款轻量级、高性能的虚拟化技术,是目前互联网使用最多的虚拟化技术,Docker虚拟化技术的本质类似集装箱机制,最早集装箱没有出现的时候,码头上有许多搬运的工人在搬运货物,集装箱出现以后,码头上看到更多的不是工人,而且集装箱的搬运模式更加单一,更加高效,还有其他的好处。

将货物多打包在集装箱里面,可以防止货物之间相互影响。并且到了另外一个码头需要转运的话,有了在集装箱以后,直接把它运送到另一个码头即可,完全可以保证里面的货物是整体的搬迁,并且不会损坏货物本身。

Docker技术机制跟集装箱类似,Docker虚拟化 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

Docker容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。
Docker应该是近年最火爆的技术之一,如果没有听说过,那么你就out了,2021年将开启新的跨越。
Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。
Redhat 已经在其 RHEL6.5 中集中支持Docker;
Google 也在其 PaaS 产品中广泛应用,Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。

Docker的基础是 Linux 容器(LXC)等技术。在LXC的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

  • Docker虚拟化技术概念&总结:
    Docker虚拟化技术是在硬件的基础上,基于现有的操作系统层面上实现虚拟化,直接复用本地主机的操作系统,直接虚拟生成Docker容器,而Docker容器上部署相关的APP应用(Apache、MYSQL、PHP、JAVA)。

  • 传统虚拟化技术概念&总结:
    KVM、XEN、ESXI传统虚拟化(完全、半虚拟化)是在硬件的基础上,基于现有的操作系统层面上实现虚拟化,但是不能复用本地主机的操作系统,而是必须虚拟出自己的Guest OS系统,然后在Guest OS系统上部署相关的APP应用(Apache、MYSQL、PHP、JAVA)。

  • 操作启动快:
    运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。

  • 轻量级虚拟化:
    你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。但是传统虚拟化,你虚拟10-20个虚拟机就不错了。

  • 开源免费:
    开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。

为什么使用Docker

Docker 在如下几个方面具有较大的优势:

  • 更快速的交付和部署
    Docker在整个开发周期都可以完美的辅助你实现快速交付。Docker允许开发者在装有应用和服务本地容器做开发。可以直接集成到可持续开发流程中。
    开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

= 高效的部署和扩容
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
Docker的兼容性和轻量特性可以很轻松的实现负载的动态管理。你可以快速扩容或方便的下线的你的应用和服务,这种速度趋近实时。

  • 更高的资源利用率
    Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
    = 更简单的管理
    使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

Docker引擎架构

docker引擎是一个C/S结构的应用,组件如图所示:
在这里插入图片描述
Server是一个常驻进程;
REST API 实现了client和server间的交互协议;
CLI 实现容器和镜像的管理,为用户提供统一的操作界面。
Docker使用C/S架构,Client 通过接口与Server进程通信实现容器的构建,运行和发布。client和server可以运行在同一台集群,也可以通过跨主机实现远程通信,架构如图所示:

在这里插入图片描述

  • Docker镜像&容器&仓库
    熟悉了Docker虚拟化简介、组件和工作原理之后,还需要掌握Docker虚拟化镜像原理&引擎架构等知识。
    Docker虚拟化技术有三个基础概念:Docker镜像、Docker容器、Docker仓库,三个概念详解如下:

1)Docker镜像
Docker虚拟化最基础的组件为镜像,镜像跟我们常见的Linux ISO镜像类似,但是Docker镜像是分层结构的,是由多个层级组成,每个层级分别存储各种软件实现某个功能,Docker镜像是静止的、只读的,不能对镜像进行写操作。
2)Docker容器:
Docker容器是Docker虚拟化的产物,也是最早在生产环境使用的对象,Docker容器的底层是Docker镜像,是基于镜像运行,并且在镜像最上层添加一层容器层之后的实体,容器层是可读、可写的,容器层如果需用到镜像层中的数据,可以通过JSON文件读取镜像层中的软件和数据,对整个容器进行修改,只能作用于容器层,不能直接对镜像层进行写操作。
3)Docker仓库:

Docker仓库是用于存放Docker镜像的地方,Docker仓库分为两类,分别是:公共仓库(Public)和私有仓库(Private),国内和国外有很多默认的公共仓库,对外开放、免费或者付费使用,企业测试环境和生产环境推荐自建私有仓库,私有仓库的特点:安全、可靠、稳定、高效,能够更加自身的业务体系进行灵活升级和管理。

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

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

相关文章

Karl Guttag:现有Micro LED/LCoS+光波导AR眼镜对比解析

轻量化是未来AR眼镜的发展趋势,为了缩减尺寸,AR眼镜厂商尝试了多种方案,长期来看Micro LED光机在小型化上更有优势,但现阶段LCoS光机的图像表现更好。在CES 2023期间,DigiLens、Lumus、Vuzix、OPPO、Avegant也展出了不…

进程通信(同一主机)

1.概述 进程通信机制包括: 传统的UNIX进程间通信:无名管道、有名管道、信号 System V 进程间通信:消息队列、信号量、共享内存 2.管道通信 2.1无名管道 1.特点 (1)适用具有亲缘关系的进程 (2&#x…

C++高精度减法

高精度减法指的是大整数的相减,大整数是用基本数据类型无法存储其精度的整数,位数不超过10^6,注意是位数,不是数值的大小。 因为其精度超过基本的数据类型规定的大小,所以常规的计算方法是不可以实现的,这…

UE4 架构初识(二)

目录 UE4 引擎学习 一、架构基础 1. Pawn (1)DefaultPawn (2)SpectatorPawn (3)Character 2. AController 3. APlayerState 4. 总结 UE4 引擎学习 一、架构基础 1. Pawn UE也是从Actor中再派生…

Zynq-7000、国产zynq-7000的GPIO控制(二)

本文详细说明一下使用SDK中使用MIO/EMIO作为输入中断 SDK中使用MIO/EMIO作为输入中断 这个使用场景可以扩展到PL的可以通过EMIO或者MIO,告知PS中断来了,需要PS处理一些特定事物,当然也可以连接最简单的按键。 这个可以参考SDK自带例程来实…

Python入门教程+项目实战-11.2节: 元组的操作符

目录 11.2.1 元组的常用操作符 11.2.2 []操作符: 索引访问元组 11.2.3 [:]操作符:元组的切片 11.2.4 操作符:元组的加法 11.2.5 *操作符:元组的乘法 11.2.6 元组的关系运算 11.2.7 in操作符:查找元素 11.2.8 知识要点 11…

企业的信息化和数字化有什么区别

数字化是业务新的存在形式,如果说信息化是对业务的局部支撑,那么数字化就是对业务的整体重塑,这是数字化和信息化之间最大的区别,也决定了数字化转型在实施时有着与信息化建设完全不同的底层逻辑。信息化建设和数字化转型有着相同…

手把手教你编写SQLMap的Tamper脚本过狗

本文仅用于技术讨论与学习 测试环境 最新版某狗 测试方法 安全狗其实是比较好绕的WAF,绕过方法很多,但这里我们就用一种:注释混淆 一招鲜吃遍天 注释混淆,其实就是在敏感位置添加垃圾字符注释,常用的垃圾字符有/、…

关于Vue中使用全屏容器无法占满屏幕以及样式不生效问题解决方案

先来看示例问题 App.vue文件 global.css文件 网页效果 可以看到即使设置了宽度和高度为100%都无法占满屏幕,而且容器还超出了屏幕,上拉才可以看到下边框。查看网上解决方法: 1.height设置为100vh, 或者设置为calc(10…

订单交期迟滞,销售回应慢,怎么解决客户问题?

按客户定制产品订单,进行报价和生产的制造企业,有拆解图纸生成物料BOM的工序,通常由企业产品设计部门的拆图员岗位专门负责。 手工制作BOM数据,准确性低 拆图员肉眼查看每页图纸中的表格数据,手动敲键盘填入到企业要…

判空、基本数据类型、stream的groupby、空指针异常

0什么是序列化 1 第一行、第二行就是一个空对象【一个对象的所有元素的值都为null–空对象】 第三行不是空对象,是元素为的对象 那么如何过滤第一行与第二行呢 方式一:在mysql里面 where ISNULL(t.relevance_id)0 and LENGTH(trim(t.relevance_id))&…

Docker Harbor | 私有仓库 | 用户登录 |用户创建

Docker Harbor | 私有仓库 |用户登录 |用户创建 一、Docker Harbor 概述二、Harbor 的核心组件四、Harbor 构建 Docker 私有仓库实战4.1 搭建本地私有仓库4.2 部署 Docker-Compose 服务4.3 启动harbor验证4.4 在其他客户端上传镜像4.5 维护管理Harbor 一、Docker Harbor 概述 …

【校招VIP】面试了一个抽奖的项目,我终于搞明白了,是8股文终于开始作恶了

最近因为招实习生,进行了很多次面试。 但面试的结果不尽人意。 就感觉今年的面试跟以前差距太大了。 直到经过这个同学的面试,我终于明白了是什么原因。 这个同学是南京一所211的研究生,他的项目经历是做了一个抽奖的微服务管理平台。 也…

JAVA 类型的类型转换

JAVA 类型的类型转换 一、基本类型的类型转换 箭头开始的地方是小类型,箭头指向的地方是大类型 我们此处所指的"大"和"小",指的是对应类型的取值范围,不是字节数哦 1.1 小到大(隐式转换) byte m 120; int n m;//小转大,右面的m是小类型,给左面的n大…

【微服务笔记21】微服务组件之Sentinel服务熔断、服务降级、流量控制介绍

这篇文章,主要介绍微服务组件之Sentinel服务熔断、服务降级、流量控制。 目录 一、Sentinel组件 1.1、Sentinel介绍 1.2、Sentinel环境搭建 (1)引入依赖 (2)资源和规则 1.3、使用SphU定义资源 (1&am…

LNMP网站框架搭建

1. Nginx的工作原理 php-fpm.conf 是控制php-fpm守护进程的 php.ini是php解析器 工作进程: 1.客户端通过域名进行请求访问时,会找Nginx对应的虚拟主机 2. Nginx对该请求进行判断,如果是静态请求,Nginx会自行处理,并将处理结果返…

微信小程序原生开发功能合集十三:列表界面的实现

本章实现列表展示组件,包括列表数据加载、筛选、分页加载、快速搜索等功能。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如下:    1. CSDN课程: https://edu.csdn.net/course/detail/379…

提交代码「前置处理」,向前一小步,效率提升「亿点点」

💡 如何巧用 Git Hook,解决代码提交中的代码规范性、冲突和错误以及工作流程问题? 近日,在极狐Tech Talk 直播上,极狐(GitLab) 后端工程师田鲁分享了自己的实践经验。以下内容整理自本次直播,你也可以点击文…

Linux第二章

文章目录 前言一、Linux系统的目录结构和路径表达形式二、Linux命令基础1.ls命令入门2.ls命令的参数和选项3.-cd-pwd命令4.相对路径绝对路径和特殊路径符5.-mkdir命令6.-touch-cat-more-命令7.-cp-mv-rm-命令8.-which-find命令9.-grep-wc-管道符10.-echo-tail-重定向符11.-vi编…

Spring Boot自动装配

目录 是什么? 自动装配的原理 进入SpringBootApplication注解 点击进入EnableAutoConfiguration注解 AutoConfigurationImportSelector(核心) 点进getAutoConfigurationEntry()方法: 点进getCandidateConfigurations() 流程图 是什么&…