Docker_Image

  • 镜像,轻量级,可执行的独立软件包
  • 用来打包软件运行环境和基于运行环境开发的软件
  • 包含了运行某个软件所需的所有内容
    • 代码
    • 运行库
    • 环境变量
    • 配置文件

UnionFS

联合文件系统

union 联合文件系统 是一种分层轻量级 且 高性能的 文件系统

支持对文件系统的修改作为一次提交来一层层叠加,同时可以将不同目录挂载到同一虚拟文件系统下

UnionFS是docker镜像的基础

镜像可以通过分层作为基础,基于镜像基础(没有父镜像),就可以制作各种具体的镜像

特性

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

Docker 镜像加载原理

bootfs

  • Linux刚启动就会加载bootfs文件系统
  • docker镜像的最底层是bootfs
  • 和典型的Linux/Unix系统一致,包含boot加载器和内核
  • 当boot加载完成后整个内核都在内存中
  • 此时的内存使用权已由bootloader转交给内核,系统就会卸载bootloader
  • bootloader
    • 主要引导和加载kernel
  • kernel
    • 加载之后,就会卸载bootloader

rootfs

在bootfs之上,包含的就是典型的/dev, /proc, /bin,/etc等标准目录和文件

bootfs就是各种不同操作系统的发行版

对于一个精简的OS,rootfs可以很小,只需要包含最基本的命令工具和程序库就可以

因为底层直接使用Host的kernel,自己只需要提供rootfs就可以

对于不同的Linux发行版,bootfs基本相同,rootfs会有差别,不同的发行版可以共用bootfs

    典型的Linux启动到运行需要两个FS – bootfs + rootfs 

  典型的Linux启动到运行需要两个FS – bootfs + rootfs

                      不同的发行版可以公用bootfs 

 

Docker镜像采用分层结构

  • 共享资源
  • 多个镜像都是从Base镜像构建而来,宿主机只需要在磁盘上保存一份Base镜像,同时内容中也只需要加载一份Base镜像,就可以为所有容器服务
  • 镜像的每一层都可以被共享

特点

  • 当容器启动时,一个新的可写层加载到镜像的顶部,这一层被称为“容器层”,容器层之下都是“镜像层,readonlyDocker

Docker Commit 操作

docker commit -m "提交的信息描述" -a "作者" 容器ID 要创建的目标镜像名:[tag]

提交容器副本使之成为一个新的镜像

原文地址:https://www.cnblogs.com/ZhaoLong-study/p/13587038.html