什么是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.mzph.cn/news/719340.shtml

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

相关文章

linux安装mysql5.7

linux安装mysql5.7 一、下载mysql5.7二、解压包介绍三、上传包到linux四、卸载mariadb五、安装mysql六、修改权限七、启动mysql八、使用过navicat创作不易,笔记不易,如觉不错,请三连,谢谢~~ 一、下载mysql5.7 去mysql官方下载&am…

MES系统在离散制造企业中的功能解析

随着信息技术的快速发展和制造业的转型升级,MES在离散制造企业中的作用日益凸显。MES系统不仅提高了生产效率和产品质量,还优化了资源配置,增强了企业的市场竞争力。 一、生产管理功能 MES系统能够实时监控生产现场的各种数据,包…

二叉搜索树题目:将有序数组转换为二叉搜索树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法证明代码复杂度分析 题目 标题和出处 标题:将有序数组转换为二叉搜索树 出处:108. 将有序数组转换为二叉搜索树 难度 4 级 题目描述 要求 给定整数数组 nums \texttt{nums}…

15 easy 141. 环形链表

法1:快慢指针法: //给你一个链表的头节点 head ,判断链表中是否有环。 // // 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数…

Python爬虫副业真的可行吗?

首先回答你,是可行的,python爬虫能当副业,副业的方式比较多,等下我会讲几种。 那学到哪个层次可以接单呢?主要看你是接什么样的单,爬一些资料,视频这种简单的学一两个月就没什么问题&#xff0…

第一天 走进Docker的世界

第一天 走进Docker的世界 介绍docker的前世今生,了解docker的实现原理,以Django项目为例,带大家如何编写最佳的Dockerfile构建镜像。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像&…

一文读懂Persistence One- 如何将Restaking带入Cosmos

Persistence One正在将Restaking引入Cosmos。用户将能够通过pSTAKE、Stride、Quicksilver和Milkyway将Liquid Staked Tokens(如ATOM、TIA、DYDX等)存入Persistence One,对其进行Restaking,从而安全地连接更多区块链,首…

MySQL:数据库中有哪些锁

1、全局锁 加上全局锁后整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞: 对数据的增删改操作,比如 insert、delete、update等语句;对表结构的更改操作,比如 alter table、drop table 等…

Android APK包反编译为java文件教程

方法 流程: test.apk -> smali文件 -> dex文件 -> jar文件 ->java 文件 将APK包解压为 smail文件 下载 apktool工具 apktool.jar 将 test.apk 和 apktool.jar放同一目录下,并执行以下命令 java -jar apktool.jar d -f xxx.apk -o xxx(解…

【如何像网吧一样弄个游戏菜单在家里】

GGmenu 个人家庭版游戏、应用管理 桌面图标管理器

[环境配置]ssh连接报错“kex_exchange_identification: read: Connection reset by peer”

已经被VScode ssh毒死好几次了,都是执行命令意外中断,然后又VSCode里连不上、本机Terminal也连不上了。。。 重启远程服务器,VSCode可以连上了, 系统ssh还是不行,报错“kex_exchange_identification: read: Connecti…

Java学习笔记002——类的修饰符

在Java语言中,类的访问修饰符决定了其它类能够访问该类的方式。类有如下4种访问修饰符,在创建类时用于类的声明: 1、public: 当一个类被声明为public时,它可以从任何其他类中被访问,无论这些类位于哪个包中。通常&am…

数字化转型导师坚鹏:BLM证券公司数字化转型战略

BLM证券公司数字化转型战略 ——以BLM模型为核心,实现知行果合一 课程背景: 很多证券公司存在以下问题: 不知道如何系统地制定证券公司数字化转型战略? 不清楚其它证券公司数字化转型战略是如何制定的? 不知道…

Redis 淘汰策略、持久化、高可用

淘汰策略 只有 redis 内存空间已满并且往里面写新数据,才会触发淘汰策略。通过 expire / / /pexpire 让 key-value 过期,从而让 redis 清除这个 key-value。value 的数据结构typedef struct redisObject {unsigned tpye:4;unsigned encoding:4;// 判断哪…

Linux基础命令[10]-cmp

文章目录 1. cmp 命令说明2. cmp 命令语法3. cmp 命令示例3.1 不加参数3.2 -b(显示不同的字节)3.3 -i(跳过字节)3.4 -l(显示所有不同)3.5 -n(比较n个字节)3.6 -s(不显示信…

el-select 不能重复选择

el-select 不能重复选择&#xff0c;注意&#xff1a;删除后可以再次重新被选择 <el-form-item><el-select v-model"attribute.attributeSelect" change"changeSelect()" placeholder"请选择属性分组" clearable><el-optionv-fo…

PostgreSQL restartpoint 原理详解

背景 大部分人对 PG 的 checkpoint 机制会熟悉一点&#xff0c;但是对 restartpoint 却不太熟悉&#xff0c;网上介绍这方面的文章也比较少。因此&#xff0c;本文将以 PG 14.7 的社区代码为基础&#xff0c;介绍 PG 中的 restartpoint 机制。 原理介绍 什么是 restartpoint…

Mysql学习之各种锁

锁 事务的隔离性由锁来实现 MySQL并发事务访问相同记录 并发事务访问相同记录的情况大致可以分为3种&#xff1a; 读-读的情况 读-读情况&#xff0c;即并发事务相继读取相同的记录。读取操作本身不会对记录由有任何的影响&#xff0c;并不会引起什么问题&#xff0c;所以允许…

简要讲解OV7725摄像头

本文主要包含以下几部分内容&#xff1a; 1. 通过OV7725分析模块原理图。 2. 讲解部分寄存器的含义、RGB565格式图像输出时序、帧率计算。 3. 讲解SCCB协议与I2C协议的区别。 1、OV7725功能 OV7725是一款1/4英寸单芯片图像传感器&#xff0c;其感光阵列达到640*480&#xff0c…

【MySQL 系列】在 Windows 上安装 MySQL

在 Windows 平台上安装 MySQL 很简单&#xff0c;并不需要太复杂的步骤。按照本文的步骤操练起来就可以了。 文章目录 1、下载 MySQL 安装程序2、安装 MySQL 数据库2.1、选择安装类型2.2、检查所需组件2.3、安装所选产品组件2.4、产品配置2.5、配置高可用性2.6、配置服务器类型…