Docker篇——Docker镜像原理,涵盖Docker联合文件系统以及镜像分层技术点详细介绍,超全面、超细节!

Docker镜像加载原理-联合文件系统

理解什么是镜像

一、什么是镜像
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件等。
所有的应用,直接打包成Docker镜像,就可以直接跑起来!

二、如何得到镜像
1、从远程仓库下载
2、朋友拷贝
3、自己制作镜像DockerFile

UnionFS联合文件系统

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

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

三、Docker镜像加载原理
Docker镜像实际上是由一层层的文件系统组成的,这种层级的文件系统就叫做联合文件系统

bootfs(boot file system)主要包含了bootloader和kernel内核,bootloader主要引导加载下kernel,Linux刚启动会加载bootfs文件系统,Docker镜像的最底层就是bootfs。这一层与我们典型的Linux系统是一样的,包含了boot加载器和内核。当boot加载完成之后整个内核就在内存中了,此时内存的使用权已经由bootfs转交给内核,此时系统也会卸载bootfs

rootfs(root file system),在bootfs之上。包含的就是典型的Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件,rootfs就是各种不同的操作系统发行版,比如Centos等等    

Docker镜像原理-分层理解

分层的镜像

我们在Docker下载一个镜像,观察打印的日志,发现有一些文件不需要下载,已经存在了!

[root@test ~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ... 
latest: Pulling from docker.io/library/redis
26c5c85e47da: Already exists  #该层文件已经存在,不需要重新下载
39f79586dcf2: Pull complete 
79c71d0520e5: Pull complete 
60e988668ca1: Pull complete 
873c3fc9fdc6: Pull complete 
50ce7f9bf183: Pull complete 
Digest: sha256:f50031a49f41e493087fb95f96fdb3523bb25dcf6a3f0b07c588ad3cdbe1d0aa
Status: Downloaded newer image for docker.io/redis:latest

一、分层的理解
所有的Docker镜像都起始于一个基础的镜像,当进行修改的时或增加新的内容时,就会在当前的镜像层上,创建新的镜像层。

举例说明:

二、分层特点
Docker镜像都是只读的,当容器启动的时候,一个新的可写层被加载到镜像的顶部!这一层就是我们通常说的容器层,容器之下的都叫做镜像层

至此,关于Docker的镜像加载原理和镜像的分层原理已经介绍完毕。后续还会持续更新,敬请期待~~~

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值