当前位置: 首页 > news >正文

容器技术概述

容器技术概述

软件应用程序通常依赖于运行时环境提供的其他库、配置文件或服务。软件应用程序的传统运行环境是物理主机或虚拟机,应用程序依赖项作为主机的一部分安装。

例如,考虑一个 Python 应用程序,它需要访问实现 TLS 协议的公共共享库。传统上,系统管理员会在安装 Python 应用程序之前安装提供共享库的所需包。

传统部署的软件应用程序的主要缺点是应用程序的依赖项与运行时环境密切相关。

当对基本操作系统 (OS) 应用任何更新或补丁时,应用程序可能会中断。

例如,对 TLS 共享库的操作系统更新删除了 TLS 1.0 作为受支持的协议。这会破坏已部署的 Python 应用程序,因为它被编写为使用 TLS 1.0 协议进行网络请求。这迫使系统管理员回滚操作系统更新以保持应用程序运行,从而阻止其他应用程序使用更新包的好处。

因此,开发传统软件应用程序的公司可能需要进行全套测试,以保证操作系统更新不会影响主机上运行的应用程序。

此外,传统部署的应用程序必须在更新关联的依赖项之前停止。为了最大限度地减少应用程序停机时间,组织设计和实施复杂的系统以提供其应用程序的高可用性。在单个主机上维护多个应用程序通常变得很麻烦,并且任何部署或更新都有可能破坏组织的应用程序之一。

图 1.1:容器与操作系统的区别
或者,可以使用容器部署软件应用程序。

容器是一组独立于系统其余部分的一个或多个进程。

容器提供了许多与虚拟机相同的好处,例如安全性、存储和网络隔离。容器需要的硬件资源要少得多,而且启动和终止都很快。它们还隔离了应用程序的库和运行时资源(例如 CPU 和存储),以最大限度地减少任何操作系统更新对主机操作系统的影响,如图1.1:容器与操作系统的差异中所述。

容器的使用不仅有助于提高托管应用程序的效率、弹性和可重用性,还有助于提高应用程序的可移植性。Open Container Initiative (OCI) 提供了一组定义容器运行时规范和容器映像规范的行业标准。镜像规范定义了构成容器镜像的文件和元数据包的格式。当您将应用程序构建为符合 OCI 标准的容器镜像时,您可以使用任何符合 OCI 标准的容器引擎来执行该应用程序。

有许多容器引擎可用于管理和执行单个容器,包括 Rocket、Drawbridge、LXC、Docker 和 Podman。Podman 在 Red Hat Enterprise Linux 7.6 及更高版本中可用,并在本课程中用于启动、管理和终止单个容器。

以下是使用容器的其他主要优势:

  • 低硬件占用空间
    容器使用 OS 内部功能来创建一个隔离的环境,在该环境中,使用命名空间和 cgroup(控制组)等 OS 设施管理资源。与虚拟机管理程序相比,这种方法最大限度地减少了 CPU 和内存开销。在 VM 中运行应用程序是一种与运行环境隔离的方法,但它需要大量的服务来支持容器提供的相同的低硬件占用空间隔离。

  • 环境隔离
    容器在封闭环境中工作,在该环境中对主机操作系统或其他应用程序所做的更改不会影响容器。由于容器所需的库是独立的,因此应用程序可以无中断地运行。例如,每个应用程序都可以存在于具有自己的库集的自己的容器中。对一个容器所做的更新不会影响其他容器。

  • 快速部署
    容器部署很快,因为不需要安装整个底层操作系统。通常,为了支持隔离,需要在物理主机或 VM 上安装新的操作系统,任何简单的更新都可能需要完全重启操作系统。容器重启不需要停止主机操作系统上的任何服务。

  • 多环境部署
    在使用单个主机的传统部署场景中,任何环境差异都可能破坏应用程序。但是,使用容器时,所有应用程序依赖项和环境设置都封装在容器映像中。

  • 可重用性
    无需设置完整的操作系统即可重复使用同一容器。例如,每个开发人员都可以使用提供生产数据库服务的同一数据库容器在应用程序开发期间创建开发数据库。使用容器,不再需要维护单独的生产和开发数据库服务器。单个容器映像用于创建数据库服务的实例。

通常,软件应用程序及其所有相关服务(数据库、消息传递、文件系统)都在单个容器中运行。这可能会导致与传统软件部署到虚拟机或物理主机相关的相同问题。在这些情况下,多容器部署可能更合适。

此外,容器是使用微服务进行应用程序开发的理想方法。每个服务都封装在一个轻量级且可靠的容器环境中,可以部署到生产或开发环境中。应用程序所需的容器化服务集合可以托管在一台机器上,无需为每个服务管理一台机器。

相比之下,许多应用程序不太适合容器化环境。例如,由于容器限制,访问内存、文件系统和设备等低级硬件信息的应用程序可能不可靠。

相关文章:

容器技术概述

容器技术概述 软件应用程序通常依赖于运行时环境提供的其他库、配置文件或服务。软件应用程序的传统运行环境是物理主机或虚拟机,应用程序依赖项作为主机的一部分安装。 例如,考虑一个 Python 应用程序,它需要访问实现 TLS 协议的公共共享库…...

「SAP」ABAP模块学习需要了解什么?快收下这份ABAP技术栈指南【附技能树】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计专业大二本科在读,阿里云社区专家博主,华为云社区云享专家,CSDN SAP应用技术领域新兴创作者。   在学习工…...

【python 基础篇 九】python的常用数据类型操作-------时间日历

目录1.python时间操作1.1 time模块1.2 calendar模块1.3 datetime模块1.python时间操作 python程序能用很多方式处理日期和时间,转换日期格式也是一个常见功能。 1.1 time模块 ​ 提供了处理时间和表示之间转换的功能 获取当前时间戳 概念:从0时区的1…...

华为OD机试真题Python实现【相同字符连续出现的最大次数】真题+解题思路+代码(20222023)

相同字符连续出现的最大次数 题目 输入一串字符串 字符串长度不超过100 查找字符串中相同字符连续出现的最大次数 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 输入只有一行,包含一个长度不超过100的字符串 输出描述 输出只…...

【Unity3D】空间和变换

1 空间 1.1 左右手坐标系及其法则 1.1.1 左右手坐标系 左手坐标系与右手坐标系Unity 局部空间、世界空间、裁剪空间、屏幕空间都采用左手坐标系,只有观察空间采用右手坐标系。 左右手坐标系除了坐标系朝向(旋向性)不同,还存在以…...

脑洞|ChatGPT加持下,ChatOps将如何革新团队协作与运维管理?

要说近期科技圈 “顶流”,非 ChatGPT 莫属。 比起目前常见的语音助手与聊天 bot,这位机器人显得更有 “人味儿”,不仅能模拟人类的语气,跟你聊得有来有回,还能写剧本、编音乐、写代码。 说到聊天工具,就让…...

华为OD机试真题Python实现【找数字】真题+解题思路+代码(20222023)

找数字 题目 给一个二维数组nums,对于每一个元素num[i],找出距离最近的且值相等的元素,输出横纵坐标差值的绝对值之和,如果没有等值元素,则输出-1。 例如: 输入数组nums为 0 3 5 4 2 2 5 7 8 3 2 5 4 2 4对于 num[0][0] = 0,不存在相等的值。 对于 num[0][1] = 3,存…...

【Database-01】达梦数据库Docker版下载安装

1、前往达梦数据库官网下载 https://www.dameng.com/1.1、选择数据库 - 数据库产品系 1.2、选择 达梦数据库管理系统(DM8) 1.3、点击试用下载 1.4、注册达梦账户 1.5、选择DM8 Docker镜像 https://www.dameng.com/list_103.html1.6、或者使用以下网址也…...

Allegro如何打开格点显示效果操作指导

Allegro如何打开格点显示效果操作指导 Allegro可以设置格点显示效果,以格点来判定走线等等是否都处于格点上,如下图 如何打开格点显示效果,具体操作如下 点击Setup点击Grids...

电子技术——反馈放大器的分析方法总结

电子技术——反馈放大器的分析方法总结 第一种也是最简单的估算方法,直接拿出反馈网络,计算 β\betaβ 则假设在 AβA\betaAβ 无限大的情况下有 Af≃1/βA_f \simeq 1/\betaAf​≃1/β 。开环法。比第一种方法更能精确的估计 AAA 和 β\betaβ 的值。系…...

微服务系统启动,环境从0开始的搭建过程

1. JDK的下载安装(傻瓜式) 安装过程傻瓜式,直接一步到位。我安装的版本为:jdk-17_windows-x64_bin 2. 集成开发工具的下载安装:IDEA(傻瓜式) ideaIU-2021.2.1 网上资源很多,自己找…...

手工测试1年经验面试,张口要13K,我真是服了····

由于朋友临时有事, 所以今天我代替朋友进行一次面试,他需要应聘一个测试工程师, 我以很认真负责的态度完成这个过程, 大概近30分钟。 主要是技术面试, 在近30分钟内, 我与被面试者是以交流学习的方式进行的…...

【保姆级】手把手捋动态代理流程(JDK+Cglib超详细源码分析)

简介动态代理,通俗点说就是:无需声明式的创建java代理类,而是在运行过程中生成"虚拟"的代理类,被ClassLoader加载。 从而避免了静态代理那样需要声明大量的代理类。上面的简介中提到了两个关键的名词:“静态…...

Appium自动化测试 Inspector定位Webview/H5页面元素

目录操作步骤Python操作该混合App代码Appium在操作混合App或Android App的H5页面时, 常常需要定位H5页面中的元素, 传统方式是 FQ 使用Chrome://inspect来定位元素, 环境准备相当繁琐, 不仅需要想办法FQ, 而且还需要Android设备安装Google框架以及手机版Chrome浏览器以及相应的…...

数组求和方法总结,学点干货

1.循环 &#xff08;新手用&#xff09; 1.1 普通for 循环 简单质朴 const arr [1, 2, 3, 4, 5];let sum 0;for (let i 0; i < arr.length; i) {sum arr[i];}1.2 for in 循环 与普通for循环大同小异 const arr [1, 2, 3, 4, 5];let sum 0;for (let i in arr) {sum …...

斗地主洗牌发牌-课后程序(JAVA基础案例教程-黑马程序员编著-第六章-课后作业)

【案例6-4】 斗地主洗牌发牌 【案例介绍】 1.任务描述 扑克牌游戏“斗地主”&#xff0c;相信许多人都会玩&#xff0c;本案例要求编写一个斗地主的洗牌发牌程序&#xff0c;要求按照斗地主的规则完成洗牌发牌的过程。一副扑克总共有54张牌&#xff0c;牌面由花色和数字组成…...

基于antd封装的二次业务筛选组件-table-filter

文档地址&#xff1a;https://flowerofsummer.github.io/components/ 业务筛选组件 支持各种类型的高级搜索组件 基础用法 组件响应式布局&#xff0c;默认显示两行&#xff0c;可以通过 maxLineCount 配置最多显示行数每行个数&#xff1a; 如果含有 time-range&#xff0…...

逆向-还原代码之max 再画堆栈图 (Interl 64)

// source code #include <stdio.h> void max(int * a, int * b) { if (*a < *b) *a *b; } int main() { int a 5, b 6; max(&a, &b); printf("a, b max %d\n", a); return 0; } // 再画堆栈图 下周一&#xff08;2.27…...

GitHub标星30K+的Java面试八股文长啥样?

2023年的互联网行业竞争越来越严峻&#xff0c;面试也是越来越难&#xff0c;一直以来我都想整理一套完美的面试宝典&#xff0c;奈何难抽出时间&#xff0c;这套1000道的Java面试手册我整理了整整1个月&#xff0c;上传到Git上目前star数达到了30K 一、32 道 MySQL 面试题 1&…...

CVE-2022-39197 POC(CobaltStrike XSS <=4.7)漏洞复现

漏洞说明 根据9.20日CobaltStrike官方发布的最新4.7.1版本的更新日志中介绍&#xff0c;<4.7的teamserver版本存在XSS漏洞&#xff0c;从而可以造成RCE远程代码执行 一位名为“Beichendream”的独立研究人员联系我们&#xff0c;告知我们他们在团队服务器中发现的一个 XSS …...

我们来说说蹿红的AIGC到底是什么?ChatGPT又是什么?

近期&#xff0c;人工智能&#xff08;AI&#xff09;领域动作频频&#xff0c;OPENAI公司Chat GPT的出现&#xff0c;标志着人工智能的研究与应用已经进入了一个崭新的发展阶段&#xff0c;国内腾讯、阿里巴巴、百度、易网、国外微软、谷歌、苹果、IBM、Amazon&#xff0c;等互…...

新手如何从零开始搭建配置Windows云服务器?

新手如何从零开始搭建配置Windows云服务器&#xff1f;本文是搭建 Windows 云服务器入门教程&#xff0c;主要介绍如何从零开始&#xff0c;以最简单的方式搭建和配置你的Windows 云服务器。如果您之前没有搭建云服务器的经验&#xff0c;建议您按照本文介绍的方式来购买和配置…...

百趣代谢组学-抑郁症居然“男女有别”,脑膜淋巴管起关键作用!

文章标题&#xff1a;A functional role of meningeal lymphatics in sex difference of stress susceptibility in mice 发表期刊&#xff1a;Nature Communications 影响因子&#xff1a;17.694 发表时间&#xff1a;2022年8月 作者单位&#xff1a;中山大学中山医学院 …...

C语言实现用堆解决 TOP-K 问题

目录 TopK函数实现 如何测试 完整源码 生活中我们经常能见到TopK问题&#xff0c;例如&#xff1a;专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 所以&#xff0c;TopK问题即求出一组数据中前K个最大或最小的元素&#xff0c;一般情况下&#xff0c;数据量都…...

MySQL 数据库基础命令

MySQL 基础命令 一.了解数据库 1、了解数据库对象 1.表&#xff1a; 用于以有组织方式存储数据。以行和列的格式包含数据。 2.索引&#xff1a; 是内部表结构&#xff0c;MySQL 用它基于一列或多列的值来提供对表中各行的快速访问。 3.视图&#xff1a; 是虚拟表&#…...

说一下this,实现apply、call

理解this 在ES5中&#xff0c;this的指向始终坚持一个原理&#xff1a;“this永远指向最后调用它的那个对象”&#xff0c;切记这句话。下面看几个例子。 例一 var obj {name: zhangsan,say: function() {console.log(this.name);} }obj.say() // zhangsan 最基本的使用&am…...

华为OD机试真题Python实现【总最快检测效率】真题+解题思路+代码(20222023)

总最快检测效率 题目 在系统、网络均正常情况下,组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同,采样效率为N人/小时。 由于外界变化,采样员的效率会以M人/小时为粒度发生变化,M 为采样效率浮动粒度, M=N*10%,输入保证N*10%的结果为整数。 采样…...

【历史上的今天】2 月 23 日:Enigma 密码机申请专利;戴尔电脑创始人出生;Mellanox 收购 EZchip

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 2 月 23 日&#xff0c;在 2006 年的今天&#xff0c;都灵冬奥会自由式滑雪男子空中技巧决赛在意大利都灵萨奥兹杜尔克斯滑雪场举行。中国选手韩晓鹏战胜众多好…...

新手入门吉他推荐,第一把吉他从这十款选绝不踩雷!初学者吉他选购指南【新手必看】

一、新手购琴注意事项&#xff1a; 1、预算范围 一把合适的吉他对于初学者来说会拥有一个很好的音乐启蒙。选一款性价比高&#xff0c;做工材料、音质和手感相对较好的吉他自然不会是一件吃亏的事。**初学者第一把琴的预算&#xff0c;我觉得最低标准也是要在500元起&#xf…...

XSS注入进阶练习篇(三) XSS原型链污染

XSS原型链污染1.原型链的概念1.1 构造函数的缺点1.2 prototype 属性的作用1.3 原型链1.4 constructor属性1.5 prototype和__proto__2. 原型链污染2.1 原型链污染是什么&#xff1f;2.2 原型链污染的条件2.3 原型连污染实例2.3.1 hackit 20182.3.2 challenge-04223.总结1.原型链…...