[TOC]
查看镜像信息-【docker images】
帮助
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「根据提供的条件过滤输出」
--format string Pretty-print images using a Go template「使用Go模板打印漂亮的图像」
--no-trunc Don't truncate output「不要截断输出」
-q, --quiet Only show numeric IDs「仅显示数字ID」
实例
docker inspect.md
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
imhang/s-docker latest 463999e75ab0 4 months ago 11.1MB
fischerman/docker-ttrss latest 847b21087c9f 7 months ago 329MB
kdelfour/lychee-docker latest 1bed5bfa1ad5 4 years ago 563MB
nornagon/postgres latest a0ade66f42cc 6 years ago 386MB
nornagon/postgres latest_*** a0ade66f42cc 6 years ago 386MB
添加镜像标签【docker tag】
帮助-语法
Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
实例
root@wq:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fischerman/docker-ttrss latest 847b21087c9f 7 months ago 329MB
nornagon/postgres latest a0ade66f42cc 6 years ago 386MB
root@wq:~# docker tag nornagon/postgres:latest nornagon/postgres:latest_***
root@wq:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fischerman/docker-ttrss latest 847b21087c9f 7 months ago 329MB
nornagon/postgres latest a0ade66f42cc 6 years ago 386MB
nornagon/postgres latest_*** a0ade66f42cc 6 years ago 386MB
他们的ID一致,实际上指向同一个镜像文件,只是别名不同而已。docker tag命令添加的标签实际上起到了类似链接的作用。
查看详细的镜像信息【inspect】
获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等:
帮助
Usage: docker inspect [OPTIONS] NAME|ID [NAME|ID...]
Return low-level information on Docker objects「返回有关Docker对象的低级信息」
Options:
-f, --format string Format the output using the given Go template「使用给定的Go模板格式化输出」
-s, --size Display total file sizes if the type is container「如果类型为容器,则显示文件总大小」
--type string Return JSON for specified type「返回指定类型的JSON」
实例1
docker inspect ubuntu:14.04
....
回的是一个JSON格式的消息,如果我们只要其中一项内容时,可以使用参数-f来指定
查看单独信息【inspect】
获取容器/镜像的元数据
帮助
docker inspect -f {{ }} {{ }} NAME|ID
-f 的实参是个 Go 模版,并在容器/镜像的元数据上以该 Go 模版作为输入,最终返回模版指定的数据。
模版指令
{{ }}
语法用于处理模版指令,大括号外的任何字符都将直接输出。
“.” 表示“当前上下文”。大多数情况下表示了容器元数据的整个数据结构,但在某些情况下可以重新规定上下文,比如使用 with 函数:
实例
root@wq:~# docker inspect -f {{".Metadata"}} nornagon/postgres:latest
{2020-08-14 10:24:43.728542547 +0800 CST}
root@wq:~# docker inspect -f {{".Created"}} imhang/s-docker:latest
2020-03-28T17:29:36.054883547Z
root@wq:~# docker inspect --format={{".Config"}} imhang/s-docker:latest
{ false false false map[443/tcp:{} 443/udp:{}] false false false [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SS_PORT=443 SS_PASSWORD=123456 SS_METHOD=chacha20-ietf-poly1305 SS_TIMEOUT=600] [] true sha256:a2cb0c642fb7d71a07d27539399867d8cfc76d09ea6737f9edcac8e1ef480a63 map[] [/bin/sh -c ss-server -p $SS_PORT -k $SS_PASSWORD -m $SS_METHOD -t $SS_TIMEOUT -d 8.8.8.8,8.8.4.4 -u --fast-open] false [] map[] []}
二次过滤
当查看的的信息太多的时候,需要在过滤一次
root@wq:~# docker inspect --format='{{.Config.Image}}' imhang/s-docker:latest
sha256:a2cb0c642fb7d71a07d27539399867d8cfc76d09ea6737f9edcac8e1ef480a63
互联网示例
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
172.17.0.3
查看镜像历史【docker history】
该命令将列出各层的创建信息。
--no-trunc选项来输出完整命令
搜寻镜像
搜索远端仓库的共享镜像,默认是官方仓库。
帮助
root@wq:~# docker search ubuntu --help
Usage: docker search [OPTIONS] TERM
Search the Docker Hub for images
Options:
-f, --filter filter Filter output based on conditions provided 「根据条件过滤输出」
--format string Pretty-print search using a Go template「使用Go模板进行漂亮的打印搜索」
--limit int Max number of search results (default 25)「最多搜索出多少条目(默认25)」
--no-trunc Don't truncate output「不要截断输出(默认否)」
实例
搜索所有星级为3以上的带nginx关键字的镜像
$docker search --filter=stars=3 nginx
OR docker search -f=stars=3 nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13616 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1861 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 782 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 126
...
删除镜像【docker rmi】
帮助
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
Options:
-f, --force Force removal of the image「强制删除镜像」
--no-prune Do not delete untagged parents「
实例
docker rmi myubuntu:latest
Untagged: myubuntu:latest
如果该镜像没有额外的标签指向它(也就是只有一个标签的时候),执行docker rmi命令,可以看出它会删除这个镜像文件的所有层$ docker rmi ubuntu:14.04
OR $ docker rmi 2fa927b5cdd3
Untagged: ubuntu:14.04
Deleted: sha256:8f1bd21bd25c3fb1d4b00b7936a73a0664f932e11406c48a0ef19d82fd0b7342
Deleted: sha256:8ea3b9ba4dd9d448d1ca3ca7afa8989d033532c11050f5e129d267be8de9c1b4
Deleted: sha256:7db5fb90eb6ffb6b5418f76dde5f685601fad200a8f4698432ebf8ba80757576
Deleted: sha256:19a7e879151723856fb640449481c65c55fc9e186405dd74ae6919f88eccce75
Deleted: sha256:c357a3f74f16f61c2cc78dbb0ae1ff8c8f4fa79be9388db38a87c7d8010b2fe4
Deleted: sha256:a7e1c363defb1f80633f3688e945754fc4c8f1543f07114befb5e0175d569f4c
PS
postscript(备注)
通常不直接使用-f
来删除一个存在容器的镜像。最好先删除该镜像依赖的所有容器再删除镜像
**删除容器的命令docker rm [容器ID]