1. 程式人生 > >docker images列出鏡像

docker images列出鏡像

pan sha 詳細信息 cbc sha256 tag 完整 nbsp 完成

命令:docker images

Usage:    docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             Show all images (default hides intermediate images)列出所有鏡像
      --digests         Show digests列出更詳細信息
  -f, --filter filter   Filter output based on conditions provided過濾 
如:
docker images -f dangling=true 可以把那些虛懸鏡像列出來
這類鏡像已經是沒用的了,可使用
$ docker rmi $(docker images -q -f dangling=true)
進行刪除
--format string Pretty-print images using a Go template --help Print usage --no-trunc Dont truncate output -q, --quiet Only show numeric IDs
列表包含了倉庫名、標簽、鏡像 ID、創建時間以及所占用的空間。
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              36540f359ca3        
4 weeks ago 193MB [[email protected] ~]# docker images --digests REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE centos latest sha256:c1010e2fe2b635822d99a096b1f4184becf5d1c98707cbccae00be663a9b9131 36540f359ca3
4 weeks ago 193MB [[email protected] ~]# docker images -q 36540f359ca3

其它用法

根據倉庫名列出鏡像

$ docker images ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               f753707788c5        4 weeks ago         127 MB
ubuntu              latest              f753707788c5        4 weeks ago         127 MB
ubuntu              14.04               1e0c3dd64ccd        4 weeks ago         188 MB
列出特定的某個鏡像,也就是說指定倉庫名和標簽

$ docker images ubuntu:16.04
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               f753707788c5        4 weeks ago         127 MB
除此以外,docker images 還支持強大的過濾器參數 --filter,或者簡寫 -f。之前我們已經看到了使用過濾器來列出虛懸鏡像的用法,它還有更多的用法。比如,我們希望看到在 mongo:3.2 之後建立的鏡像,可以用下面的命令:

$ docker images -f since=mongo:3.2
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              5f515359c7f8        5 days ago          183 MB
nginx               latest              05a60462f8ba        5 days ago          181 MB
想查看某個位置之前的鏡像也可以,只需要把 since 換成 before 即可。

此外,如果鏡像構建時,定義了 LABEL,還可以通過 LABEL 來過濾。

$ docker images -f label=com.example.version=0.1
...
以特定格式顯示

默認情況下,docker images 會輸出一個完整的表格,但是我們並非所有時候都會需要這些內容。比如,剛才刪除虛懸鏡像的時候,我們需要利用 docker images 把所有的虛懸鏡像的 ID 列出來,然後才可以交給 docker rmi 命令作為參數來刪除指定的這些鏡像,這個時候就用到了 -q 參數。

$ docker images -q
5f515359c7f8
05a60462f8ba
fe9198c04d62
00285df0df87
f753707788c5
f753707788c5
1e0c3dd64ccd
--filter 配合 -q 產生出指定範圍的 ID 列表,然後送給另一個 docker 命令作為參數,從而針對這組實體成批的進行某種操作的做法在 Docker 命令行使用過程中非常常見,不僅僅是鏡像,將來我們會在各個命令中看到這類搭配以完成很強大的功能。因此每次在文檔看到過濾器後,可以多註意一下它們的用法。

另外一些時候,我們可能只是對表格的結構不滿意,希望自己組織列;或者不希望有標題,這樣方便其它程序解析結果等,這就用到了 Go 的模板語法。

比如,下面的命令會直接列出鏡像結果,並且只包含鏡像ID和倉庫名:

$ docker images --format "{{.ID}}: {{.Repository}}"
5f515359c7f8: redis
05a60462f8ba: nginx
fe9198c04d62: mongo
00285df0df87: <none>
f753707788c5: ubuntu
f753707788c5: ubuntu
1e0c3dd64ccd: ubuntu
或者打算以表格等距顯示,並且有標題行,和默認一樣,不過自己定義列:

$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID            REPOSITORY          TAG
5f515359c7f8        redis               latest
05a60462f8ba        nginx               latest
fe9198c04d62        mongo               3.2
00285df0df87        <none>              <none>
f753707788c5        ubuntu              16.04
f753707788c5        ubuntu              latest
1e0c3dd64ccd        ubuntu              14.04

docker images列出鏡像