docker的镜像实际上是由一层一层的文件系统组成的,这种层级的文件系统叫做UnionFS 联合文件系统

1.bootfs(boot file system)主要包括bootloader和kernel, bootloader主要是引导加载kernel,linux刚启动时候会加载bootfs文件系统,在docker镜像的最底层是bootfs。 这一层与我们典型的Linux/Unix系统是一样的,包括boot加载器和内核。当boot加载完之后,整个内核就在内存中了,此时内存的使用权已经有bootfs 交由内核,此时系统也会卸载bootfs

2.rootfs(root file system), 在bootsfs之上,包含的就是典型的Linux系统中的/dev/,proc,/bin, /etc等标准目录文件,rootfs就是各种不同的操作系统发行版,比如Ubuntu, Centos等,对于一个精简的OS, rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层用Host的Kernel,自己只需要提供rootfs就行。由此可见,对于不同的linux发行版,bootds基本是一致的,rootfs会有差别,因此不同的发行版可以共用bootfs

Docker镜像加载原理_文件系统