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
如果您还想列出镜像的摘要,您可以简单地将 --digests 选项与 Docker 镜像命令一起使用。图像摘要是赋予每个标记图像的唯一 ID,通常用于检查相似图像。
$ docker images --digests
如果要列出所有悬空或未标记的图像,可以使用 --filter 选项来执行此操作。您需要提供适当的键值对。您可以提供的一些过滤器示例是 - 标签、悬空、之前、之后和参考。让我们看看如何列出所有悬空图像。
$ docker images --filter "dangling=true"
如果要过滤在特定图像之前创建的所有图像,可以使用 before 过滤器。
$ docker images --filter "before=fedora"
上面的命令将显示在您的主机中的 fedora 镜像之前创建的所有镜像的列表。要列出在特定图像之后创建的图像,您可以使用自过滤器。
$ docker images --filter "since=fedora"
您还可以使用参考选项列出与特定模式匹配的图像。例如,如果要列出所有以字母 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}}"
您可以使用的其他占位符包括标签、ID、摘要、大小、createdat、createdsince 等。
总而言之,在本文中,我们讨论了如何使用两个不同的命令来列出主机中的所有 Docker 镜像。我们看到了如何根据我们的要求使用几种不同的选项来格式化输出。我们查看了多个选项,例如 quiet、all、digest、format、filter 等。我们当然希望您现在能够以最精确的方式使用 Docker 镜像列表命令来获得准确的结果。