1. Docker镜像
docker是由文件系统叠加而成。最低端是一个引导文件系统,即bootfs,这看起来很像典型的Linux/Unix的引导文件系统。docker用户几乎永远不会和引导文件系统有什么交互。实际上,当一个容器启动后,它会被移动到内存中,而引导文件系统将会被卸载,已留出更多的内存供initrd磁盘镜像使用。
在传统的linux引导过程中,root文件系统会最先以只读的方式加载,当引导结束并完成完整性检查后,它才会被切换到读写模式。但是在docker中,root文件系统永远只能是只读状态,并且docker通过联合加载技术又会在root文件系统之上加载更多的只读文件系统。联合加载是指一次同时加载多个文件系统,但是在外面看来只能看到一个文件系统。联合加载会将各层文件系统叠加到一起,这样最终的文件系统会包含所有底层的文件和目录。
当docker第一次启动一个容器时,初始的读写层是空的。当文件系统发生变化时,这些变化都会应用到这一层上。比如,如果想修改一个文件,这个文件首先会从该读写层下面的只读层复制到该读写层。该文件的只读版本依然存在,但是已经被读写层中的该文件的副本所隐藏
that's all