码头工人笔记10 -镜像原理

  

  镜像是什么   

  

  ,,,镜像是一种轻量级,可执行的独立软件包,      ,它包含运行某个软件所需要的所有内容,包括代码,运行时的库,环境变量和配置文件。   
  

  

  UnionFS(联合文件系统)   

  

  ,,,UnionFS(联合文件系统):联盟文件系统(UnionFS)是一种分层,轻量级并且高性能的文件系统,它支持      ,同时可以将不同的目录挂载到同一个虚拟文件系统下.union文件系统是码头工人镜像的基础。镜像可以通过分层来进行继承。基于基础镜像(没有父镜像),可以制作各种的应用镜像。   
  

  

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

  

  ,,,例如:   
  

  <前>   [root@t-docker  chenzx] #, ls  dir1   a.txt  b.txt   [root@t-docker  chenzx] #, ls  dir2   c.txt  d.txt   把dir1和dir2挂载到dir目录下,最终两个目录内容会显示在一个目录下:   [root@t-docker  chenzx] #, ls  dir   a.txt , b.txt ,, c.txt  d.txt   之前   

  码头工人镜像加载原理   

  

  ,,,码头工人的镜像实际上由一层一层的文件系统组成,这种层级的文件系统称为联合文件系统(unionFS)。   
  

  

  ,,,bootfs(启动文件系统)主要包含引导装载程序和内核,引导装载程序主要是引导加载内核,linux刚启动时会加载bootfs文件系统,      。这一层与我们典型的linux/unix系统是一样的,包含启动加载器和内核。当引导加载完成之后,整个内核就都在内存中了。此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。   
  

  

  ,,,rootfs(根文件系统),在bootfs之上,包含的就是典型的linux系统中的/dev/,/proc/bin、/etc/等标准目录和文件.rootfs就是各种不同操作系统发行版,比如ubuntu, centos等。   
  

  

  ,,,画外音:ubuntu和centos的内核相同,只是rootfs布局不一样而已。   

  

  码头工人笔记10 -镜像原理”>
  </p>
  <p>
  ,,,平时我们安装虚拟机的centos都是好几个G,为什么码头工人这里才200 ?
  <br/>
  </p>
  <前>
  [root@t-docker  chenzx] #, docker 图像
  REPOSITORY ,,,,,,,,, TAG ,,,,,,,,,,,,,,,, IMAGE  ID ,,,,,,,,,,, CREATED ,,,,,,,,,,,,的大小
  centos ,,,,,,,,,,,,, latest ,,,,,,,,,,,,, 5182 e96772bf ,,,,,,, 3, weeks  ago ,,,,,,,, 200 mb
  </>之前
  <p>
  ,,,对一个精简的操作系统,rootfs可以很小,只需要包含最基本的命令,工具和程序库就可以了,因为底层直接用宿主机的内核,自己只需要提供rootfs就行了。由此可见,对于不同的linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以公用bootfs。
  <br/>
  </p>
  <p>
  ,,,画外音:码头工人为什么快,就是因为共有宿主机的内核。
  <br/>
  </p>
  <p>
  ,,,以我们的拉为例,在下载的过程中,我们可以看到码头工人的镜像好像是在一层一层的下载。
  <br/>
  </p>
  <p>
  <img src=码头工人笔记10 -镜像原理