容器技术概述

news/2024/5/21 1:02:25/文章来源:https://blog.csdn.net/xixihahalelehehe/article/details/129138769

容器化应用程序

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

例如,考虑一个 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 上安装新的操作系统,任何简单的更新都可能需要完全重启操作系统。容器重启不需要停止主机操作系统上的任何服务。

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

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

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

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

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

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

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

相关文章

Leaf说明

什么是Leafleaf是叶子的意思我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统我们可以在Github网站上下载项目直接使用为什么需要Leaf上面的图片中是一个实际开发中常见的读写分离的数据库部署格式专门进行数据更新(写)的有两个数据库节点它们同时新增数据可能产生…

性能测试学习和性能瓶颈分析路线

很多企业招聘都只写性能测试,会使用LR,jmeter工具。其实会使用jmeter和LR进行性能测试还只是性能测试的第一步,离真正的性能测试工程师还很远,笔者也还在路上 .。 性能测试,都是要求测试系统性能,系统自然…

【nas折腾篇】抉择吧,是入门还是放弃

2018年公司一位女同事问群晖的nas是否值得买。我一脸懵,以前给公司买云服务有采购nas盘,直接mount挂到服务器上当存储,但对于单独的nas服务器没有什么概念。一晃几年过去了,陆续刷到些nas服务的视频,周边朋友用nas的也…

2021-08-29

服务器 主:172.17.0.2 master 备:172.17.0.3 slave1 lvs虚拟IP:172.17.0.100 #nginx下载地址 http://nginx.org/download/ 本地文件路径 1.dockerfile构建nginx FROM centos:7 ADD nginx-1.6.0.tar.gz /usr/local COPY nginx_install.sh /usr/local RUN sh …

k8s种的kubectl命令

一.kubectl基本命令1.1 称述式资源管理的方法kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息…

【单目标优化算法】海鸥优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

数组(一)-- LeetCode[26][80] 删除有序数组中的重复元素

1 删除有序数组中的重复项 1.1 题目描述 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度&#xff0c…

内部知识管理应该怎么做?

许多公司都知道需要有一个面向客户的知识库,以加强客户服务,提供更好的客户体验。 但是很多企业没有意识到的是,拥有一个内部知识库软件对于员工改善沟通和促进知识共享的重要性。 协作是组织成功的关键部分,通过明确的远景和使命…

消灭EMC的三大利器:电容器/电感/磁珠

滤波电容器、共模电感、磁珠在EMC设计电路中是常见的身影,也是消灭电磁干扰的三大利器。 对于这三者在电路中的作用,相信还有很多工程师搞不清楚,文章从设计中详细分析了消灭EMC三大利器的原理。 1 、滤波电容 尽管从滤除高频噪声的角度…

Java数组,超详细整理,适合新手入门

目录 一、什么是Java中的数组? 二、数组有哪些常见的操作? 三、数组的五种赋值方法和使用方法 声明数组 声明数组并且分配空间 声明数组同时赋值(1) 声明数组同时赋值(2) 从控制台输入向数组赋值 四、求总和平均 五、求数组中最大值最小值 六…

​一致魔芋在北交所上市:市值突破11亿元,吴平夫妇为实控人​

2月21日,湖北一致魔芋生物科技股份有限公司(下称“一致魔芋”,BJ:839273)在北京证券交易所上市。本次上市,一致魔芋的发行价为11.38元/股,发行1350万股,募资总额约为1.54亿元。 本次发行后&…

以假乱真的手写模拟器?

前些时候给大家推荐了一款word插件叫做“不坑盒子”,这款盒子不仅方便了word的操作,还附带了手写模拟器这样的效果只是在使用的时候不仅需要手动下载字体,而且效果也并不是太理想。 今天小编找到了一款软件--手写模拟器,不仅一键生…

做外贸怎么找客户

现在国内贸易内卷非常严重,很多商家都转向海外市场了,总结而言,目前所有做外贸的人,核心的点就是要找到重点意向客户,今天就和大家分享一下目前市面上外贸找客户的几种方法。主动出击式开发外贸客户1、参加展会找外贸客…

.NET6中使用GRPC详细描述

Supported languages | gRPC,官网。至于原理就不说了,可以百度原理之后,然后再结合代码,事半功倍,就能很好理解GRPC了。 目录 一、简单使用 二、实际应用 一、简单使用 1.使用vs2022创建一个grpc程序,…

同城小程序应该怎么做?

同城小程序应该怎么做?同城小程序开发,微信同城小程序,同城生活小程序,同城信息发布小程序#同城小程序开发#微信同城小程序#同城生活小程序#同城信息发布小程序百收网 同城信息发布的小程序怎么做? 实际上跟 58 同城类似的&…

RPC框架dubbo的学习

一、基础知识 1、分布式基础理论 1.1)、什么是分布式系统? 《分布式系统原理与范型》定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed system&#…

扬帆优配|联通港股创近两年新高!A股资源类股爆发,食品饮料领跌

今日上午,A股商场和港股商场均现较大起伏震动,临近上午收盘出现一波跳水,不过,到上午收盘,上证指数仍微涨0.10%,煤炭等资源类板块明显上涨。 港股商场上午走弱,科技股领跌。 沪指微涨0.10%资源…

Spring Boot装配配置文件properties的参数

spring装配配置文件主要分为两种:一种是主配置文件,另一种是其他配置文件。 在使用maven构建spring boot项目时会产生一个主要的配置文件application.properties 有些习惯yml的语法是application.yml都是一个意思,spring也能自动识别。 除了…

聊聊如何基于eureka元数据扩展namespace功能

前言 最近朋友部门接手供方微服务项目过来运维,那套微服务的技术栈是springcloud Netflix,和朋友部门的微服务技术栈刚好匹配。当时朋友部门的想法,既然都是同一套技术体系,那些基础服务治理组件比如注册中心之类,就共…

零基础小白如何学会数据分析?

随着数字经济、大数据时代的发展,数据已然成为当下时代最重要的盈利资源,让企业在做决策和计划方案时更有针对性和依据,能提前预测市场发展方向,做好布局。由此而产生的数据分析岗位也逐渐被更多企业重视,特别是中大型…