1. 使用images命令列出鏡像
使用docker images或者docker image ls命令可以列出本地主機(jī)上已有鏡像的基本信息。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 2fa927b5cdd3 2 weeks ago 122 MB
ubuntu latest 2fa927b5cdd3 2 weeks ago 122 MB
ubuntu 14.04 8f1bd21bd25c 2 weeks ago 188 MB
在列出的信息中,可以看到以下幾個(gè)字段信息艺栈。
- 來自于哪個(gè)倉庫,比如ubuntu倉庫用來保存ubuntu系列的基礎(chǔ)鏡像;
- 鏡像的標(biāo)簽信息俊抵,比如14.04、latest用來標(biāo)注不同的版本信息坐梯。標(biāo)簽徽诲,只是標(biāo)記,并不能標(biāo)識鏡像內(nèi)容吵血;
- 鏡像的ID(唯一標(biāo)識鏡像)谎替,如ubuntu:latest和ubuntu:16.04鏡像的ID都是2fa927b5cdd3,說明它們目前實(shí)際上指向同一個(gè)鏡像蹋辅;
- 創(chuàng)建時(shí)間钱贯,說明鏡像最后的更新時(shí)間;
- 鏡像大小侦另,優(yōu)秀的鏡像往往體積都較小秩命。
images子命令主要支持如下選項(xiàng):
- -a,--all=true|false:列出所有的鏡像文件(包括臨時(shí)文件)褒傅,默認(rèn)為否硫麻;
- --digests=true|false:列出鏡像的數(shù)字摘要值,默認(rèn)為否樊卓;
- -f拿愧,--filter=[]:過濾列出的鏡像,如 dangling=true只顯示沒有標(biāo)簽的鏡像碌尔;
- --format="TEMPLATE":控制輸出格式浇辜,如.ID代表ID信息券敌,.Repository代表倉庫信息等;
- --no-trunc=true|false:對輸出結(jié)果中太長的部分是否進(jìn)行截?cái)嗔螅珑R像的ID信息待诅,默認(rèn)為是;
- -q熊镣,--quiet=true|false:僅輸出 ID信息卑雁,默認(rèn)為否。
-f绪囱, --filter=[] 的使用
# 列出沒有tag的鏡像
# docker images -f "dangling=true"
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 450e15c7459f 10 hours ago 177MB
<none> <none> 96ae66cb0553 10 hours ago 177MB
<none> <none> a05eb601e28c 10 hours ago 177MB
<none> <none> 402ba2565be1 10 hours ago 177MB
可以使用以下命令批量刪除沒有tag的鏡像:
docker rmi $(docker images -f “dangling=true” -q)
當(dāng)前支持的過濾配置的key有:
- dangling:顯示標(biāo)記為空的鏡像测蹲,值只有true和false
- label:這個(gè)是根據(jù)標(biāo)簽進(jìn)行過濾,其中l(wèi)able的值鬼吵,是docker在編譯的時(shí)候配置的或者在Dockerfile中配置的
- before:這個(gè)是根據(jù)時(shí)間來進(jìn)行過濾扣甲,其中before的value表示某個(gè)鏡像構(gòu)建時(shí)間之前的鏡像列表
- since:跟before正好相反,表示的是在某個(gè)鏡像構(gòu)建之后構(gòu)建的鏡像
- reference:這個(gè)是添加正則進(jìn)行匹配
--format 輸出結(jié)果格式化展示:
- ID Image ID
- Repository Image repository
- Tag Image tag
- Digest Image digest
- CreatedSince Elapsed time since the image was created
- CreatedAt Time when the image was created
- Size Image disk size
[root@localhost ~]# docker images --format "{{.Repository}}:{{.Tag}}\t{{.Size}}" |column -t
nginx:latest 192MB
hello-world:1.1 13.3kB
hello-world:latest 13.3kB
multiarch/qemu-user-static:register 4.9MB
2. 使用tag命令添加鏡像標(biāo)簽
為了方便在后續(xù)工作中使用特定鏡像齿椅,還可以使用docker tag命令來為本地鏡像任意添加新的標(biāo)簽琉挖。例如添加一個(gè)新的myubuntu:latest鏡像標(biāo)簽:
$ docker tag ubuntu:latest myubuntu:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 2fa927b5cdd3 2 weeks ago 122 MB
ubuntu latest 2fa927b5cdd3 2 weeks ago 122 MB
myubuntu latest 2fa927b5cdd3 2 weeks ago 122 MB
ubuntu 14.04 8f1bd21bd25c 2 weeks ago 188 MB
可以看到myubuntu:latest鏡像的ID跟ubuntu:latest完全一致。它們實(shí)際上指向同一個(gè)鏡像文件涣脚,只是別名不同而已示辈。docker tag命令添加的標(biāo)簽實(shí)際上起到了類似鏈接的作用。
3. 使用inspect命令查看詳細(xì)信息
[root@localhost ~]# docker inspect hello-world
[
{
"Id": "sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d",
"RepoTags": [
"hello-world:1.1",
"hello-world:latest"
],
"RepoDigests": [
"hello-world@sha256:c79d06dfdfd3d3eb04cafd0dc2bacab0992ebc243e083cabe208bac4dd7759e0"
],
"Parent": "",
"Comment": "",
"Created": "2023-05-04T17:37:03.872958712Z",
"Loaded": "2023-12-06T13:46:57.813793161+08:00",
"Container": "347ca68872ee924c4f9394b195dcadaf591d387a45d624225251efc6cb7a348e",
"ContainerConfig": {
"Hostname": "347ca68872ee",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"/hello\"]"
],
"Image": "sha256:62a15619037f3c4fb4e6ba9bd224cba3540e393a55dc52f6bebe212ca7b5e1a7",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {},
"Annotations": null
},
"DockerVersion": "20.10.23",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/hello"
],
"Image": "sha256:62a15619037f3c4fb4e6ba9bd224cba3540e393a55dc52f6bebe212ca7b5e1a7",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null,
"Annotations": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 13256,
"VirtualSize": 13256,
"GraphDriver": {
"Data": {
"MergedDir": "/var/lib/docker/overlay2/6fa22b8b4565e5852d42bbe83a6fd59ca07e20b1d8697150ddc61216a3c47bc0/merged",
"UpperDir": "/var/lib/docker/overlay2/6fa22b8b4565e5852d42bbe83a6fd59ca07e20b1d8697150ddc61216a3c47bc0/diff",
"WorkDir": "/var/lib/docker/overlay2/6fa22b8b4565e5852d42bbe83a6fd59ca07e20b1d8697150ddc61216a3c47bc0/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:01bb4fce3eb1b56b05adf99504dafd31907a5aadac736e36b27595c8b92f07f1"
]
},
"Metadata": {
"LastTagTime": "2023-12-20T15:41:57.72013765+08:00"
}
}
]
返回的是一個(gè)JSON格式的消息遣蚀,如果我們只要其中一項(xiàng)內(nèi)容時(shí)顽耳,可以使用參數(shù)-f來指定,例如妙同,獲取鏡像的Architecture:
[root@localhost ~]# docker inspect hello-world -f "{{.Architecture}}"
amd64
4. 使用history命令查看鏡像歷史
既然鏡像文件由多個(gè)層組成射富,那么怎么知道各個(gè)層的內(nèi)容具體是什么
呢?這時(shí)候可以使用history子命令粥帚,該命令將列出各層的創(chuàng)建信息胰耗。
例如,查看鏡像的創(chuàng)建過程芒涡,可以使用如下命令:
[root@localhost ~]# docker history hello-world
IMAGE CREATED CREATED BY SIZE COMMENT
9c7a54a9a43c 7 months ago /bin/sh -c #(nop) CMD ["/hello"] 0B
<missing> 7 months ago /bin/sh -c #(nop) COPY file:201f8f1849e89d53… 13.3kB
過長的命令被自動(dòng)截?cái)嗔瞬竦疲梢允褂们懊嫣岬降?-no-trunc選項(xiàng)來輸
出完整命令。
[root@localhost ~]# docker history hello-world --no-trunc
IMAGE CREATED CREATED BY SIZE COMMENT
sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d 7 months ago /bin/sh -c #(nop) CMD ["/hello"] 0B
<missing> 7 months ago /bin/sh -c #(nop) COPY file:201f8f1849e89d53be9f6aa76937f5e209d745abfd15a8552fcf2ba45ab267f9 in / 13.3kB
5. 搜鏡像
使用docker search命令可以搜索遠(yuǎn)端倉庫中?享的鏡像费尽,默認(rèn)搜索官方倉庫中的鏡像赠群。用法為docker search NAME,支持的參數(shù)主要包括:
- --automated=true|false:僅顯示自動(dòng)創(chuàng)建的鏡像旱幼,默認(rèn)為否查描;
- --no-trunc=true|false:輸出信息不截?cái)囡@示,默認(rèn)為否;
- -s冬三,--stars=X:指定僅顯示評價(jià)為指定星級以上的鏡像匀油,默認(rèn)為0,即輸出所有鏡像勾笆。
例如敌蚜,搜索所有自動(dòng)創(chuàng)建的評價(jià)為1+的帶nginx關(guān)鍵字的鏡像,如下所示:
[root@localhost ~]# docker search --automated -s 3 nginx
Flag --automated has been deprecated, use --filter=is-automated=true instead
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
bitnami/nginx Bitnami nginx Docker Image 180 [OK]
bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Contr… 32 [OK]
可以看到新版本--automated和--stars已廢棄窝爪,使用--filter=is-automated=true和--filter=stars=3替代
- 只搜索官方鏡像
docker search -f is-official=true java