Docker - Docker 镜像 简介
- 概述
- 简单介绍一下 docker 镜像的概念
1. 背景
- 复习 docker
- 镜像是 docker 最基础, 最重要的概念之一
- 所以正式使用之前, 最好有所理解和认识
2. 镜像
- 概述
- 简单描述
- 理解不够深入, 内容可能会有偏差
1. 镜像到底是什么
概述
- 大致说明镜像是什么
本质
- 文件系统的模板
关系类比
- 镜像 和 容器 的关系
- 类似于 代码 和 进程 的关系
- 镜像 和 容器 的关系
镜像层(layer)
- 概述
- 镜像是由 一个或多个 镜像层组成的
- 镜像层可以由多个镜像公用
- 概述
image
- 概念
- docker 为了方便镜像管理, 对镜像元数据做的抽象
- 用来映射到 镜像数据, 从而方便管理
- 以后一般不会提这个东西
- docker 为了方便镜像管理, 对镜像元数据做的抽象
- 概念
2. 启动
概述
- 简述 容器启动
- 最终的文件系统, 是由一个个镜像叠加后产生的结果
准备
- 有镜像
- 宿主机系统已经正常启动
过程
挂载 bootfs
作用
- 引导 rootfs
结果
- 引导成功后, 会被卸载
挂载 rootfs
作用
- 容器的基础文件系统
- 里面通常会有 操作系统
- 容器的基础文件系统
过程
- 挂载
- 检测完成性
- 最终转为 只读模式
挂载 其他镜像层
- 作用
- 在 rootfs 上添加其他的 镜像层
- 当然这些层也是 只读的
- 作用
挂载 init-layer
- 作用
- 记录特定 容器实例 的属性
- 环境变量
- 各种配置
- 等等
- 记录特定 容器实例 的属性
- 作用
挂载 读写层
- 作用
- 挂载对外直接读写的文件系统
- 作用
执行命令
- 作用
- 如果有命令, 就执行
- 作用
结果
产生了一个 可用的容器
- 从外面的视角来看, 这个就是一个文件系统
- 就像那种小说里藏宝图的感觉
- 藏宝图本身, 有一定透明度
- 每一张藏宝图, 只有其中一部分
- 要想得到一章完整的藏宝图, 需要将几张叠在一起看
- 或者说, 就是 ps 里的 图层
- 就像那种小说里藏宝图的感觉
- 其他的机制, 后面会有描述
- 从外面的视角来看, 这个就是一个文件系统
可能产生的疑问
- 分层 是怎么回事
- layer
- 分了那么多层, 到底怎么挂载
- 只读层
- 读写层
- 既然有那么多层, 读写到底怎么办
- 分层 是怎么回事
3. 特性
1. 分层
概述
- 镜像的分层
- layer
- 镜像的分层
镜像的组成
- 一个基础镜像
- 通常是操作系统镜像
- 若干其他分层
- 通常是各种命令
- dockerfile 里, 一个命令就是一层
- 通常是各种命令
- 从外面看
- 就像一个 文件系统, 而不多个的叠加
- 一个基础镜像
只读
- 启动容器后, 镜像里的内容, 是只读的
- 具体的写, 需要 联合挂载 和 写时复制 的配合
- 启动容器后, 镜像里的内容, 是只读的
layer 复用
- 镜像由多个 layer 组成
- layer 是可以复用的
- 多个镜像, 同时使用一个 layer 层
- 会影响到后面的 写时复制
2. 联合挂载
概述
- 整合多个 layer 里的文件系统, 以及 读写文件系统
- 同时挂载到一个 mountpoint 上
- 对外看来, 只是一个 联合文件系统
- 整合多个 layer 里的文件系统, 以及 读写文件系统
感觉这个, 好像没什么可说的...
3. 写时复制
概述
- 一种 优化措施
- 较少并发用户的资源占用
- 加快复用资源的加载速度
- 怎么说
- 平时
- 大家一起用
- 写时
- 复制出一份私有的数据
- docker 里就是写到 具体容器的读写层
- 复制出一份私有的数据
- 平时
- 一种 优化措施
文件读写
读
- 没有数据冲突
- 直接读
- 有数据冲突
- 上层会让底层不可见
- 但不会实质影响底层内容
- 没有数据冲突
写
- 只对 读写层写入
- 不会影响底层的内容
问题
- 写入的东西, 不会影响镜像本身
- 容器挂了, 就没了
- 如果需要构建新容器, 那该怎么办呢
- 写入的东西, 不会影响镜像本身
4. 貌似还有个 内容寻址
- 但是这个我也不太明白, 不知道从何说起
4. 镜像基本属性
概述
- 镜像基本属性
- 查看
- 解释
- 镜像基本属性
查看
> docker image ls
结果
- 结果查询, 通常会有这么写属性
REPOSITORY
概述
- 仓库
格式
# 格式1
<repo>
# 格式2
<repo>/<subRepo>
TAG
概述
- 镜像标记
- 可以理解为 版本号
默认
- latest
IMAGE ID
- 概述
- 镜像 镜像生成时, 随机生成的内容
- 概述
CREATED
- 概述
- 镜像创造的事件
- 概述
SIZE
- 概述
- 镜像的大小
- 概述
- 结果查询, 通常会有这么写属性
ps
ref
- docker 实践
- 第一本 docker 书
- Docker 镜像之进阶篇
后续
- docker 资源管理命令
- 镜像
- 容器
- 存储
- 网络
- docker 资源管理命令
Docker - Docker 镜像 简介的更多相关文章
- docker入门——镜像简介
什么是docker镜像 Docker镜像是由文件系统叠加而成. 最底端是一个引导文件系统,即bootfs: 这很像典型的Linux/Unix的引导文件系统.Docker用户几乎永远不会和引导文件系统有 ...
- docker基础属性简介包含镜像 容器 registry服务等概念及关系
Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相当于是一个 r ...
- Docker(二) 镜像
简介 Docker镜像是什么? 它是一个只读的文件,就类似于我们安装操作系统时候所需要的那个iso光盘镜像,通过运行这个镜像来完成各种应用的部署. 这里的镜像就是一个能被docker运行起来的一个程序 ...
- 容器技术之Docker私有镜像仓库docker-distribution
在前边的博客中我们说到docker的架构由docker客户端.服务端以及仓库组成:docker仓库就是用来存放镜像的地方:其实docker registry我们理解为存放docker镜像仓库的仓库比较 ...
- 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署
庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介 我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...
- Docker:镜像操作和容器操作
镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...
- Docker的镜像
镜像是容器的运行基础,容器是镜像运行后台的形态 镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上 镜像的系统结构 ...
- Docker - Docker国内镜像的配置及使用
Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...
- Docker image 镜像介绍
操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...
- Docker - 定制镜像
Dockerfile Docker Hub拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...
随机推荐
- wso2 使用配置
1.下载wso2 https://docs.wso2.com 2.配置 https://172.10.0.59:9443/publisher https://172.10.0.59:9443/carb ...
- asm相关内容想下载(包括 jar 包)
网址:http://download.forge.ow2.org/asm/
- PyQt5-QDateEdit的简单使用
使用PyQt5开发图形界面,里面使用日期框,这里把这个QDateEdit组件命名为:beginDate from PyQt5.QtCore import QDate 1.初始化赋值,不设置则默认为20 ...
- c++踩坑大法好 赋值和指针的区别
1,先说结论: 两个指针指向同一个结构,一个改了结构,另一个也会改掉. 两个指针指向同一个结构,修改了其中一个的指向,并且改了其中的内容,另一个不为所动. 2,看例子 main.cpp #includ ...
- Jupyter Notebook快捷键总结
1. Jupyter Notebook有两种mode Enter:进入edit模式 Esc:进入command模式 2. Command命令快捷键: A:在上方增加一个cell B:在下方增加一个ce ...
- LVS+Nginx(LVS + Keepalived + Nginx安装及配置)
(也可以每个nginx都挂在上所有的应用服务器) nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广 ...
- HDR视频生态圈追踪
截止目前,HDR视频生态圈已经产生了巨大的变化.本文将更新旧有的HDR生态圈范围,并更清晰地描述当前HDR视频生态圈.本文译自The HDR video ecosystem tracker,原作者为 ...
- PHP pdf 转 图片
function pdf2png($pdf,$path,$page=-1) { if(!extension_loaded('imagick')) { return false; } if(!file_ ...
- echart --toolbox
1.自定义的toolbox 消息回调 toolbox: { show: true, itemSize: 32, borderColor: '#0cb1b6', borderWidth: 1, bord ...
- Cats and Fish(小猫分鱼吃吱吱吱!)(我觉得是要用贪心的样子!)
炎炎夏日,一堆