中文

一种用于快速构建 Docker 镜像的代码注入方法

分布式、并行与集群计算 2019-11-26 v3

摘要

Docker 镜像由多个层组成,每层包含一组指令及文件归档。层使 Docker 能将大型构建任务拆分为较小任务,从而当程序某部分更改时,仅需更改相应层。然而当前实现存在重大低效,使得在需要更改底层时镜像重建不必要地缓慢:层间内容分布不均、更新时需重建整个层,以及许多情况下的重建穿透。本文提出一种代码注入方法,通过仅针对已更改层并绕过该层内容校验和来克服这些低效。该过程专为 Python 等解释型语言开发,其中更改可通过文本差异工具显式检测,并无需编译即可原样运行。我们随后证明该方法可加速重建时间,将 O(n)(其中 n = 层重建时间大小)有效降低为 O(1)。而对于编译型语言,字面代码注入无法保证编译后机器码的完整性。基于相同代码注入原则,多层定向代码注入将在未来讨论中阐述。

关键词

引用

@article{arxiv.1911.07444,
  title  = {A Code Injection Method for Rapid Docker Image Building},
  author = {Yujing Wang and Qinyang Bao},
  journal= {arXiv preprint arXiv:1911.07444},
  year   = {2019}
}

备注

3 pages to be sumbitted to IEEE mobisecserv 2020