本篇内容主要讲解“怎么分析并探索码头工人容器镜像的内容”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习”怎么分析并探索码头工人容器镜像的内容”吧!
或许你已经了解到 Docker 容器镜像是一个轻量、独立、含有运行某个应用所需全部软件的可执行包,这也是为什么容器镜像会经常被开发者用于构建和分发应用。假如你很好奇一个 Docker 镜像里面包含了什么东西,那么这篇简要的指南或许会帮助到你。今天,我们将学会使用一个名为 Dive 的工具来分析和探索 Docker 镜像每层的内容。
通过分析 Docker 镜像,我们可以发现在各个层之间可能重复的文件并通过移除它们来减小 Docker 镜像的大小。Dive 工具不仅仅是一个 Docker 镜像分析工具,它还可以帮助我们来构建镜像。Dive 是一个用 Go 编程语言编写的自由开源工具。
安装 Dive
首先从该项目的 发布页 下载***版本,然后像下面展示的那样根据你所使用的发行版来安装它。
假如你正在使用 Debian 或者 Ubuntu,那么可以运行下面的命令来下载并安装它。
$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb
$ sudo apt install ./dive_0.0.8_linux_amd64.deb
在 RHEL 或 CentOS 系统中
$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm
$ sudo rpm -i dive_0.0.8_linux_amd64.rpm
Dive 也可以使用 Linuxbrew 包管理器来安装。
$ brew tap wagoodman/dive
$ brew install dive
至于其他的安装方法,请参考 Dive 项目的 GitHub 网页。
分析并探索 Docker 镜像的内容
要分析一个 Docker 镜像,只需要运行加上 Docker 镜像 ID 的 dive
命令就可以了。你可以使用 sudo docker images
来得到 Docker 镜像的 ID。
$ sudo dive ea4c82dcd15a
上面命令中的 ea4c82dcd15a
是某个镜像的 ID。
然后 dive
命令将快速地分析给定 Docker 镜像的内容并将它在终端中展示出来。
正如你在上面的截图中看到的那样,在终端的左边一栏列出了给定 Docker 镜像的各个层及其详细内容,浪费的空间大小等信息。右边一栏则给出了给定 Docker 镜像每一层的内容。你可以使用 Ctrl+空格
来在左右栏之间切换,使用 UP
/DOWN
光标键来在目录树中进行浏览。
下面是 dive
的快捷键列表:
李> <李>Ctrl+空格
—— 在左右栏之间切换<代码>空格> 代码和终止,和终止,展开或收起目录树
李> <李><代码> Ctrl + A/<代码>,终止,和终止,文件树视图:展示或隐藏增加的文件
李> <李><代码> Ctrl + R> 代码和终止,和终止,文件树视图:展示或隐藏被移除的文件
李> <李><代码> Ctrl + M> 代码和终止,和终止,文件树视图:展示或隐藏被修改的文件
李> <李><代码> Ctrl + U> 代码和终止,和终止,文件树视图:展示或隐藏未修改的文件
李> <李><代码> Ctrl + L> 代码和终止,和终止,层视图:展示当前层的变化
李> <李><代码> Ctrl + A/<代码>,终止,和终止,层视图:展示总的变化
李> <李><代码> Ctrl +/> 代码和终止,和终止,筛选文件
李> <李><代码> Ctrl + C> 代码和终止,和终止,李退出
>
在上面的例子中,我使用了<代码> sudo 代码>权限,这是因为我的码头工人镜像存储在<代码>/var/lib/码头工人/代码>目录中。假如你的镜像保存在你的家目录(<代码> $ HOME> 代码)或者在其他不属于<代码>根> 代码用户的目录,你就没有必要使用sudo <代码> 代码>命令。
你还可以使用下面的单个命令来构建一个码头工人镜像并立刻分析该镜像:
<>之前,美元dive build -t & lt; some-tag>潜水工具仍处于β阶段,所以可能会存在bug。假如你遇到了错误,请在该项目的GitHub主页上进行报告。
到此,相信大家对“怎么分析并探索码头工人容器镜像的内容”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!