蓝盟IT小贴士,来喽!
我们知道操作系统分为内核和用户空间。 在Linux上,启动内核时,将挂载根文件系统并支持用户空间。 Docker镜像( Image )对应于根文件系统。 例如,公式镜像ubuntu:18.04完全包含Ubuntu 18.04最小系统的根文件系统。
Docker镜像是一个特殊的文件系统,其中包括运行容器时所需的程序、库、资源、配置等文件,以及运行时提供的配置参数(匿名卷、环境变量、用户等)。 镜像不包含动态数据,其内容在构筑后也不会变更。
分层存储
镜像包含操作系统的完整root文件系统,容量通常很大,因此在Docker设计时利用了Union FS技术,将其设计为分层存储体系结构。 所以严格来说,镜像不是ISO这样的软件包文件,镜像是虚拟的概念,实际上不是文件,而是由文件系统组成,或者由多层文件系统组成。
镜像构建会构建一个图层,前一个图层是下一个图层的基础。 建立所有图层后,不会发生变更,下一个图层的变更只会发生在您的图层上。 例如,删除上一层文件的操作实际上标记为仅在当前层中删除文件,而不是删除上一层文件。 运行最后一个容器时,不会显示此文件,但实际上是镜像的。 因此,在构建镜像时必须小心,每个图层只包含必须添加到该图层中的内容,并且必须在构建该图层之前将其删除。
分层存储的特点使镜像更易于复用和定制。 您可以使用先前构建的镜像作为基础层,添加更多新层,自定义所需内容并构建新镜像。