《Docker 源码分析(11)》 学习笔记

  1. 存储镜像到宿主机:
    • 存储镜像内容
    • 在graph 中注册镜像信息
  2. 镜像注册: 每一层docker layer的image都可以认为有两个部分组成。
  • 镜像中的文件系统, 可以认为是未来的容器中的静态文件内容。
  • 容器的json文件, 包含基本属性信息和动态信息包括env等等。
Register 过程
  1. 验证镜像ID
  • 验证ID合法
  • 验证镜像是否存在
  • 初始化镜像目录: 防止路径冲突; 删除 graph.driver 中的指定内容, 即如果该镜像在graph.driver中存在的话, unmount 该镜像在宿主机上的路径, 并将目录完全删除。
  1. 创建镜像路径
    创建路径完毕之后, Docker Daemon 首先将镜像所有祖先通过aufs系统mount到mnt下指定点,最终直接返回镜像所在rootfs路径, 以便后续直接在该路径下解压Docker 镜像具体内容(只包含layer内容)
1,2,3 为镜像ID

Layers: 该镜像所有祖先镜像的镜像ID

  • Create函数:创建 layers, diff, mnt目录并存储metadata在layers中。
  • Get函数: mount祖先镜像并返回根目录。
  1. 存储镜像内容:
    *镜像压缩内容
    *镜像json信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 9,835评论 0 27
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,577评论 0 120
  • 原文发布在:http://cizixs.com/2016/04/06/docker-images,转载请注明出处。...
    cizixs阅读 7,620评论 1 16
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,694评论 15 147
  • 犹豫几天的事,还是选择了去做。 今天,终于请到下午的课。午觉都没睡,就和好友一起坐车前往目的地:湛江赤坎教育局。 ...
    荏苒之念阅读 1,813评论 0 2