很多时候,当大家谈论起Docker,经常会提到Docker作为容器解决方案,在虚拟化资源方面存在不小优势。轻量级虚拟化技术的优点暂且不谈,从软件生命周期来看,Docker在打包软件、分发软件方面的能力同样出众。而后者很大程度上依赖于Docker的镜像技术。
Docker镜像技术提供了一套标准,创造性地使用Dockerfile来规范化Docker化应用的制作流程,结果产生的Docker镜像便于传输与管理,最终通过Docker镜像运行Docker容器,完成容器化应用的交付。
经过本系列对于Docker镜像的镜像,大家应该已经清楚Docker镜像的存储、以及Docker镜像的内容。Docker镜像的内容,应该说包含两部分,除了镜像层中的文件之外,还包括一层镜像的json文件。镜像层文件的理解较为简单,但是Docker镜像的json文件理解起来就会稍显复杂。本文就带大家深入理解Docker镜像的json文件。
我们一直提到“通过Docker镜像运行Docker容器”,如果仔细思考这句话,可能依然会存在一些疑惑。不难的理解是:Docker镜像层中的文件全部属于静态的磁盘文件,而Docker容器属于一个动态的产物,可以认为是一个或者多个运行中的进程。那么,静态的Docker镜像转换为动态的Docker容器背后肯定会有一些不为人知的秘密。我们不妨带着以下几个问题来思考Docker镜像的json文件:
1.如何判定一个Docker镜像应该运行哪个进程,这部分信息存在哪?
2.有了以上信息,将Docker镜像运行成Docker容器的行为是谁在主导?
镜像的静态与容器的动态
这一次,我们依旧从动态