Docker镜像分析工具dive原理解析
今天推荐一个这样的开源工具,用于探索 Docker 镜像,各层内容以及发现缩小 Docker/OCI 镜像大小的方法。这个工具就是:dive。
工具地址:https://github.com/wagoodman/dive,Star 数:22k+。
这个工具可以清晰得看到镜像每一层都包含哪些内容,方便你分析是否有必要,如下图所示。
特性
该工具的主要特性包括:
- 按层显示 Docker 镜像内容;
- 指出每一层的变化;
- 评估 “镜像的效率”;
- 快速的构建/分析周期;
- 和 CI 集成;
- 支持多个镜像和容器引擎:比如 docker、docker-archive 和 podman;
安装和使用
1、主要采用docker运行dive的方式,具体用法可查看官方:
https://github.com/wagoodman/dive
2、拉取dive镜像
docker pull quay.io/wagoodman/dive:latest
3、通过docker运行dive查看镜像层信息
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/wagoodman/dive:latest \
nginx:latest
备注:最后面的nginx:latest就是要查看的镜像名称或者直接换成镜像ID也可以,打开界面如下:
KeyBindings
Key Binding | Description |
---|---|
<kbd>Ctrl + C</kbd> | 退出 |
<kbd>Tab</kbd> or <kbd>Ctrl + Space</kbd> | 在图层和文件树视图之间切换 |
<kbd>Ctrl + F</kbd> | 过滤文件 |
<kbd>Ctrl + A</kbd> | 图层视图:查看聚合图像修改 |
<kbd>Ctrl + L</kbd> | 图层视图:查看当前图层修改 |
<kbd>Space</kbd> | Filetree视图:折叠/取消折叠目录 |
<kbd>Ctrl + A</kbd> | Filetree视图: 显示/隐藏添加的文件 |
<kbd>Ctrl + R</kbd> | Filetree视图:显示/隐藏已删除的文件 |
<kbd>Ctrl + M</kbd> | Filetree视图:显示/隐藏已修改的文件 |
<kbd>Ctrl + U</kbd> | Filetree视图:显示/隐藏未修改的文件 |
<kbd>PageUp</kbd> | Filetree视图:向上滚动页面 |
<kbd>PageDown</kbd> | Filetree视图:向下滚动页面 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
docker镜像访问本地elasticsearch端口操作
使用docker stack部署的镜像服务,进入镜像之后,理论上,应该可以通过下面的指令访问本地的elasticsearch服务 curl 本机ip/9200 但是却提示拒绝访问. 后来本机使用上述指令查看之后发现,本机也是拒绝访问. 之后发现,9200端口的elasticsearch服务,是通过打洞的方式连接的远程服务器上的elasticsearch服务,只能通过下面指令访问端口 curl 127.0.0.1:9200 如果想要通过本机ip访问9200端口,则需要在打洞指令的后面加上 -g.
-
supervisor下的Dockerfile的多服务镜像封装操作
编写Dockerfile文件 配置yum源 cd /tmp/docker vim Dockerfile FROM rhel7 EXPOSE 80 22 # 向外暴露80和22的端口 COPY dvd.repo /etc/yum.repos.d/dvd.repo && yum install -y httpd openssh-server openssh-clients supervisor && yum clean all && ssh-keygen -q
-
Docker如何制作自己镜像并上传dockerhub
1.首先注册自己的dockerhub账号,注册地址:https://hub.docker.com 2.在linux服务器登录自己的账号:docker login --username=qiaoyeye 3.在https://hub.docker.com/上先找到自己想要的镜像 4.拉取镜像到本地:docker pull centos 5.本地准备jdk和tomcat软件,解压后放入服务器 6.新建Dockerfile文件,注意区分大小写 #----------------------------
-
Docker镜像压缩与优化操作
现如今docker如此受人追捧,主要是因为它的轻量化.可以快速部署以及资源的利用.但是一个docker images质量的好与坏,主要取决于Dockerfile编写的质量.同样功能的镜像,但是不同的Dockerfile build出来的镜像大小是不一样的,这是因为docker是由一层一层的只读层累积起来的,而这每一层就是Dockerfile中的每一条指令,所以Docker image的大小完全取决于Dockerfile中的每条指令生成的中间层的大小, 下面我们来举一个小例子来详细说明docker
-
dockerfile制作apache镜像的方法
一.Docker镜像 1.1 docker镜像 应用的是发布的标准格式 支撑一个docker容器的运行 1.2 docker镜像的创建方法 基于已有的镜像创建 基于本地模板创建 基于Dockerfile创建 Docker镜像是分层的结构 ①Dockerfile中的每个指令都会创建一个新的镜像层 ②镜像层将被缓存和复用 ③当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效 ④某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效 ⑤镜像层是
-
Docker镜像分析工具dive原理解析
今天推荐一个这样的开源工具,用于探索 Docker 镜像,各层内容以及发现缩小 Docker/OCI 镜像大小的方法.这个工具就是:dive. 工具地址:https://github.com/wagoodman/dive,Star 数:22k+. 这个工具可以清晰得看到镜像每一层都包含哪些内容,方便你分析是否有必要,如下图所示. 特性 该工具的主要特性包括: 按层显示 Docker 镜像内容: 指出每一层的变化: 评估 "镜像的效率": 快速的构建/分析周期: 和 CI 集成: 支持多
-
Python性能分析工具py-spy原理用法解析
Py-Spy介绍 引用官方的介绍: Py-Spy是Python程序的抽样分析器. 它允许您可视化查看Python程序在哪些地方花了更多时间,整个监控方式无需重新启动程序或以任何方式修改工程代码. Py-Spy的开销非常低:它是用Rust编写的,速度与编译的Python程序不在同一个进程中运行. 这意味着Py-Spy可以安全地用于生成生产环境中的Python应用调优分析. github:https://github.com/benfred/py-spy 安装 pip install py-spy
-
Docker基本概念和底层原理解析
目录 1.Docker的底层原理 2.Docker中常用的基本概念 3.run命令的运行流程 4.为什么Docker比VM快 Docker架构图: 我们依照Docker架构图进行Docker基础概念的说明. 1.Docker的底层原理 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器.容器是一个运行时环境,就好比是我们前面说到的集装箱. 例如架构图中的客户端(Clien
-
使用jib打包docker镜像实战
序 本文主要研究一下如何使用google的jib打包docker镜像 Jib 是谷歌最新开源的 Java 应用的 Docker 镜像生成工具,可以通过 Gradle 或 Maven 直接生成镜像并上传到仓库而不需要 Dockerfile 文件或者其他插件:Jib 支持将资源文件和类分层打包,可以大幅度提升生成镜像的速度 有一些其他的插件也可以通过 Docker 实现生成镜像,如com.palantir.docker等,但是都需要额外配置 Dockerfile, 如果应用仅需要通过 Dockerf
-
使用GoogleContainerTools容器化jib构建docker镜像
目录 前言碎语 插件配置 配置详解 插件命令使用 集成插件生命周期 文末结语 前言碎语 今天分享一个在容器化过程中非常重要的一个工具,java应用docker镜像build工具jib,这个工具是谷歌团队研发开源的,特点是不依赖docker守护进程,直白点说就是本地环境不安装docker环境也可以打包docker镜像.不用依赖维护Dockerfile,而且基于java打包插件可以轻松嵌入到java本身的构建生命周期中(本文使用maven).可以说是java容器化构建利器. 插件配置 <plugin
-
Docker镜像构建原理解析(不装docker也能构建镜像)
在devops流程里面 构建镜像是一个非常重要的过程,一般构建镜像是写dockerfile文件然后通过docker client来构建的image. docker client 会先检查本地有没有image,如果没有帮你 从镜像仓库 pull 下来 然后解析你写的dockerfile构建新的image. 本文带你了解 pull 命令 背后是怎么做的? build 命令 背后是怎么做的? 下篇文章带你解析: 如果我不用docker 我如何构建一个镜像? 我们以微软的aspnet2.2为基础构建一个
-
Docker Swarm集群管理的使用及原理解析
Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具.它将 Docker 主机池转变为单个虚拟 Docker 主机. Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机. 支持的工具包括但不限于以下各项: Dokku Docker Compose Docker Machine 原理 如下图所示,swarm 集群由管理节点(manager)和工作节点(work
-
Google和Facebook不使用Docker的原理解析
写作本文的起因是我想让修改后的分布式 PyTorch 程序能更快的在 Facebook 的集群上启动.探索过程很有趣,也展示了工业机器学习需要的知识体系. 2007 年我刚毕业后在 Google 工作过三年.当时觉得分布式操作系统 Borg 真好用. 从 2010 年离开 Google 之后就一直盼着它开源,直到 Kubernetes 的出现. Kubernetes 调度的计算单元是 containers(准确的翻译是"集装箱",而不是意思泛泛的"容器",看看 Do
-
Docker镜像加载原理
目录 Docker镜像 镜像是什么? Docker镜像加载原理 Commit镜像 Docker镜像(Images)总结 Docker镜像 镜像是什么? 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. 所有的应用,直接打包docker镜像,就可以直接跑起来! 如何得到镜像? 远程仓库下载 朋友拷贝 自己制作一个镜像 DockerFile Docker镜像加载原理 UnionFS(联合文
-
Spring Boot 分层打包 Docker 镜像实践及分析(推荐)
1. 准备 spring boot 项目 简单,略过 spring boot 版本 > 2.3.x 即可 简单写了一个 hello world 2. 进行相关配置 这里网上很多 blog 都强调了要去 pom.xml 里手动配置启用分层打包: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot
随机推荐
- winx64下mysql5.7.19的基本安装流程(详细)
- SQL查询语句通配符与ACCESS模糊查询like的解决方法
- java联系人管理系统简单设计
- 一个检测表单数据的JavaScript实例
- 详解AngularJS中自定义指令的使用
- Nginx负载均衡配置简单配置方法
- 详解spring中使用solr的代码实现
- JS实现简单的选择题测评系统代码思路详解(demo)
- JavaScript模拟实现继承的方法
- thinkPHP内置字符串截取函数用法详解
- 2款Python内存检测工具介绍和使用方法
- Thinkphp单字母函数使用指南
- php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
- php删除页面记录 同时刷新页面 删除条件用GET方式获得
- Struts2中Action三种接收参数形式与简单的表单验证功能
- mysql数据库优化必会的几个参数中文解释
- 精心收集的jQuery常用的插件1000
- nginx反向代理用做内网域名转发
- Java函数式开发 Optional空指针处理
- 使用PHP连接数据库_实现用户数据的增删改查的整体操作示例