docker镜像是文件系统的层叠,有点像多层叠加的纸张,如我们使用的钞票。
最底层是一个引导层,为引导文件系统,即bootfs。负责容器启动时的引导作用,引导结束后,就会被卸载unmunt。
bootfs的上一层是root文件系统,即rootfs,只能进行读操作。它通过联合加载技术,将各个文件系统叠加到一起,对外,相当于一个文件系统。
当从一个镜像启动容器时,docker会在该镜像的顶层加载一个读写文件系统,容器中运行的程序就在这可读写层中执行。
如下图所示:
强大的写时复制(copy on write)技术
容器第一次启动时,初始的读写层是空的。如果容器中的程序需要修改某个文件,该文件会从只读层复制到读写层,然后进行修改操作。