什么是Docker容器?

Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,Docker容器提供轻量化的虚拟化方式、安装便捷、启停速度快。

收藏丨运维良药,K8S日常故障处理集锦_k8s容器突然没了-CSDN博客

RHCE 9.0培训课程之容器技术的运行-CSDN博客

为什么需要Docker容器

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

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

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

  • 轻量化:一台主机上运行的多个Docker容器可以共享主机操作系统内核;启动迅速,只需占用很少的计算和内存资源。

  • 标准开放:Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。

  • 安全可靠:Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台主机。

Docker容器 VS VN

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.hqwc.cn/news/511750.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序用户隐私保护指引设置

场景:开发小程序时,有时候需要获取用户隐私信息,在提交小程序审核时,需要填写一份隐私保护协议,经常由于填写不规范导致审核不通过,在网上找到了一份模块可供参考 步骤:小程序后台-》设置-》服…

09 闭环线程 LoopClosing

文章目录 09 闭环线程 LoopClosing9.1 主函数:Run()9.1.1 闭环检测9.1.2 计算Sim3变换(相似变换): ComputeSim3()9.1.4 闭环矫正: CorrectLoop() 09 闭环线程 LoopClosing 9.1 主函数:Run() 成员函数/变量访问控制意义CheckNewK…

【单调栈】Leetcode 739.每日温度

【单调栈】Leetcode 739.每日温度 解法:维护单调栈栈中存的是数组的索引 解法:维护单调栈栈中存的是数组的索引 栈中存的是数组的索引 当新的值比当前栈顶的大,那么就执行出栈-更新result数组-判断当新的值比当前栈顶的大?的循环…

笨办法学 Python3 第五版(预览)(二)

原文:Learn Python the Hard Way, 5th Edition (Early Release) 译者:飞龙 协议:CC BY-NC-SA 4.0 练习 19:函数和变量 现在你将把函数与你从之前练习中了解到的变量结合起来。如你所知,变量给数据片段一个名称&#x…

tomcat优化、nginx +tomcat 部署 (三)

在目前流行的互联网架构中,Tomcat在目前的网络编程中是举足轻重的,由于Tomcat的运行依赖于JVM,从虚拟机的角度把Tomcat的调整分为外部环境调优 JVM 和 Tomcat 自身调优两部分 Tomcat 是一个流行的开源 Java 服务器,用于托管 Java …

亚信安慧AntDB:融合架构下的数据管理利器

AntDB的独特架构将集中式和分布式部署模式巧妙融合,为用户提供了全方位的数据管理解决方案。这种一站式的特性使得用户无需在不同系统间来回切换,极大地提高了工作效率。 AntDB同时具备集中式和分布式系统的优点,集中式架构拥有简单易用、管…

正则表达式-分组

1、oracle-正则表达式:将09/29/2008 用正则表达式转换成2008-09-29 select regexp_replace(09/29/2008, ^([0-9]{2})/([0-9]{2})/([0-9]{4})$, \3-\1-\2) replace from dual; 解析:regexp_replace-替换, 第一个参数:需要进行处…

(一)多层感知器(神经网络)与激活函数--九五小庞

单个神经元(二分类) 多个神经元(多分类) 多层感知器 多层感知器,他是一种深度学习模型,通过多层神经元的连接和激活来解决非线性问题。 激活函数 激活函数的种类包括relu,sigmoid和tanh等 …

WebGIS开发0基础必看教程:通过行列号来换算出多种瓦片的URL之在线地图(下)

1.前言 这篇文章里,我主要针对OGC标准中的WMS、WMTS以及ArcGIS的在线地图服务来进行解析。 写之前,我先来给大家提一下OGC是什么。OGC的全名是Open GIS Consortium,中文名是开放地理空间信息联盟,它是一个是非盈利、志愿的国际标…

30分钟做200多张报表的金蝶云星空BI方案来了

曾经一张报表都要做好久,但现在,200多张的BI数据分析报表只需30分钟就能完成!BI智能数据分析的高效性在这一刻具象化了。奥威-金蝶云星空BI方案,一套注册、下载、执行,即见效果的标准化BI数据分析方案。 30分钟&#…

k8s-prometheus应用监控 23

使用prometheus监控,结合prometheus传递的指标,从而实现业务监控的自动化弹缩。 注:部署集群需要消耗较大的内存,需要提前扩容各节点的内存量至少达到4g 部署一个用于被监控的应用 上传所需镜像 修改yaml文件 部署完成 没有就绪是…

【Python】进阶学习:pandas--rename()用法详解

【Python】进阶学习:pandas-- rename()用法详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的…