docker的镜像实际上是由一层层的文件系统组成,这种层级的文件系统UnionFS (联合文件系统)
系统启动时需要引导加载(很慢),即会加载bootfs文件系统,docker镜像底层便是bootfs,其包含了boot加载器(bootloader)和内核(kernel); 但是docker使用的是host的bootfs,和vm不同.
rootfs (root life system) 基本的文件系统,在bootfs之上,包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件,其实际上就是各种不同操作系统发行版本(Centos,Ubuntu).
随笔分类
UnionFS(联合文件系统)
UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下。Union文件系统是docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以去制作各种具体的应用镜像。
总结:
对于一个精简的os,rootfs可以很小,只需要包含最基本的命令、工具和程序库就可以了,因为底层用的是Host的kernel,自己只需要提供rootfs即可。由此可见对于不同的linux发行版,bootfs基本上是一致的,rootfs会有所差别,因此bootfs可以拿来公用。