Docker Image(镜像)

Docker镜像是什么

Docker image 本质上是一个 read-only 只读文件,这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器。
image 里面是一层层文件系统 Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。每一层文件系统我们叫做一层 layer,联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able),但是 docker镜像中每一层文件系统都是只读的。
联合文件系统例子
构建镜像的时候,从一个最基本的操作系统开始,每个构建的操作都相当于做一层的修改,增加了一层文件系统。一层层往上叠加,上层的修改会覆盖底层该位置的可见性,这也很容易理解,就像上层把底层遮住了一样。当你使用的时候,你只会看到一个完全的整体,你不知道里面有几层,也不清楚每一层所做的修改是什么。

为什么需要镜像

在部署应用时,通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐,需要配置等操作,非常费劲。
然而,Docker 镜像就是为了解决这个打包功能。那么,你可能说 Docker 镜像就是个压缩包,是的,你猜对了,它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题?很简单,它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构,这样的压缩包是跟你本地和测试环境用的操作系统一摸一样。
docker 最大的贡献就是定义了容器镜像的分层的存储格式,docker 镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用
docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,可以很方便的
将其用于个人用途或与其他 Docker 用户公开共享。

镜像命令

命令别名功能
docker imagesdocker image ls
docker image list
列出本地镜像
docker tagdocker image tag给镜像打标签,常用于推送镜像仓库
docker pulldocker image pull从镜像仓库中拉取镜像
docker pushdocker image push推送镜像到仓库
docker rmidocker image rm
docker image remove
删除本地镜像
docker builddocker image build通过dockerfile制作镜像
docker savedocker image save将指定镜像保存成tar归档文件
docker loaddocker image load导入使用docker save命令导出的镜像
docker image insepect查看镜像详细信息
docker historydocker image history查看镜像历史
docker importdocker image import从归档文件docker export中创建镜像
docker image prune删除不使用的镜像

docker images

docker images [options] [repository[:tag]]

参数
  • -a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
  • –digests:显示镜像的摘要信息
  • -f:显示满足条件的镜像
  • –formal:指定返回值的模板文件
  • –no-trunc:显示完整的镜像信息
  • -q:只显示镜像 ID

image.png

docker image inspect

查看镜像详细信息

docker image inspect [options] image [image...]

image.png

docker tag

标记本地镜像,将其归入某一仓库。

docker tag source_image[:tag] target_image[:tag]

image.png

docker rmi

删除镜像,对于使用的镜像需要先清理容器再删除镜像

docker rmi [options] image [image...]

参数
  • -f:强制删除
  • –no-prune:不移除该镜像的过程镜像,默认移除

image.png

docker save

将指定镜像保存成 tar 归档文件

docker save [options] image [image...] 

参数
  • -o:输出到哪一个文件

image.png

docker load

导入使用 docker save 命令导出的镜像。

docker load [options]

参数
  • -i:指定导入的文件
  • -q:精简输出信息

image.png

docker history

显示镜像历史

docker history [options] image

参数
  • -H:大小和日期采用人容易读的格式展现
  • –no-trunc :显示全部信息,不要隔断
  • -q, --quiet:** **只显示镜像 id 信息;

image.png
这是构建nginx镜像“盖的楼”(上面提的联合文件系统)

docker image prune

删除不使用的镜像,有两种含义一种是删除悬虚镜像,另一种是删除没被使用的容器。

docker image prune [options]

参数
  • -a:删除全部不使用的镜像(也就是没被使用的容器)
  • –fitter:指定过滤条件
  • -f:强制删除

image.png

镜像操作案例

查找镜像

docker search busybox

但是该命令无法查看到tag,因此大多是去docker hub查看
image.png

拉取镜像

image.png

查看镜像及列表存储信息

image.png
查看镜像仓库在本地的存储信息,进入/var/lib/docker/image目录,查看overlay2/repositories.json文件

cd /var/lib/docker/image
cat repositories.json

image.png

查看镜像详情

image.png

查看镜像分层

image.png

打标签

image.png

推送到仓库

image.png

运行容器

image.png
image.png

删除镜像

先要退出busybox
image.png
并没有出现delete,只是把tag删除掉
docker ps -a看看
image.png
image.png
还有镜像没有删除掉
image.png
无法让我们删除掉,是因为刚才我们启动了容器去跑这个镜像,所以要把这个容器删除掉
image.png
镜像删除成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能家居20年,从「动手」到「用脑」

【潮汐商业评论/原创】 正在装修新家的Carro最近陷入了纠结之中,“还没想好要怎么装一套完整的智能家居,家里的基装就已经开始了。” 事实上,Carro对智能家居也不了解,并不知道该如何下手,心想“要是能一次性设计好就…

Java实现两个Ip相互跳转

需求:在请求HttpClient时,如果访问的http://127.0.0.1:5004/proxy/1为空或者为html(看自己的需求而定),那么就跳转到http://192.128.121.140:5004/proxy/1 传入的ip1和ip2分别是127.0.0.1和192.128.121.140 private String sendRequest(String ip1, String ip2) {CloseableHt…

MyBatis详解(1)-- ORM模型

MyBatis详解(1) JDBC的弊端: ORM 模型常见的ORM模型:mybatis和Hibernate的区别 ***优势:mybatis解决问题:优点: MyBatisMyBatis环境搭建项目架构mybatis生命周期 JDBC的弊端: 1.硬编…

头歌C语言递归函数、嵌套函数

目录 第1关:递归求阶乘数列 任务描述 相关知识(略) 编程要求 测试说明 第2关:递归实现输出一个整数的逆序 任务描述

jenkins部署过程记录

一、jenkins部署git链接找不到 原因分析: 机器的git环境不是个人git的权限,所以clone不了。Jenkins的master节点部署机器已经部署较多其他的job在跑,如果直接修改机器的git配置,很可能影响到其他的job clone 不了代码&#xff0c…

EI论文复现:考虑冷热运行特性的综合能源系统多时间尺度优化调度程序代码!

适用平台/参考文献:MatlabYalmipCplex; 参考文献:电力系统自动化《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》 提出考虑冷热特性的综合能源系统多时间尺度优化调度模型,日前计划中通过多场景描述可再生能源的不确定性…

1.20号网络

数据库基本概念 能够输入计算机并能被计算机程序识别和处理的信息集合数据库 (Database) 数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合 常用的数据库 1)大型数据库Oracle公司是最早开发关系数据库的厂商…

大数据处理,Pandas与SQL高效读写大型数据集

大家好,使用Pandas和SQL高效地从数据库中读取、处理和写入大型数据集,以实现最佳性能和内存管理,这是十分重要的。 处理大型数据集往往是一项挑战,特别是在涉及到从数据库读取和写入数据时。将整个数据集加载到内存中的传统方法可…

opencv#33 边缘检测

边缘检测原理 图像的每一行每一列都可以看成是一个连续的信号经过离散后得到的数值,例如上图左侧给出的图像由黑色到白色的一个信号,也就是图像中某一行像素变化是由黑色逐渐到白色,我们将其对应在一个坐标轴中,将像素值的大小对应…

Pytorch线性代数

1、加法运算 A torch.arange(20, dtypetorch.float32).reshape(5, 4) B A.clone() # 通过分配新内存,将A的一个副本分配给B A, A B# tensor([[ 0., 1., 2., 3.], # [ 4., 5., 6., 7.], # [ 8., 9., 10., 11.], # [12., 13.,…

Linux系统创建并自动启用交换文件

在Linux系统中,交换空间(Swap Space)被用作当物理内存(RAM)不足时的额外内存。尽管现代计算机通常配备有大量的RAM,但在某些情况下,如运行内存密集型应用或程序时,交换空间仍然非常有…

鼠标移入/点击子组件,获取选中子组件事件

不管是移入&#xff0c;或者是点击事件 都要知道是触发的哪个组件 这里子组件是个通用小标题title 所以&#xff0c;通过标题内容&#xff0c;获取触发的哪个子组件子组件 <template><div mouseover"tMouseover" mouseleave"tMouseLeave" class&…

[AIGC大数据基础] Spark 入门

大数据处理已成为当代数据领域的重要课题之一。为了高效地处理和分析大规模数据集&#xff0c;许多大数据处理引擎应运而生。其中&#xff0c;Spark作为一个快速、通用的大数据处理引擎备受关注。 本文将从“是什么、怎么用、为什么用”三个角度来介绍Spark。首先&#xff0c;我…

【Flutter跨平台插件开发】如何实现kotlin跟C++的相互调用

【Flutter跨平台插件开发】如何实现kotlin跟C的相互调用 kotlin 调 c 在 Kotlin 中&#xff0c;可以使用 JNI (Java Native Interface) 来调用 C 代码 调用步骤: 创建 C 文件并实现函数。 // example.cpp #include <jni.h>extern "C" JNIEXPORT jstring J…

SQL 系列教程(二)

目录 SQL DELETE 语句 DELETE 语句 演示数据库 DELETE 实例 删除所有行 SQL TOP, LIMIT, ROWNUM 子句 TOP 子句 演示数据库 SQL TOP、LIMIT 和 ROWNUM 示例 SQL TOP PERCENT 实例 添加WHERE子句 SQL MIN() 和 MAX() 函数 MIN() 和 MAX() 函数 演示数据库 MIN() …

spring eureka集群相关问题

一、集群节点信息如何更新&#xff1f; EurekaServer节点启动的时候&#xff0c;DefaultEurekaServerContext.init()方法调用PeerEurekaNodes.start()方法&#xff0c;start方法中resolvePeerUrls()会从配置文件读取serviceUrl属性值获得集群最新节点信息&#xff0c;通过upda…

电池回收产业东风中,吉利科技集团如何先行一步?

随着绿色低碳可持续发展理念深入人心&#xff0c;全球能源变革和转型升级持续推进&#xff0c;新能源行业不断涌现新的机遇。 动力电池回收和再利用&#xff0c;就是近在眼前的“红利型”产业。 我国新能源汽车市场近年来爆发式增长&#xff0c;动力电池生产紧随电动车普及步…

【代码管理】TortoiseGit 图标没有显示

当TortoiseGit在Windows系统中没有正确显示文件和目录的图标状态时&#xff0c;可能的原因和解决方法如下&#xff1a; 原因与解决方案&#xff1a; TortoiseGit未集成到资源管理器&#xff1a; 请确保TortoiseGit已正确安装&#xff0c;并在安装过程中选择了“将TortoiseGit集…

C++区间覆盖(贪心算法)

假设有n个区间&#xff0c;分别是&#xff1a;[l1,r1], [l2,r2], [l3,r3].....[ln,rn] 从这n个区间中选出某些区间&#xff0c;要求这些区间满足两两不相交&#xff0c;最多能选出多少个区间呢&#xff1f; 基本思路&#xff1a; 按照右端点从小到大排序&#xff0c;再比较左端…

深度学习中RGB影像图的直方图均衡化python代码and对图片中指定部分做基于掩模的特定区域直方图均衡化

深度学习很重要的预处理步骤 就是需要对做直方图均衡化 其中主要分成灰度图以及RGB图的直方图均衡化 这俩的方法和代码不同 想要去看具体原理的朋友可以查看下面这篇博客的内容 写的很详细颜色直方图均衡化(https://www.cnblogs.com/wancy/p/17668345.html) 我们这个场景中会用…