如何在 Docker 中列出镜像?
Docker 提供了大量实用的 Docker 命令,可帮助您创建、操作和管理 Docker 对象,例如卷、镜像、容器、网络等。如果您使用 Docker 已有一段时间,您的机器上可能已经存在多个 Docker 镜像。跟踪所有这些镜像相当困难,尤其是在仅使用一条命令行的情况下。
但是,您可以列出所有 Docker 镜像,并根据需要筛选输出以获得所需结果。在本文中,我们将讨论如何使用不同的命令以及多种选项来列出主机上的所有 Docker 镜像。
列出 Docker 镜像
有两个主要的命令可以互换使用来列出 Docker 镜像,它们都能提供相同的结果。这两个命令的语法如下所示。
$ docker image ls [OPTIONS] [REPOSITORY[:TAG]]
您可以使用多个选项来执行此命令。这些是 -
- --digests - 用于打印镜像的摘要。
- --filter - 您可以使用此选项过滤输出。
- --format - 您可以使用 Go 模板美化输出。
- --no-trunc - 您可以使用此选项避免输出被截断。
- --quiet - 仅显示镜像 ID。
- --all - 您可以使用此选项列出中间镜像。
另一个实现相同结果的命令是 -
$ docker images
让我们讨论一些修改结果输出的示例。
如果您只想列出属于特定仓库的镜像,可以使用以下命令。
$ docker images <repository-name>:<tag-name>
For example, if you want to list all the nginx images, you can use the following command.
$ docker images nginx
您还可以提供镜像仓库名称以及标签名称。
$ docker images nginx:latest
如果您仔细查看结果,会发现 Docker images list 命令会截断镜像 ID 来显示镜像列表。如果您想覆盖此默认行为,可以使用 `--no-trunc` 选项。让我们看看如何操作。
$ docker images --no-trunc
如果您还想列出镜像的摘要,只需在 Docker images 命令中使用 `--digests` 选项即可。
镜像摘要是分配给每个已标记镜像的唯一 ID,通常用于查找相似镜像。$ docker images --digests
如果您想列出所有悬空或未标记的镜像,可以使用 `--filter` 选项。您需要提供相应的键值对。您可以提供的过滤器示例包括:`label`、`dangling`、`before`、`since` 和 `reference`。让我们看看如何列出所有悬空镜像。
$ docker images --filter "dangling=true"
如果您想筛选出所有在特定镜像之前创建的镜像,可以使用 `before` 过滤器。
$ docker images --filter "before=fedora"
上述命令将显示主机上 Fedora 镜像之前创建的所有镜像列表。要列出在特定镜像之后创建的镜像,可以使用 `since` 过滤器。
$ docker images --filter "since=fedora"
您还可以使用 `reference` 选项来列出符合特定模式的镜像。例如,如果您想列出所有以字母 `m` 开头的镜像,可以使用以下命令。
$ docker images --filter=reference="m*"
要列出所有图像,包括中间图像和悬空图像,可以使用 --all 选项。
$ docker images --all
如果您只想打印镜像的 ID,可以使用 `--quiet` 选项。
$ docker images --quiet
您还可以使用 `--format` 选项,通过 Go 模板美化输出。让我们看看如何操作。
$ docker images --format "The Image ID for the image is {{.ID}} belonging to {{.Repository}}"
您还可以使用其他占位符,例如 tag、ID、digest、size、createdat、createdsince 等。
总结!
总而言之,本文讨论了如何使用两个不同的命令列出主机上的所有 Docker 镜像。我们还了解了如何使用几个不同的选项来根据需要格式化输出。
我们研究了多种选项,例如 quiet、all、digest、format、filter 等。我们衷心希望您现在能够以最精确的方式使用 Docker 镜像列表命令,从而获得准确的结果。
