没有Dockerfile的情况下获取该镜像的基本信息

今天跟大家分享一个在没有镜像的Dockerfile的情况下,查看docker镜像概要信息的小技巧,我们先来看一个前面文章我们曾经用到的一个镜像node-exporter的Dockerfile,如下图:

没有Dockerfile的情况下获取该镜像的基本信息

node-exporter Dockerfile

我们可以知道这个镜像时基于那个镜像制作的、以及作者还有后面的一些操作。这样通过Dockerfile就可以很清楚地知道这个镜像时怎么生成的,但是有时候我们拿到一个镜像而没有Dockerfile的情况下,又想了解这个镜像大概信息时候,该怎么做呢?当然你可以google或者其他可行的方式,这里分享一个比较简单的方式。


1.查找image的ID号

这应该用过docker的都了解怎么拿到镜像的ID号,我们可以使用docker images就可以看到了,比如这里我需要拿到node-expoter的镜像的ID号,我就可以输入命令docker images这时将会返回信息这台主机上面的所有镜像的一些信息,其中就包括有镜像ID号信息,这样我们就可以拿到镜像的ID号了,如下图:

没有Dockerfile的情况下获取该镜像的基本信息

image id


2.查找和镜像ID名称一致的文件

在旧版的docker中在这个镜像ID目录下面会有一个json文件记录这个镜像的概要信息,不过新版的docker就修改成直接使用ID号来命名这个文件了,所以我们可以在/var/lib/docker/image/devicemapper/imagedb/content/sha256/ 这个目录下面找到这个文件,例如上面我们找的node-exporter的ID号是7faa2f21a307开头的,如下图:

没有Dockerfile的情况下获取该镜像的基本信息

json文件

如果一开始不知道这个文件放到哪个位置,我们可以直接使用find 命令去查询,如下图:

没有Dockerfile的情况下获取该镜像的基本信息

find json


3.查看json文件

这里我们直接使用vim进去查看,也可以cat查看,我采用cat查看,如下图:

没有Dockerfile的情况下获取该镜像的基本信息

cat json

从上面我们可以看到node-exporter这个镜像的一些信息,如作者等等信息,但是这样的输出太乱了,看起来很费劲,这个是个json串的文本,所以这里教大家一个方法,一般centos的虚拟机都会装有Python,所以可以使用cat file.json|python -m json.tool这样的命令来查看,如下图:

没有Dockerfile的情况下获取该镜像的基本信息

python工具格式化json

这样看起来就非常清晰了,好了本次的分享到此结束good luck!



May you share freely, never taking more than you give.



分享到:


相關文章: