广州建站外贸网站做慕斯蛋糕那个网站有视频

pingmian/2025/10/9 11:37:44/文章来源:
广州建站外贸网站,做慕斯蛋糕那个网站有视频,教做详情页的网站,百度seo推广优化目录 容器简介容器技术优缺点容器的组成基本技术namespace创建namespace的三种方法PID namespaceIPC namespacemount namespacenetwork namespaceUTC namespace cgroup(control group)rootfs镜像分层 容器创建原理 容器简介 容器是一种打包应用及其运行环境的方式#xff0c;… 目录 容器简介容器技术优缺点容器的组成基本技术namespace创建namespace的三种方法PID namespaceIPC namespacemount namespacenetwork namespaceUTC namespace cgroup(control group)rootfs镜像分层 容器创建原理 容器简介 容器是一种打包应用及其运行环境的方式为应用打包所有软件及其所依赖的环境并且可以实现跨平台部署它是一系列内核特性的统称。 容器技术优缺点 相比先前的各种技术容器技术具有以下优点。 轻量化 相比虚拟机容器提供了更小的镜像因此可以更快速地对容器进行构建和启动。容器更适合需要批量快速上线和快速弹性伸缩的应用。 细粒度资源管控 容器是一个沙箱运行进程这个沙箱起到了细粒度管控资源的作用。在创建容器时可以指定CPU、内存及I/O资源。在运行容器时强制执行这些资源限制可防止容器占用其他资源。 高性能资源利用率高 容器使用更轻量级的运行机制它是一种操作系统级别的虚拟化机制。由于容器是以进程形态运行的因此其性能更接近裸机的性能。对于对性能有较高要求的应用如高性能计算等容器更为合适。 环境一致性 容器实现了操作系统的解耦它打包了整个操作系统保证应用运行的本地环境和远端环境的高度一致性从而保证一次容器打包可以到处运行对跨平台、不同环境的应用部署有显著的帮助。 管理便捷性 使生命周期管理包括迁移、扩展、运维等更加便捷。 但不可否认安全隔离一直是容器技术的一大弊端。容器只是运行在宿主机上的一种特殊进程因此多个容器之间共享的还是同一台宿主机的操作系统内核从而大大增加了安全攻击面。 容器的组成 容器cgroupnamespacerootfs容器引擎用户态工具 cgroup资源控制namespace访问隔离rootfs文件系统隔离容器引擎生命周期控制 基本技术 一个应用程序的运行环境的总和内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件以及各种设备的状态信息的集合被称为一个进程。容器技术的核心就是通过约束和修改进程的动态表现从而为其创造出一个逻辑的“边界”。 容器技术本质上为应用解决了两个核心问题应用的资源隔离限制和应用的可移植性即在新的环境中可以直接运行。容器将替代进程成为今后主流的应用运行形态。 namespace namespace是Linux用来隔离系统资源的方式它使得PID、IPC、network等系统资源不再是全局性的而是属于特定namespace 的其中的进程好像拥有独立的“全局”系统资源。每个namespace里面的资源对其他namespace都是透明的、互不干扰的改变一个namespace中的系统资源只会影响当前namespace中的进程对其他namespace中的进程没有影响。 本质上namespace建立了系统的不同视图此前的每一项全局资源都必须被包装到namespace数据结构中。 创建namespace的三种方法 在用fork或clone系统调用创建新进程时可通过特定的选项控制是与父进程共享命名空间还是建立新的命名空间。setns系统调用让进程加入已经存在的namespace中Docker exec就采取了该方法。unshare系统调用让进程离开当前的namespace加入新的namespace中。 PID namespace 如果在调用clone时设定了CLONR_NEWPID就会创建一个新的PID namespace创建的新进程将会成为该namespace里的第一个进程在当前PID namespace中这个进程的PID从1开始该namespace内的进程都将以该进程为父进程当该进程结束时其中所有的进程都会结束。 PID namespace 是有层次的新创建的 namespace 将会是创建该 namespace 的进程所属的namespace的子namespace。子namespace中的进程对父namespace是可见的一个进程将拥有不止一个PID其所在的namespace及所有直系祖先namespace中都将有一个PID。系统启动时内核将创建一个默认的PID namespace该namespace是所有以后创建的namespace的祖先因此系统的所有进程在该namespace内都是可见的。 IPC namespace 在一个IPC(Inter-Process Communication 进程间通信) namespace中创建的IPC object对该 namespace 内的所有进程可见但是对其他 namespace 中的进程不可见这就使得不同namespace之间的进程不能直接通信。 PID namespace 和 IPC namespace 可以组合使用只需在调用 clone 系统时同时指定CLONE_NEWPID和CLONE_NEWIPC这样新创建的namespace就既是一个独立的PID命名空间又是一个独立的IPC命名空间。不同namespace中的进程彼此不可见也不能互相通信这样就实现了进程间的隔离。 mount namespace 每个进程都存在于一个mount namespace中,mount namespace为进程提供了一个文件层次视图用于让被隔离的进程只看到当前namespace里的挂载点信息。只有在“挂载”这个操作发生之后进程的视图才会被改变而在此之前新创建的容器会直接继承宿主机的各个挂载点。 如果不设定这个flag子进程和父进程将共享一个mount namespace其后子进程调用mount或umount将会对该namespace内的所有进程可见。如果子进程在一个独立的mount namespace中就可以调用mount或umount建立一个新的文件层次视图mount、unmount只对该namespace内的进程可见。该flag配合chroot、pivot_root系统调用可以为进程创建一个独立的目录空间chroot实现目录独享mount namespace实现挂载点独享。 network namespace 如果在调用 clone 时设定了 CLONE_NEWNET就会创建一个新的 network namespace。network namespace为进程提供了一个完全独立的网络协议栈视图其包括网络设备接口、IPv4和IPv6协议栈、IP地址路由表、防火墙规则、Socket等。一个network namespace提供了一个独立的网络环境就跟一个独立的系统一样。**一个物理设备只能存在于一个network namespace中但它可以从一个 namespace 移动到另一个namespace 中。虚拟网络设备Virtual Network Device提供了一种类似于管道的抽象可以在不同的 namespace 之间建立隧道。利用虚拟网络设备我们可以建立某个 namepace 与其他 namespace 中物理设备的桥接。**当一个 network namespace 被销毁时物理设备会被自动移回初始的 network namespace即系统最开始的namespace中。 UTC namespace 如果在调用clone时设定了CLONE_NEWUTS就会创建一个新的UTS namespace。一个 UTS namespace 就是一组被 uname 返回的标识符。新的 UTS namespace中的标识符通过复制调用进程所属的namespace的标识符来初始化clone出来的进程可以通过相关系统调用改变这些标识符比如调用sethostname来改变该namespace的主机名。 总结来说Linux中的每个进程都包含以上多种namespace。 一个容器就是一个虚拟的运行环境它对容器里的进程是透明的进程会以为自己是直接在一个系统上运行的。实际上容器在创建容器进程时指定了这个进程所需启用的一组namespace参数这样容器进程就只能“看到”当前namespace所限定的资源、文件、设备、状态或配置而对于宿主机及其他不相关的应用它就完全看不到了。这时容器进程就会觉得自己是各自PID namespace里的第1号进程只能看到各自mount namespace里挂载的目录和文件只能访问各自network namespace里的网络设备就好像运行在一个“容器”里面。 Linux namespace机制本身就是为实现容器虚拟化而开发的它实际上修改了应用进程看待整个系统资源的“视角”即它的“视线”被namespace做了限制只能看到某些指定的内容。但对于宿主机来说这些被隔离的进程与其他进程并没有太大的区别所以 namespace 提供了一套轻量级、高效率的系统资源隔离方案其远比传统的虚拟化技术开销小。不过它也不是完美的它为内核的开发带来了更大的复杂性在隔离性和容错性上与传统的虚拟化技术相比也有差距。 cgroup(control group) cgroup是Linux内核中的一项功能它可以对进程进行分组并在分组的基础上限制进程组能够使用的资源上限如 CPU 时间、系统内存、网络带宽等。cgroup的作用和namespace不一样namespace是为了隔离进程之间的资源而cgroup是为了对一组进程进行统一的资源监控和限制。 cgroup实现了一个通用的进程分组框架而不同资源的具体管理则是由各个cgroup子系统实现的 子系统描述devices设备权限控制cpuset分配指定的cpu和内存节点cpu控制cpu占用率cpuacct统计cpu使用情况memory限制内存的使用上限freezer暂停cgroup中的进程net_cls配置(tc)限制网络带宽net_prio设置进程的网络流量优先级huge_tlb限制HugeTLB的使用pref_event允许perf工具基于cgroup分组做性能检测 cgroup和进程的关系 Cgroup和进程之间的关系是Cgroup可以将一组进程组绑定到一个特定的Cgroup中并对这些进程组的资源使用进行限制和控制。这样Cgroup实际上是对一组进程进行资源管理的工具。 当一个进程被创建时它可以被分配到特定的Cgroup中这样就可以受到该Cgroup所施加的资源限制和控制。这样就实现了对进程的资源隔离和管理。 rootfs 为了实现应用运行环境的一致性容器使用了 rootfs 技术这使得容器镜像中打包的内容不只有应用本身还包括整个操作系统的文件和目录即应用及其所需的依赖都被封装在一起实现了应用环境的强一致性。 容器就是一个进程所以可以通过chroot为容器进程提供一个新的根目录及新的文件系统。为了能够让容器的根目录看起来更像是一个真实的操作系统的根目录一般会在容器启动时在其根目录下挂载一个完整的操作系统的文件系统比如Ubuntu 16.04的ISO。这样在容器启动之后在容器内执行“ls/”命令就可以查看整个根目录下的内容也就是Ubuntu系统的所有目录和文件。 在Linux中有一个chroot命令它的作用就是将进程的根目录变更到指定的位置change root file system 这个被挂载在容器根目录下用来为容器进程提供隔离后运行环境的文件系统就是容器镜像被称为rootfs根文件系统。rootfs只是一个操作系统的文件系统其中包括文件、配置和目录等但并不包括操作系统内核。 同一台宿主机上的所有容器都共享宿主机操作系统的内核。这就意味着如果容器中的应用程序需要配置内核参数、加载额外的内核模块以及与内核进行直接的交互等那么这些都是对宿主机操作系统内核的操作其对于该宿主机上的所有容器来说是全局操作。 镜像分层 Docker镜像的制作并没有沿用以前制作rootfs的标准流程而是在镜像的设计过程中引入了层layer的概念。用户制作镜像的每一步操作都会生成一个层整个文件系统的增量机制是基于UnionFS的。UnionFS是Linux内核中的一项技术它将多个处于不同位置的目录联合挂载到同一个目录下。而Docker就是利用这种联合挂载的能力将容器镜像里的多层内容呈现为统一的rootfs的。在Docker中使用的UnionFS是通过aufs来实现的虽然aufs还未进入Linux内核主干但是它在Ubuntu、Debain等发行版本中均有使用。 以Docker为例其镜像主要分为三层 只读层同期的rootfs最下面五层以增量的方式分别包含整个文件系统可读/写层容器的rootfs最上面的一层在没有写入文件之前这个层是空的。一旦在容器里进行了写操作由此产生的内容就会以增量的方式出现在这一层中。可读/写层就是专门用来存放修改 rootfs 后产生的增量内容的——无论是增加、删除还是修改产生的增量内容。当使用完这个被修改过的容器之后还可以使用“docker commit”和“push”命令保存这个被修改过的可读/写层而只读层里的内容不会有任何变化这就是增量rootfs的好处。init层这是 Docker/Kubernetes 单独生成的一个内部层专门用来存放/etc/hosts、/etc/resolv.conf等配置信息。这些文件本来属于只读层但是在启动容器时每次都会自动写入一些指定的参数比如hostname所以理论上需要在可读/写层对它们进行修改。但这些修改往往只对当前的容器有效并不希望执行“docker commit”命令时需将这些信息连同可读/写层一起提交所以设置了额外的 init 层init 层的内容在执行“docker commit”命令时会被忽略。 容器创建原理 pid clone(fun, stack, flags, clone_arg); (flags: CLONE_NEWPID | CLONE_NEWNS |CLONE_NEWUSER | CLONE_NEWNET |CLONE_NEWIPC | CLONE_NEWUTS |…)通过clone系统调用并传入各个Namespace对应的clone flag创建了一个新的子进程该进程拥有自己的Namespace。根据以上代码可知该进程拥有自己的pid、mount、user、net、ipc、uts namespace。 echo $pid /sys/fs/cgroup/cpu/tasks echo $pid /sys/fs/cgroup/cpuset/tasks echo $pid /sys/fs/cgroup/blkio/tasks echo $pid /sys/fs/cgroup/memory/tasks echo $pid /sys/fs/cgroup/devices/tasks echo $pid /sys/fs/cgroup/freezer/tasks将代码一中产生的进程pid写入各个Cgroup子系统中这样该进程就可以受到相应Cgroup子系统的控制。 fun() {…pivot_root(path_of_rootfs/, path);…exec(/bin/bash);… }该fun函数由上面生成的新进程执行在fun函数中通过pivot_root系统调用使进程进入一个新的rootfs之后通过exec系统调用在新的Namespace、Cgroup、rootfs中执行“/bin/bash”程序。

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

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

相关文章

为什么建设网站要年年交钱WordPress开启me

最近在做uniapp相关的开发,在上传图片的时候遇到了一些问题,所幸经过一些努力,解决开发过程中遇到的困难,记录一下uniapp上传图片的实现过程 1、前端代码 setPic1: function() {var me this;var serverUrl this.serverUrl;uni…

教育教学成果展示网站建设怎么用群晖nas做网站

STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口) 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口…

做网站的叫什么职位wordpress 图片加链接

小编有一个朋友,他的信用记录一直非常好,无论是贷款还是信用卡,一直都按时还款,而且每次都是提前好几天还,从来没有逾期过。不过元旦期间他去旅游,可能是玩的太嗨,忘记了1号是他的还款日&#x…

企业网站建设流程与方法 论文网页制作工具教程

itertools.cycle 是 Python 标准库中的一个函数,它用于创建一个无限循环迭代器。它接受一个可迭代对象作为参数,并会不断重复该可迭代对象的元素。 使用 itertools.cycle 可以方便地创建一个可以无限循环的迭代器。当你需要反复访问一个可迭代对象的元素…

网站建设公司厦门简单官网模板

前段时间发的日上直邮的微头条和视频,很多朋友遇到一些不明白的地方,我把问题汇总了一下,统一回答一下哦其实因为疫情,很多免税店都在做活动,活动方式不太一样,有好多种,我跟大家分享的只是其中…

长春火车站到龙嘉机场动车时刻表网站方案报价

Vivado synthesis可以解释各种RAM编码风格,并将它们映射到分布式RAM中或块RAM。此操作执行以下操作: •无需手动实例化RAM基元 •节省时间 •保持HDL源代码的可移植性和可扩展性从编码示例下载编码示例文件。 在分布式RAM和专用RAM之间的选择块存储器…

南山网站建设-信科网络wordpress前台英文后台中文

📟作者主页:慢热的陕西人 🌴专栏链接:C基于多设计模式下的同步&异步日志系统 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容实现了日志代码设计的实…

电商网站项目静海网站建设

​ 在这个繁忙的时代,简单而高效的工具成为生活和工作中的宝贵助手。以下是五款小巧而实用的小工具,或许正是你所需的生活小搭档。 1.远程终端——MobaXTerm ​ MobaXTerm是一款集成了多种网络工具的远程终端软件,可以通过SSH、Telnet、RDP…

个人音乐网站开发优秀界面设计作品

目前流行的各类前端框架,不管是react, angular还是vue,都有一个共同点,那就是支持组件化开发,但事实上随着浏览器的发展,现在浏览器也原生支持组件式开发,本文将通过介绍Web Components 的三个主要概念&…

网站开发工资高么怎样下载黑龙江人社app

30分钟快速搭建移动应用直传服务 背景 这是一个移动互联的时代。手机APP上传的数据会越来越多。把数据存储的问题交给OSS, 让开发者能更加专注于自己的应用逻辑。 那么怎么样基于OSS构建一个APP存储系统呢? 目的 本教程就是让你在30分钟内搭建一个基于OS…

怎么做查询网站做网站编辑需要学什么

public class Test{public static void main(String[] args){Person p new Person();} } /* 4.修饰的变量是一个常量(所有字符都大些 XXX 或者 XXX_XXX),只能赋值一次!final 固化的都是显示初始化的值(定义并初始化)(或者构造函数中的特定初始化的值&am…

绿色风格网站浙江自己如何做网站

文章目录 一:Dubbo注册中心引言 1:什么是Dubbo的注册中心? 2:注册中心关系图解 3:引入注册中心服务执行流程 4:Dubbo注册中心好处 5:注册中心核心作用 二:注册中心实现方案 …

金色财经网站开发视频网站 界面设计

编者按:1991年微软研究院成立,三十年坚持不懈的探索成就了微软研究院今天在全球计算机科研领域的位置。在接下来的10年、30年中,科研世界会呈现何种面貌?下一个技术创新的突破点在哪里?微软又将怎样持续发挥作用&#…

创建网站的好处怀化seo快速排名

目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…

wordpress文本温州seo方法

效果演示 实现了一个登录注册页面的切换效果,当用户点击登录或注册按钮时,会出现一个叠加层,其中包含一个表单,用户可以在表单中输入用户名和密码,然后点击提交按钮进行登录或注册。当用户点击返回按钮时,会…

组装电脑报价网站源码单页面网站怎么做的

正题 题目链接:https://www.luogu.com.cn/problem/CF708E 题目大意 有n∗mn*mn∗m的矩形网格,然后每次每行最左边和最右边的格子各有pcdp\frac{c}{d}pdc​的概率会消失,进行kkk次。 求最后所有格子依旧四联通的概率,在%(1097)\%(10^97)%(1…

上海国外网站建设python怎么开发网站

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 示例 1 输入:nums [3,2,3] 输出:[3]示例 2 输入:nums [1] 输出&…

网站建设官网怎么收费文化传媒 网站设计

如果你将跑在Windows下的项目(如:php、html)迁移到Linux下,由于Windows操作系统中,文件名是不区分大小写的;而Linux系统是大小写敏感,会导致有些网页出现404情况。 解决方法有大概4种: 1、 url rewrite 2、…

吴江市中云建设监理有限公司网站wordpress无法访问图片

火星探索:技术挑战与前沿进展 一、引言 火星,这颗红色的星球,长久以来一直吸引着人类的目光。随着科技的飞速发展,火星探索已经从纯粹的科幻梦想逐渐转变为现实的研究课题。然而,火星探索仍然面临着诸多技术挑战。本文将深入探讨火星探索的关键技术、现有技术瓶颈以及前沿…

做磁性材料在哪些网站推广比较好怎样做网站文件验证

Every day a Leetcode 题目来源:2661. 找出叠涂元素 解法1:哈希 题目很绕,理解题意后就很简单。 由于矩阵 mat 中每一个元素都不同,并且都在数组 arr 中,所以首先我们用一个哈希表 hash 来存储 mat 中每一个元素的…