
Docker
文章平均质量分 57
Docker原理剖析
明神特烦恼
Golang专家,大厂螺丝钉,深耕区块链底层技术,从业区块链五年以上,聚焦于联盟链技术发展,Hyperledger Fabric专家,基于Fabric做过各种改造,源码快翻新,了解程度登峰造极。
展开
-
Docker 相关配置文件路径
Docker 配置文件路径原创 2022-11-15 10:24:13 · 7772 阅读 · 0 评论 -
5. Docker Daemon的 images 相关命令实现
经过上面原理学习,大部分命令实现方式大家都可以猜到1.例如:docker images nginx,调用Docker Daemon的images/json 的 url。1)解析Get请求携带参数,{"filters":["{\"reference\":{\"nginx\":true}}"]}2)store.images获取全部镜像(上一节 Image Store的镜像管理)3)遍历每个镜像,从Reference模块获取获取Ref信息,与filter参数比对,寻找相同Ref的IMAGE。2.再比如:原创 2022-05-19 19:30:32 · 188 阅读 · 0 评论 -
4. Docker Daemon的Image Store
在Docker的存储目录中有一个叫做imagedb的目录,记录image相关的数据信息,那么是Who来维护这个文件夹,Image Store。在开始学习这个模块之前,我们想想可能的功能:1)根据IMAGE ID 查询镜像元数据信息2)保存IMAGE ID 与元数据信息关联关系3)没了。。。。。。下面看函数名字就已经非常明白函数功能了, 对于数据库增删改查大家最熟悉不过了。Heads可能有点陌生,该函数在查询悬空镜像中使用,悬空镜像叫dangling,关于dangling的判定,可能直接阅读代码原创 2022-05-19 17:45:48 · 288 阅读 · 0 评论 -
3. Docker Daemon中的Docker Pull执行流程
Docker Daemon是服务端程序,接收到image create请求,开始Docker pull执行流程…在开始分析程序之前,以我们对Docker的认知判断该流程可能涉及到的模块:1)R:Router 路由模块,docker 镜像处理入口2)I:Image管理模块,镜像的元数据管理,镜像大小、镜像创建时间、镜像ID、镜像父子关系维护等。3)L:Layer管理模块,在第一节中有提到Docker的存储目录设计到各种ID关系,在Layer生成管理,同时Layer管理层负责调用graphDriver原创 2022-05-19 16:07:15 · 1216 阅读 · 0 评论 -
2. Docker Daemon中的Reference
在我们查看docker的存储目录时,是否看到过下图的文件,该文件记录所有docker 镜像的Reference信息:内容如下:{ "Repositories": { "nginx": { "nginx:latest": "sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85", "nginx@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b01原创 2022-05-19 14:31:42 · 296 阅读 · 0 评论 -
1. Docker 各ID的关系
网上关于ID描述的文章很多(例如:https://blog.youkuaiyun.com/u010566813/article/details/117789154),大家可自行参考。执行docker pull nginx 命令,下载nginx镜像,查看下载过程日志:1)Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31,是对manifest 文件进行hash计算的结果,manifest内容如下:{ "原创 2022-05-18 21:41:19 · 1366 阅读 · 0 评论