Docker (2)

77 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情

前面有整理过一篇文章提到过 Docker 容器,当时只是对 Docker 做了简单的引入,今天想起来了,打算再好好做一个梳理......

镜像

镜像的英文名为 image。鲸鱼拖着的所有集装箱就是一个镜像。从本质上来说镜像就是一系列文件,可以包括我们应用程序的文件,也可以包括我们应用的运行环境的文件,既然是文件,那么是以什么样的格式在本地保存的呢?

说到存储格式,就要提到 Linux 的一个存储技术,即联合文件系统,它是一种分层的文件系统,可以将不同的目录挂到同一个虚拟文件系统下。

比如 test1 下有三个文件夹,test2 下有两个文件夹,还有一个 readme 文件。联合文件系统就是可以在一个文件夹 (test) 中看到多个文件夹 (test1,test2) 中的内容。

image.png

通过这种方式可以实现文件的分层,test1 可以把它看作第一层,test2 可以把它看作第二层,每一层有每一层自己的文件,Docker 就是利用了这种分层的概念实现了镜像存储

下图就是镜像的存储格式,这张图是分层的,最下面一层,上面也是一层层的好像集装箱罗列在一起。这就是镜像最直观的存储方式。下面是操作系统的引导,上面是 Linux 操作系统,再上面是一些相关的软件,如果是我们自己的程序,就可以是 tomcat,jdk,再往上是应用代码,每一层是我们自己都可以控制的,最上面一层先忽略不看,因为这是和容器有关的。注意一点,Docker 镜像系统的每一层都是只读的,然后把每一层加载完成之后这些文件都会被看成是同一个目录,相当于只有一个文件系统。Docker 的这种文件系统被称之为镜像。

image.png

以上主要是针对 Docker 容器技术中的镜像概念以及镜像的存储方式做了一个梳理......循序渐进,后续还会慢慢介绍 Docker 容器技术中的其他一些概念及原理......
希望本文能够帮到你,如有错误,望指正!
我向你敬礼啊,Salute!