云原生——Docker容器化实战

news/2024/11/28 10:46:05/

❄️作者介绍:奇妙的大歪❄️

🎀个人名言:但行前路,不负韶华!🎀

🐽个人简介:云计算网络运维专业人员🐽

前言

       "Docker"一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主导支持此类项目的公司 Docker Inc.,以及该公司官方支持的工具。这些技术和公司的同名可能会造成混淆。

 目录

为什么需要Docker容器?

Docker容器具有以下三大特点:

Docker容器 VS VM

Docker容器是如何工作的?

Docker的三大组成要素:

​编辑Docker运行流程


为什么需要Docker容器?

虚拟机(Virtual Machine,简称VM)的发展,减轻了企业对硬件资源的依赖,它将一台物理设备虚拟为多个逻辑设备,每个逻辑设备可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高设备的工作效率。然而,传统VM需要安装操作系统才能执行应用程序,占用系统资源过多。多数情况下,用户只需要运行简单的应用程序,采用VM技术操作繁琐且造成资源浪费。倘若需要迁移应用服务程序,则需迁移整个VM,因此企业迫切需要轻量级的虚拟化技术。

容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。但是它不像VM采用操作系统级的资源隔离,容器采用的是进程级的系统隔离。Docker作为创建容器的主流工具,近年来迅速发展,它的优势在于可以让开发者将企业需要的各种应用及应用依赖文件封装在Docker镜像文件中,然后在任何物理设备(Linux设备或Window设备等)上安装运行实现虚拟化,让应用程序彻底脱离底层设备,可以在物理机之间灵活迁移部署,使运维工程师摆脱了繁琐的环境部署,极大的提高了工作效率,同时减少了部署过程中的潜在风险。

 

Docker容器具有以下三大特点:

  • 轻量化:一台主机上运行的多个Docker容器可以共享主机操作系统内核;启动迅速,只需占用很少的计算和内存资源。
  • 标准开放:Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
  • 安全可靠:Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台主机。

Docker容器 VS VM

Docker容器和传统VM技术,在技术实现上有所不同。下图显示的是VM与Docker容器的逻辑组成:

  • VM:使用Hypervisor提供虚拟机的运行平台,管理每个VM中操作系统的运行。每个VM都要有自己的操作系统、应用程序和必要的依赖文件等。
  • Docker容器:使用Docker引擎进行调度和隔离,提高了资源利用率,在相同硬件能力下可以运行更多的容器实例;每个容器拥有自己的隔离化用户空间。


虚拟机与Docker容器对比

相较于VM,Docker容器作为一种轻量级的虚拟化方式,在应用方面具有以下显著优势:

  • Docker容器可以在秒级时间内快速启动和停止,相较传统虚拟机显著提升。
  • Docker容器对系统资源要求低,数千个Docker容器可同时运行在同一个主机上。
  • Docker容器通过类似Git的操作来方便用户获取和更新应用镜像。
  • Docker容器通过Dockerfile配置文件实现自动化创建和灵活部署,提高工作效率。
  • Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,保证应用性能的同时,尽量减小系统开销。

下图可直观了解Docker容器与传统VM方式的区别:

 Docker容器与传统VM的区对比

Docker容器是如何工作的?

Docker的三大组成要素:

  • 镜像:Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像可以用来创建Docker容器,用户可以使用设备上已有的镜像来安装多个相同的Docker容器。
  • 容器:镜像创建的运行实例,Docker利用容器来运行应用。每个容器都是相互隔离的、保证安全的平台。我们可以把容器看做是一个轻量级的Linux运行环境。
  • 镜像仓库:集中存放镜像文件的地方。用户创建完镜像后,可以将其上传到公共仓库或者私有仓库,需要在另一台主机上使用该镜像时,只需要从仓库上下载即可。

Docker容器的运行逻辑如下图所示,Docker使用客户端/服务器 (C/S) 架构模式,Docker守护进程(Docker daemon)作为Server端接收Docker客户端的请求,并负责创建、运行和分发Docker容器。Docker守护进程一般在Docker主机后台运行,用户使用Docker客户端直接跟Docker守护进程进行信息交互。


Docker运行流程

其中:

  • Docker客户端:用于和Docker守护进程(Docker Daemon)建立通信的客户端。Docker客户端只需要向Docker服务器或者守护进程发出请求(Docker构建、Docker拉取和Docker启动等指令),服务器或者守护进程将完成所有工作并返回结果。
    • 如橙色流程所示,执行Docker构建指令会根据Docker文件构建一个镜像存放于本地Docker主机。
    • 如蓝色流程所示,执行Docker拉取指令会从云端镜像仓库拉取镜像至本地Docker主机或将本地镜像推送至远端镜像仓库。
    • 如黑色流程所示,执行Docker启动指令会将镜像安装至容器并启动容器。
  • Docker主机:一个物理或者虚拟的机器用于执行 Docker守护进程和容器。
  • Docker守护进程:接收并处理Docker客户端发送的请求,监测Docker API的请求和管理Docker对象,比如镜像、容器、网络和数据卷。

EC-IoT解决方案基于“边缘智能+云化管理”平台,物联网关开放边缘计算能力,快速适配不同行业边缘智能数据处理需求,实现关键业务本地毫秒级实时响应,完成数据本地聚合优化,高价值数据主动回传云端。

边缘计算网关基于“硬件平台化,业务APP化”的设计理念,终端功能由APP软件定义,用户基于基础服务接口开发自定义APP,并实现在边缘计算网关的灵活部署,快速适应业务需求复杂多变的物联场景。边缘计算网关支持部署Docker容器,用户可在部署的容器上安装自己的业务APP,同时网关设备提供各种eSDK接口供容器和APP调用其资源。

 EC-IoT解决方案

 网关开放性

🎀看都看到这里啦留个三连再走吧!!你们的支持就是我的动力!!!🎀🎀🎀


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

相关文章

vite+react+ts+eslint+prettier构建react开发项目

目录 一、构建项目 二、安装eslint和prettier的依赖 三、修改.eslintrc.cjs,创建.prettierrc.cjs 1、.eslintrc.cjs文件配置 2、.prettierrc.cjs文件配置 三、将错误显示在页面上 1、安装vite-plugin-eslint插件 2、vite.config.ts文件配置 本文将介绍vite作为脚手架构…

关于白化

白化的目的是降低数据的冗余性,具体来讲: (1)特征之间相关性较低; (2)所有特征具有相同的方差。 当我们进行对图像训练时,由于图像个像素之间具有较高的相关性,此时白化…

matlab白化权函数,《灰色系统、白化规律和白化权函数.pdf》-支持高清全文免费浏览-max文档...

灰色系统、白化规律与白化权函数 董奋义 刘斌 (河南农业大学信息与管理科学学院 郑州 450002 ) 摘 要 灰色系统理论研究信息匮乏导致的内涵不确定性问题。由于只掌握部分信息,使得在对象内涵的把握方面呈现认知灰色 性。基于与概率统计和模糊数学的探询规律的对比角度,本文论…

基础算法:白化

Whitening:白化 主要分为PCA白化和ZCA白化,是一种重要的预处理过程,其目的就是降低输入数据的冗余性,使得经过白化处理的输入数据具有如下性质:(但是真的使用是,就很少2出现) 1.特征之间相关性…

白化ZCA

参考资料: PCAWhiteningImplementing PCA/Whitening白化:https://my.oschina.net/findbill/blog/543485 什么是白化? 维基百科给出的描述是: 即对数据做白化处理必须满足两个条件: 使数据的不同维度去相关&#xf…

白化滤波器matlab程序,04实验四:白化滤波器的设计实验报告

⑶引用实验一中编制的测试均值、方差、相关函数(包括自相关函数)及实验三中功率谱密度的程序计算有色噪声的这些参数,并将计算结果存入文件中。 【实验报告要求】 ⑴简述实验目的及实验原理。 ⑵按实验的记录数据画出有色噪声信号和其通过白化滤波器后的均值方差、相…

语音处理:音频信号采样点白化方法初探

语音处理:音频信号采样点白化方法初探 公式效果说明功能实现C代码效果实现Python代码效果改进遗留问题参考资料 附:C代码在线调试工具 公式 滑动平均滤波器(Moving Average Filter, MA): 公式说明如下: Xi表示信号幅值&#xf…

PCA与白化

转载自:https://my.oschina.net/findbill/blog/543485 为什么80%的码农都做不了架构师?>>> 教程地址:斯坦福深度学习 白化 什么是白化? 维基百科给出的描述是: 即对数据做白化处理必须满足两个条件&#x…