Docker镜像的理解

        通过学习,我们知道镜像是docker的基础,你想搭建各种复杂的容器环境,镜像是必不可少的。所以我们应该对镜像有更多的一些了解,我们之前知道了,容器是镜像通过run命令得到的,镜像通过pull拉取等等。但是镜像是什么我们并不很清楚。

1. Docker镜像是什么?

        Docker镜像是一种轻量级、可执行(run命令执行)的独立的软件包,镜像包含了软件运行所需的所有内容,例如把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。docker的容器实例只有通过镜像image才可以创建出来。

2. Docker的镜像分层

        Docker的镜像是一层一层叠加的,我的理解是,某个镜像会基于一个基底,然后通过每次添加新功能,一次新功能的叠加就是新加一层,最终得到我们需要的镜像,所以我们在pull镜像的时候,下载的时候可以看到很多download,如图:

 下载过程中,每一个pull,就是一层。这个一层一层就是联合文件系统(UnionFS)。UnionFS文件系统是一种分层、轻量级且高性能的文件系统。联合文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,这个继承我的理解是,已经存在的,可以复用的意思

3. Docker镜像的加载原理

        Docker镜像是由一层一层的文件系统组成,这种层级基础是联合文件系统UnionFS,联合文件系统UnionFS由两部分bootfs和rootfs两者组成。

  • bootfs(boot file system) 主要包含bootloader(boot加载器)和kernel(内核), bpotloader 主要是引导加载kernel,加载镜像的时候,会通过bootloader加载kernal,Docker镜像最底层是bootfs,当boot加载完成后整个kernal内核都在内存中了,bootfs也就可以卸载,值得注意的是,bootfs是被所有镜像共用的,许多镜像images都是在base image(rootfs)基础上叠加的
  • rootfs (root file system),在bootfs之上。包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Centos等等

镜像的制作都是基于这个文件系统来操作的,镜像可以通过一个图来理解

 最开始只有bootsfs和基础image,然后添加A,B,得到我们想要的镜像。这些是我对镜像的学习与理解的总结了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值