Docker(4)---镜像

在这里插入图片描述

上一篇:Docker(3)—常用命令

1. 什么是镜像?

  镜像是一种轻量级、可执行得独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括:代码、资源库、环境变量和配置文件。

2.镜像的基础是什么?

  联合文件系统(UnionFS)是Docker镜像的基础。UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加。同时可以将不同目录挂载到同一个虚拟文件系统下。

特性:一次同时加载多个文件系统,但是从外面来看就只能看到一整个文件系统。就像是鸡蛋我们只能看到一个整体的蛋,但是里面还有蛋清和蛋黄。

3.镜像的加载原理?

  Linux包含内核空间和用户空间两部分,Linux启动的时候会加载bootfs文件系统,而Docker镜像的最底层就是bootfs,这一层包含了boot加载器和内核。当boot加载完毕之后,整个内核都在内存中了,内存的使用权也就由bootfs转交给了内核。同时系统会卸载bootfs。

  bootfs文件系统之上的就是rootfs文件系统,它包含了linux系统中的标准目录结构,如:/dev、/proc、/bin、/usr……,rootfs就是各种不同的操作系统发行版,如CentOS、Ubuntu等,但是其实他们的内核还是一样的。

在这里插入图片描述

4.镜像为什么要分层?

  前面说到Docker镜像的基础其实就是联合文件系统,是一种分层的、轻量级的文件系统。使用分层结构是因为这样可以共享资源,比如多个镜像文件都是由相同的基础(base)镜像构建出来的,那么宿主机只需要在磁盘上保存一份基础镜像,内存中也只需要加载一份基础镜像就可以被所有镜像共享了。镜像的每一层都可以被共享。

原文地址:https://www.cnblogs.com/wgty/p/12810401.html