1.镜像是什么?

1.镜像是一种轻量级、可执行的独立软件包;

2.镜像是用来打包“软件运行环境”和基于“运行环境”开发的软件;

3.镜像包含运行某个软件所需的所有内容,如代码、库、环境变量和配置文件等;

总结:镜像就是软件安装包,所有的应用只要打包成docker镜像,都可以通过docker直接下载、安装并运行。

2.如何下载镜像?

  1. 从远程仓库下载
  2. 别人拷贝给你
  3. 自己制作镜像

3.Docker镜像加载原理

3.1UnionFS(联合文件系统)

UnionFS:联合文件系统,是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层地叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。UnionFS是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(根镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

3.2加载原理

因为Docker镜像是分层的,因此在加载一个镜像的时候,会按照从底层到高层的顺序依次加载该镜像所需要的镜像层。在加载的过程中,如果当前镜像层已经存在,则会跳过当前镜像层。比如:已经下载过MySQL镜像,现在要下载Tomcat镜像,而这两个镜像都需要CentOS镜像层,那么下载Tomcat镜像的时候,就会跳过下载CentOS镜像层。

4.Docker为什么会被比喻成集装箱式服务?

主要原因就在于Docker镜像。简单举个例子,把Docker镜像比作一个箱子,这个箱子里有桌子、椅子、餐盘,然后饭店就可以专门订购这种箱子,用来给客户提供吃饭的服务。我们把箱子拆开,把里面的桌子、椅子、餐盘摆放好,它就可以提供吃饭服务了,这就是容器(运行起来的镜像就是容器)。然后饭店会根据实际需求,在桌子上加一双筷子,那么就是中餐馆,加上一副刀叉,那么就是西餐馆。而且,如果饭店愿意,他们可以选择把桌子、椅子、餐盘加筷子重新封装成一个新箱子,下次可以让别的中餐馆直接订购这个箱子。同样,加上刀叉重新封装, 就可以让西餐馆直接订购了。