Docker容器

【Docker教程系列】Docker学习5-Docker镜像理解

本文主要是介绍【Docker教程系列】Docker学习5-Docker镜像理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

https://img3.sycdn.imooc.com/638ff40c0001e84b07870319.jpg

通过前面几篇文章的学习,我们已经安装好了Docker,也学会使用一些常用的命令。比如启动命令、镜像命令、容器命令。常用命令分类后的第二个就是镜像命令。那么镜像是什么?拉取镜像的时候为什么是一层一层的?镜像加载的原理是什么?本篇,我们就来学学,Dokcer镜像的分层概念。


镜像是什么?

镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需要的所有内容,我们把应用程序和配置依赖打包好形成一个可以交付的运行环境(包括黛米、运行时候需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件

https://img3.sycdn.imooc.com/638ff4280001404305530081.jpg

分层的镜像

我们来从远程仓库pull个Tomcat。来看看整个pull的流程:

命令:docker pull tomcat

https://img4.sycdn.imooc.com/638ff4350001431a05530143.jpg

我们会发现,下载是一层一层的。所以镜像是分层的

联合文件系统(UnionFS):

联合文件系统(UnionFS):是一种分层、轻量级并且高性能的文件系统。它支持对文件系统的修改

作为一次提交来一层一层的叠加。同时可以将不同目录挂载到同一个虚拟文件系统下。

Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承。基于基础镜像(没有父镜像[ps:可以理解为Java中的Object类型]),可以制作各种具体的镜像。

特性:

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

如同花卷

https://img4.sycdn.imooc.com/638ff43f000172f803690217.jpg

Docker镜像加载原理是什么?

https://img1.sycdn.imooc.com/638ff45b00010ba805530219.jpg

 

https://img1.sycdn.imooc.com/638ff4680001431805530121.jpg

为什么docker镜像要采用这种分层结构呢?

镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用。

https://img4.sycdn.imooc.com/638ff48100013ec605530113.jpg

重点理解

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

https://img4.sycdn.imooc.com/638ff48b00018be805530254.jpg


这篇关于【Docker教程系列】Docker学习5-Docker镜像理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!