docker架构

docker架构
Docker daemon
是Docker最核心的后台进程,它负责响应来自Dockerclient的请求,然后将这此请求翻译成系统调用完成容器管理操作。该进程会在后台后启动一个APIServer,负责接收由 Dockerclient发送的请求;接收到的请求将通过Dockerdaemon分发调度,再由具体的函数来执行请求。
Docker client
是-个泛称,用来向Dockerdaemon发起请求,执行相应的容器管理操作
镜像管理
distribution负责与Dockerregistry交互,上传下载镜像以及存储与v2registry有关的元数据。
registry模块负责与Dockerregistry有关的身份验证、镜像查找、镜像验证以及管理registry mirror等交互操作。
image模块负责与镜像元数据有关的存储、查找,镜像层的索引、查找以及镜像tar包有关的导人导出等操作。
reference负责存储本地所有镜像的repository和tag名,并维护与镜像ID之间的映射关系。口layer模块负责与镜像层和容器层元数据有关的增删查改,并负责将镜像层的增删查改操作映射到实际存储镜像层文件系统的graphdriver模块。
execdriver(容器执行驱动)、volumedriver(volume存储驱动)、graphdriver(镜像存储驱动)
execdriver是对Linux操作系统的namespaces、cgroups、apparmor、SELinux等容器运行所需的系统操作进行的一层二次封装,其本质作用类似于LXC,但是功能要更全面。这也就是为什么LxC会作为execdriver的一种实现而存在。当然,execdriver最主要的实现,也是现在的默认实现:是Docker官方编写的libcontainer库。
volumedriver是volume数据卷存储操作的最终执行者,负责volume的增删改查,屏蔽不同驱动实现的区别为上层调用者提供一个统一的接口。Docker中作为默认实现的 volumedriver是local默认将文件存储于Docker根目录下的volume文件夹单。其他的 volumedriver均是通过外部插件实现的。
graphdriver是所有与容器镜像相关操作的最终执行者。graphdriver会在Docker工作目录下维护一组与镜像层对应的目录,并记下镜像层之间的关系以及与具体的graphdriver实现相关的元数据。这样,用户对镜像的操作最终会被映射成对这些目录文件以及元数据的增删改查,从而屏蔽掉不同文件存储实现对于上层调用者的影响。在Linux环境下,目前 Docker已经支持的graphdriver包括aufs、btrfs、zfs、devicemapper、overlay和vfs。
network
libnetwork抽象出了一个容器网络模型(Container NetworkModel,CNM),并给调用者提供了一个统一抽象接口,其目标并不仅限于Docker容器
docker 工作目录结构
libcontainer实现原理
用Factory创建逻辑容器Container
用逻辑容器创建物理容器
启动逻辑容器Container
docker daemon 与容器之间通信
发送信号通知(signal)
对内存轮询访问(pollmemory)
sockets通信(sockets)
文件和文件描述符(filesandfile-descriptors)

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

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

相关文章

FFmpeg编解码的那些事(2)

软解码 1.构建输入AVFormatContext AVFormatContext* avFormatContext avformat_alloc_context();int res avformat_open_input(&avFormatContext,filename.toUtf8().data(), NULL, NULL);//打开文件if (res < 0) {qCritical()<<__FUNCTION__<<__LINE__&…

【文末附gpt升级秘笈】Suno全新功能在音乐创作领域的应用与影响

Suno全新功能在音乐创作领域的应用与影响 摘要&#xff1a; 随着科技的飞速发展&#xff0c;人工智能与音乐创作的结合日益紧密。本文旨在探讨Suno全新功能——即兴哼唱创作与声音模仿——在音乐创作领域的应用与影响。通过深入分析这一技术的原理、特点及其在音乐创作中的实际…

nvm for wins下载地方

https://github.com/coreybutler/nvm-windows

十大排序算法之->快速排序

一、快速排序简介 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;它的基本思想是采用分治法来实现排序。 快速排序的工作原理基于分治的思想。首先选取一个基准元素&#xff0c;通常选择第一个或最后一个元素。然后重新排列数组中的元素&#…

什么是低代码?有什么特点?

低代码是一种高效的软件开发方法&#xff0c;它允许开发者通过图形化界面和预构建的代码块&#xff0c;以最小化传统手写代码的方式快速构建应用程序。这种方法旨在加速应用程序的开发周期&#xff0c;同时降低技术门槛和成本。以下是根据驰骋低代码设计者的观念与主张&#xf…

单个反光柱作为landmark,因输入角度异常导致ceres后端崩溃

landmark默认是有方向的,所以作者在ceres优化中考虑到了角度信息,但是单个反光柱作为路标是没有准确的角度信息的,所以只能优化位置信息,修改代码如下: template <typename T>bool operator()(const T* const prev_node_pose, const T* const next_node_pose,const …

从零入手人工智能(1)——卷积神经网络

1.前言 本人作为一名单片机工程师&#xff0c;近期对人工智能领域产生了浓厚的兴趣&#xff0c;并开始了我的探索之旅。人工智能是一个博大精深的领域&#xff0c;我相信有许多志同道合的朋友也希望涉足这个领域&#xff0c;因此我写下这篇文章&#xff0c;旨在详细记录我学习…

操作系统微助教题库(组卷)

概论 1. 操作系统是对 ( ) 进行管理的软件 A. 软件 B. 硬件 C. 计算机资源 D. 应用程序 2. 从用户的观点看&#xff0c;操作系统是&#xff08; &#xff09; A. 用户与计算机之间的接口 B. 控制和管理计算机资源的软件 C. 合理的组织计算机工作流程的软件 D. 由若干…

Java:流程控制语句

文章目录 一、顺序结构二、分支结构2.1 if2.2 switch 三、循环结构3.1 for3.2 while3.3 do...while 四、流程控制4.1 break4.2 continue 五、结语 一、顺序结构 顺序结构语句是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 二、分支结…

雷士大路灯有必要买吗?雷士、书客、孩视宝护眼落地灯实测PK!

面对市面上众多的护眼大路灯品牌&#xff0c;其中雷士、书客和孩视宝这几款大路灯受到了广泛的青睐&#xff0c;也是热度比较高的几款产品&#xff0c;正是因为这么多款大路灯&#xff0c;很多伙伴在看到文章推荐后很纠结&#xff0c;不知道如何选择&#xff0c;也有一部分伙伴…

TH方程学习 (7)

一、内容介绍 TH存在广泛应用&#xff0c;在下面案例中&#xff0c;将介绍几种相对运动模型&#xff0c;斜滑接近模型&#xff0c;本节学习斜滑接近制导方法能够对接近时间、接近方向以及自主接近过程的相对速度进行控制。施加脉冲时刻追踪器的位置连线可构成一条直线&#xf…

自动装车系统车辆定位-激光雷达解决方案

在自动装车系统中&#xff0c;激光雷达为车辆定位提供了一种高效且精确的解决方案。以下是关于这一解决方案的详细分析&#xff1a; 一、解决方案概述 激光雷达解决方案在自动装车系统中&#xff0c;通过发射激光束并接收目标反射回来的信号&#xff0c;来探测车辆的位置、状…

Win10下CodeBlock实现socket TCP server/client

文章目录 1 安装codeblock2 适配libws2_32.a库3 TCP socket工作原理4 代码实现服务端客户端5 运行效果1 安装codeblock 官方免费下载 值得一提的是,安装时,指定安装路径,其他默认安装即可 2 适配libws2_32.a库 默认安装,只有3个库,如果编译socket,需要专门的库libws2…

前端小程序面试真题

1. 简单描述下微信小程序的相关文件类型 微信小程序项目结构主要有四个文件类型 WXML&#xff08;WeiXin Markup Language&#xff09;是框架设计的一套标签语言&#xff0c;结合基础组件、事件系统&#xff0c;可以构建出页面的结构。内部主要是微信自己定义的一套组件WXSS …

CA到TA的调用流程是什么?如何实现的?

快速链接: . &#x1f449;&#x1f449;&#x1f449;Trustzone/TEE/安全 面试100问-目录 &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】:联系方式-加入交流群 ----联系方式-加入交流群 个人博客笔记导读目录(全部) 简单一点来说&#xff0c;CA…

【机器学习基础】Python编程02:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…

微信小程序能唤起APP吗?封装唤起APP组件

微信小程序能唤起APP吗&#xff1f;首先回答&#xff1a;可以的&#xff0c;但是受限使用场景。 实现方式 微信没有提供API&#xff0c;通过button中open-type设置为launchApp来实现跳转APP。 它可以传递的参数&#xff1a; 可以通过app-parameter属性设定向APP传的参数&…

SolidWorks价格与其它CAD软件相比:为什么选择SolidWorks更划算

在CAD软件的浩瀚星海中&#xff0c;SolidWorks如同一颗璀璨的明星&#xff0c;以其卓越的性能、广泛的适用性和合理的定价策略&#xff0c;赢得了全球众多工程师和设计师的青睐。亿达四方&#xff0c;作为官方授权的SolidWorks代理商&#xff0c;今天将带您深入价格与功能的比较…

银河麒麟安装nginx

参考&#xff1a; https://zhuanlan.zhihu.com/p/699896814 yum install nginx systemctl start nginx firewall-cmd --permanent --zonepublic --add-servicehttp firewall-cmd --permanent --zonepublic --add-servicehttps sudo firewall-cmd --reload systemctl enable n…

【成品设计】基于单片机的智慧交通控制系统设计

《基于单片机的智慧交通控制系统设计》 所需器件&#xff1a; STM32最小系统板。按键模块。红黄绿LED灯柱。距离传感器。OLED屏幕。语音识别模块。 整体功能&#xff1a; 本文介绍了一种基于单片机的智慧交通控制系统设计。该系统集成了多种传感器、控制器和执行器&#xf…