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拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...
随机推荐
- 如何在K3查找BOS单据在哪个子系统中
select FFunctionID,* from ICClassType where FName_CHS like '%采购订单%'select FSubSysID,* from t_DataFlo ...
- centos7在命令界面使用命令可以执行,但在jenkins中输入命令报Chrome has crashed.
问题:selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: ex ...
- Oracle 数据库,远程访问 ora-12541:TNS:无监听程序
1.修改网络连接IPV4设置为固定IP IP地址:192.168.100.8子网掩码:255.255.255.0默认网关:192.168.100.1首选DNS:192.168.100.1 2.修改.. ...
- MFC线程间消息传递(转)
原文地址:https://blog.csdn.net/qq_37059136/article/details/84972192
- 自己动手系列----使用数组实现一个简单的Map
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同.Java 语言中提供的数组是用来存储固定大小的同类型元素. 这里提一下,数组的优缺点: 优点: 1. 使用索 ...
- classification tips 01: npy file
numpy array storation; npy/npz file. 文件存取的格式:二进制和文本.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy文件存取-npz ...
- 5G套餐资费或为199元至599元,高昂价格会阻碍大众使用热情吗?
近段时间,运营商各种谜一般的操作让其走上舆论的风口浪尖,成为人们口诛笔伐的对象.比如在前段时间,运营商相继宣布要取消"达量降速版畅享套餐",对用户的权益造成巨大冲击,引发了网络热议 ...
- LocalDate和LocalTime的用法介绍
原文:LocalDate和LocalTime的用法介绍 在JAVA中,常用的处理日期和时间的类主要有Date,Calendar,而在JDK1.8中,新增了两个处理日期和时间的类,一个是LocalDat ...
- codeforces 1288E. Messenger Simulator(树状数组)
链接:https://codeforces.com/contest/1288/problem/E 题意:序列p的长度为n,初始序列为1 2 3 4 ...n,然后有m次操作,每次指定序列中一个数移动到 ...
- HTML备忘
a标签事件 a:link {color: #000000} /* 未访问的链接 */ a:visited {color: #d90a81} /* 已访问的链接 */ a:hover {color: # ...