1. 概述

    1. 简单介绍一下 docker 镜像的概念

1. 背景

  1. 复习 docker

    1. 镜像是 docker 最基础, 最重要的概念之一
    2. 所以正式使用之前, 最好有所理解和认识

2. 镜像

  1. 概述

    1. 简单描述
    2. 理解不够深入, 内容可能会有偏差

1. 镜像到底是什么

  1. 概述

    1. 大致说明镜像是什么
  2. 本质

    1. 文件系统的模板
  3. 关系类比

    1. 镜像 和 容器 的关系

      1. 类似于 代码 和 进程 的关系
  4. 镜像层(layer)

    1. 概述

      1. 镜像是由 一个或多个 镜像层组成的
      2. 镜像层可以由多个镜像公用
  5. image

    1. 概念

      1. docker 为了方便镜像管理, 对镜像元数据做的抽象

        1. 用来映射到 镜像数据, 从而方便管理
        2. 以后一般不会提这个东西

2. 启动

  1. 概述

    1. 简述 容器启动
    2. 最终的文件系统, 是由一个个镜像叠加后产生的结果
  2. 准备

    1. 有镜像
    2. 宿主机系统已经正常启动
  3. 过程

    1. 挂载 bootfs

      1. 作用

        1. 引导 rootfs
      2. 结果

        1. 引导成功后, 会被卸载
    2. 挂载 rootfs

      1. 作用

        1. 容器的基础文件系统

          1. 里面通常会有 操作系统
      2. 过程

        1. 挂载
        2. 检测完成性
        3. 最终转为 只读模式
    3. 挂载 其他镜像层

      1. 作用

        1. 在 rootfs 上添加其他的 镜像层
        2. 当然这些层也是 只读的
    4. 挂载 init-layer

      1. 作用

        1. 记录特定 容器实例 的属性

          1. 环境变量
          2. 各种配置
          3. 等等
    5. 挂载 读写层

      1. 作用

        1. 挂载对外直接读写的文件系统
    6. 执行命令

      1. 作用

        1. 如果有命令, 就执行
  4. 结果

    1. 产生了一个 可用的容器

      1. 从外面的视角来看, 这个就是一个文件系统

        1. 就像那种小说里藏宝图的感觉

          1. 藏宝图本身, 有一定透明度
          2. 每一张藏宝图, 只有其中一部分
          3. 要想得到一章完整的藏宝图, 需要将几张叠在一起看
        2. 或者说, 就是 ps 里的 图层
      2. 其他的机制, 后面会有描述
    2. 可能产生的疑问

      1. 分层 是怎么回事

        1. layer
      2. 分了那么多层, 到底怎么挂载
        1. 只读层
        2. 读写层
      3. 既然有那么多层, 读写到底怎么办

3. 特性

1. 分层

  1. 概述

    1. 镜像的分层

      1. layer
  2. 镜像的组成

    1. 一个基础镜像

      1. 通常是操作系统镜像
    2. 若干其他分层
      1. 通常是各种命令

        1. dockerfile 里, 一个命令就是一层
    3. 从外面看
      1. 就像一个 文件系统, 而不多个的叠加
  3. 只读

    1. 启动容器后, 镜像里的内容, 是只读的

      1. 具体的写, 需要 联合挂载 和 写时复制 的配合
  4. layer 复用

    1. 镜像由多个 layer 组成
    2. layer 是可以复用的
      1. 多个镜像, 同时使用一个 layer 层
    3. 会影响到后面的 写时复制

2. 联合挂载

  1. 概述

    1. 整合多个 layer 里的文件系统, 以及 读写文件系统

      1. 同时挂载到一个 mountpoint 上
    2. 对外看来, 只是一个 联合文件系统
  2. 感觉这个, 好像没什么可说的...

3. 写时复制

  1. 概述

    1. 一种 优化措施

      1. 较少并发用户的资源占用
      2. 加快复用资源的加载速度
    2. 怎么说
      1. 平时

        1. 大家一起用
      2. 写时
        1. 复制出一份私有的数据

          1. docker 里就是写到 具体容器的读写层
  2. 文件读写

      1. 没有数据冲突

        1. 直接读
      2. 有数据冲突
        1. 上层会让底层不可见
        2. 但不会实质影响底层内容
      1. 只对 读写层写入
      2. 不会影响底层的内容
  3. 问题

    1. 写入的东西, 不会影响镜像本身

      1. 容器挂了, 就没了
      2. 如果需要构建新容器, 那该怎么办呢

4. 貌似还有个 内容寻址

  1. 但是这个我也不太明白, 不知道从何说起

4. 镜像基本属性

  1. 概述

    1. 镜像基本属性

      1. 查看
      2. 解释
  2. 查看

    > docker image ls
  3. 结果

    1. 结果查询, 通常会有这么写属性

      1. REPOSITORY

        1. 概述

          1. 仓库
        2. 格式

          # 格式1
          <repo>
          # 格式2
          <repo>/<subRepo>
      2. TAG

        1. 概述

          1. 镜像标记
          2. 可以理解为 版本号
        2. 默认

          1. latest
      3. IMAGE ID

        1. 概述

          1. 镜像 镜像生成时, 随机生成的内容
      4. CREATED

        1. 概述

          1. 镜像创造的事件
      5. SIZE

        1. 概述

          1. 镜像的大小

ps

  1. ref

    1. docker 实践
    2. 第一本 docker 书
    3. Docker 镜像之进阶篇
  2. 后续

    1. docker 资源管理命令

      1. 镜像
      2. 容器
      3. 存储
      4. 网络

Docker - Docker 镜像 简介的更多相关文章

  1. docker入门——镜像简介

    什么是docker镜像 Docker镜像是由文件系统叠加而成. 最底端是一个引导文件系统,即bootfs: 这很像典型的Linux/Unix的引导文件系统.Docker用户几乎永远不会和引导文件系统有 ...

  2. docker基础属性简介包含镜像 容器 registry服务等概念及关系

    Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相当于是一个 r ...

  3. Docker(二) 镜像

    简介 Docker镜像是什么? 它是一个只读的文件,就类似于我们安装操作系统时候所需要的那个iso光盘镜像,通过运行这个镜像来完成各种应用的部署. 这里的镜像就是一个能被docker运行起来的一个程序 ...

  4. 容器技术之Docker私有镜像仓库docker-distribution

    在前边的博客中我们说到docker的架构由docker客户端.服务端以及仓库组成:docker仓库就是用来存放镜像的地方:其实docker registry我们理解为存放docker镜像仓库的仓库比较 ...

  5. 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署

    庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介      我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...

  6. Docker:镜像操作和容器操作

    镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...

  7. Docker的镜像

    镜像是容器的运行基础,容器是镜像运行后台的形态 镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上 镜像的系统结构 ...

  8. Docker - Docker国内镜像的配置及使用

    Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...

  9. Docker image 镜像介绍

    操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...

  10. Docker - 定制镜像

    Dockerfile Docker Hub拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...

随机推荐

  1. 题解【AcWing10】有依赖的背包问题

    题面 树形 DP 的经典问题. 我们设 \(dp_{i,j}\) 表示当前节点为 \(i\),当前节点的子树(包含当前节点)最多装的体积是 \(j\) 的最大价值. 我们遍历节点的过程就相当于做了一遍 ...

  2. (转)预估大数据量下UV的方法

    在实际应用中,我们经常碰到这种情况,即要统计某个对象或者事件独立出现的次数.对于较小的数据量,这很容易解决,我们可以首先在内存中对序列进行排序,然后扫描有序序列统计独立元素数目.其中排序时间复杂度为O ...

  3. Selenium原理

      from selenium import webdriver:导入webdriver模块 当导入webdriver模块时,会执行\selenium\webdriver目录下的__init__.py ...

  4. SpringBoot整合WEB开发--(七)注册拦截器

    1.创建一个拦截器类实现HandlerInterceptor接口,重写其中的3个方法,这拦截器中方法的执行顺序为:preHandle--Controller--postHandle--afterCom ...

  5. IDEA 在SVN上更新代码错误: Error:Server SSL certificate rejected

    在IDEA中更新代码到SVN中 ,出现了   Error:Server SSL certificate rejected    ---服务器的SSL证书  的错误 之前在网上有找过一些相关的做法,但是 ...

  6. springboot之json传参(后台控制层如何接收和解析参数)

    一般web端都是用form标签的形式进行表单提交到后台,后台控制层再用相应的实体对象去接收前端传来的json参数. 但是有时候前端界面很复杂,要传入后端的参数是各种标签里面的value值,这些值又是来 ...

  7. Python获取当前文件路径及父文件路径

    import os # 当前文件的路径 1.os.getcwd(): 2.os.path.realpath(__file__) # 当前文件的父路径 1.pwd=os.getcwd()   os.pa ...

  8. K3/Cloud点击按钮打开第三方URL

    public override void AfterBarItemClick(BOS.Core.DynamicForm.PlugIn.Args.AfterBarItemClickEventArgs e ...

  9. Laravel中如何做数据库迁移

    总的来说,做一次独立数据库迁移只需要三步,分别是创建迁移文件.修改迁移文件.运行迁移 1.创建数据库迁移文件php artisan make:migration create_articles_tab ...

  10. Oracle 11g安装 —— Oracle Database 11g Release2 for Windows(x64)

    文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104422421 下面是我的Oracle 11g安装过程,希望可以帮到正 ...