用 Docker 的人都知道裸弦,我們?cè)诓樵冞h(yuǎn)端鏡像倉(cāng)庫(kù)中鏡像的時(shí)候犀暑,在命令行只能看到鏡像名,說明等信息烁兰,而看不到標(biāo)簽耐亏。因此,如果我想要查看鏡像有哪些標(biāo)簽沪斟,就只能通過網(wǎng)頁(yè)的方式查看广辰,比如通過 https://hub.docker.com/ 查看,這樣實(shí)在是太麻煩主之,于是乎择吊,我想是不是可以寫個(gè)小工具來干這個(gè)事呢?答案當(dāng)然是肯定的槽奕。下面就看看怎樣實(shí)現(xiàn)的吧几睛。
寫了個(gè)腳本 list_img_tags.sh,內(nèi)容如下:
#!/bin/sh
repo_url=https://registry.hub.docker.com/v1/repositories
image_name=$1
curl -s ${repo_url}/${image_name}/tags | json_reformat | grep name | awk '{print $2}' | sed -e 's/"http://g'
其實(shí)粤攒,實(shí)現(xiàn)方法就是通過鏡像倉(cāng)庫(kù)的 restful API所森,來查詢囱持,然后把返回的 json 結(jié)果簡(jiǎn)單處理一下,然后打印出來焕济。
上面腳本的實(shí)現(xiàn)是只從 hub.docker.com 來查詢纷妆,如果使用其它倉(cāng)庫(kù),可以根據(jù)需要修改倉(cāng)庫(kù)的url晴弃。
測(cè)試一哈
$ ./list_img_tags.sh tensorflow/tensorflow
latest
0.10.0
0.10.0-devel
0.10.0-devel-gpu
0.10.0-gpu
0.10.0rc0
0.10.0rc0-devel
0.10.0rc0-devel-gpu
0.10.0rc0-gpu
0.11.0
...