• Docker——镜像原理和镜像commit


    镜像是什么?

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

    UnionFS(联合文件系统)

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

    Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像

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

    Docker镜像加载原理

    Docker的镜像其实是由一层一层的文件系统组成,这种层级的文件系统UnionFS。

    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等标准目录和文件

    对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令,工具和程序即可,因为底层直接用Host的kernel。自己只需提供rootfs就行。对于不同的linux发行版本,bootfs基本是一致的,可以公用bootfs.

    所以虚拟机中的OS都是几个G,docker这个就几百M

    分层的镜像

    一个镜像由多个组件组成

    为什么Docker镜像要采用这种分层结构呢?

    最大的好处:共享资源

    commit操作补充

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

    docker commit -m="提交的描述信息"  -a="作者"  容器Id  要创建的目标镜像名:[标签名]       注意,这里改的是容器

  • 相关阅读:
    为Docker容器配置固定IP
    Docker CPU 资源限制——CPU分片功能测试
    Centos7下用命令下载jdk7及jboss-eap-6
    Docker CPU 资源限制——CPU固定核功能测试
    更改MySQL数据文件目录位置
    Linux下资源利用率监测利器—nmon使用
    图示-Centos7完整安装
    Photoshop图层混合模式计算公式大全
    HMC5883L地磁传感器驱动
    ADXL345加速度传感器驱动
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/15589783.html
Copyright © 2020-2023  润新知