沒有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.



分享到:


相關文章: