据说重要的事情要说三遍,那我再表述一下个人观点:Docker镜像
是Docker的灵魂所在。
前两讲关于Docker镜像的描述,已经从宏观的角度涉及一二。一旦掌握Docker对于镜像的层级管理方式,以及Docker镜像大小的真实情况之后,再来了解Docker镜像包含的内容以及存储,就显得简单很多。
Docker镜像内容
对于Docker镜像的认识总会有第一次,自那时开始,当然也少不了成长,笔者本人的认识过程不妨和大家一起分享:
1.初次接触Docker:相信很多爱好者都会和我一样,有这样一个认识:Docker镜像代表一个容器的文件系统内容;
2.初步接触联合文件系统:联合文件系统的概念,让我意识到镜像层级管理的技术,每一层镜像都是容器文件系统内容的一部分。
3.研究镜像与容器的关系:容器是一个动态的环境,每一层镜像中的文件属于静态内容,然而Dockerfile中的ENV、VOLUME、CMD等内容最终都需要落实到容器的运行环境中,而这些内容均不可能直接坐落到每一层镜像所包含的文件系统内容中,那这部分内容Docker该如何管理?
另外,在上述第三个步骤中,还有一种情况,相信大家并不陌生:很多个镜像层大小为0,镜像层内部不存在任何文件内容。这又是怎么一回事?
大家可以回忆一下《一图看尽Docker容器文件系统内容》中,关于空镜像的生成部分,其中提到“更新镜像的 json文件”。其实,前文埋下的伏笔,即暗示了真相: