Docker镜像

1.Docker镜像

1.1.什么是docker镜像

镜像是一种轻量级、可执行的独立软件包 ,用来打包软件运行环境和基于运行环境开发的软件,它 包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

简单地理解,Docker镜像就是一个Linux的文件系统(Root FileSystem),这个文件系统里面包含可以运行在Linux内核的程序以及相应的数据.

   1.2docker镜像的特点

docker镜像都是只读的,当容器启动时,一个新的可写层被加载镜像的顶部,这一层通常叫作容器层,容器层之下都叫镜像层;

       1. 镜像是分层(Layer)的

即一个镜像可以多个中间层组成,多个镜像可以共享同一中间层,我们也可以通过在镜像添加多一层来生成一个新的镜像。

2.镜像是只读的(read-only)

  镜像在构建完成之后,便不可以再修改 ,而上面我们所说的添加一层构建新的镜像,这中间实际是通过创建一个临时的容器,在容器上增加或删除文件,从而形成新的镜像,因为 容器是可以动态改变的

  1.3UnionFS(联合文件系统)

         Union文件系统(UnionFs) 是一种分层、轻量级并且高性能的文件系统,他支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下 ( unite several directories into a single virtual filesystem)。

  Union文件系统是 Docker镜像的基础 镜像可以通过分层来进行继承 ,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像 ,一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录

    1.4Docker镜像加载原理