docker的image
docker最底层的bootfs引导文件系统容器启动后容器会被移动到内存中,bootfs会被卸载掉,rootfs文件系统只能只读,docker使用联合文件加载技术在rootfs之上加载更多的只读文件系统,联合加载指一次同时加载多个文件系统,在外面只能看到一个文件系统,联合加载会将各层文件系统叠加到一起,最终的文件系统会包含所有的底层文件和目录,docker称这样的文件系统为镜像。一个镜像可以放到另一个镜像顶部,下面的镜像为父镜像,最底部镜像为基础镜像。
镜像是docker的构建和打包阶段。
容器是docker的启动和执行阶段。容器运行一个或多个进程。
容器启动时在镜像最顶层加载一个读写文件系统,读写层,docker中运行的程序就是在这个层执行的。
docker第一次启动一个容器时初始的读写层是空的,当文件发生变化时,都会应用到这一层上,比如如果想修改一个文件,这个文件首先会从读写层的下面的只读层复制到该读写层,该文件的只读版本依然存在,但是被读写层的文件副本所隐藏掉,这就是docker中的copy-on-write写时复制。
读写层+镜像只读层+配置数据构成一个容器