如何在 Docker 中列出容器?
通过单个命令行在单个主机上管理多个 Docker 容器可能会变得很困难。因此,最好了解 Docker 命令以最佳方式管理容器。Docker 为我们提供了许多命令行工具和实用程序来管理容器。在本文中,我们将讨论如何通过多种方式列出 Docker 容器。我们还将了解如何过滤列表输出以获得所需的结果。因此,事不宜迟,让我们开始吧。
列出 Docker 容器
主要有两种主要的命令可用于显示所有容器的列表。它们是:
- Docker container ls
- Docker ps
这两个命令都可以用来实现类似的结果,并且可以互换使用。让我们来看看这两个命令的语法。
$ docker container ls [OPTIONS]
$ docker ps [OPTIONS]
您可以将多个选项与 Docker container ls 和 Docker ps 命令一起使用。让我们讨论每一个。
名称 | 缩写 | 描述 |
---|---|---|
--all | -a | 您可以使用此选项显示所有容器。默认情况下,守护程序仅显示正在运行的容器。 |
--filter | -f | 您可以使用此选项根据您提供的条件为输出提供过滤器。 |
--format | | 您可以通过指定 Go 模板来漂亮地打印容器列表。 |
--last | -n | 如果您只想显示最后启动的 n 个容器,可以使用此选项。 |
--latest | -l | 您可以使用此选项仅显示最新构建的容器列表。 |
--no-trunc | | 要避免截断输出,可以使用此选项。 |
--quiet | -q | 您可以使用 quiet 选项仅显示容器 ID。 |
--size | -s | 您可以使用此选项显示容器的文件大小。 |
示例 1. 显示正在运行的容器
如果您想显示所有正在运行的容器,您可以按原样使用上述命令。
$ docker container ls
$ docker ps
这将仅列出系统上正在积极运行的容器。这将显示诸如容器 ID、容器名称、关联的镜像、创建日期、容器状态、已公开的端口和默认命令等参数。
示例 2. 列出所有 Docker 容器
如果您想列出所有 Docker 容器(非活动或活动),您可以将 --all 选项与上述命令一起使用。这将列出所有状态下的所有容器。
$ docker container ls -a
$ docker ps -a
示例 3. 列出已停止的容器
已停止的容器是指处于退出状态的容器。通过在其中执行 Docker stop 命令,容器将进入退出状态。如果您只想列出已停止的容器,您可以将 --filter 选项与名为 status 的参数一起使用。让我们看看如何做到这一点。
$ docker container ls --filter "status=exited"
您可以与 filter 选项一起提供的其他状态过滤器是:
- 已创建 - 这意味着容器仅创建而未启动。
- 正在重新启动 - 此状态表示容器正在重新启动。
- 正在运行 - 这意味着容器正在积极运行。
- 已暂停 - 这意味着容器内的所有进程都已暂停。
- 已退出 - 这意味着容器已停止。
- 已死 - 这意味着停止容器的尝试失败了。
事实上,您还可以根据容器 ID、镜像和名称过滤镜像。
示例 4. 显示镜像的容器
如果您想显示与特定镜像关联的容器列表,您可以将 filter 选项与 ancestor 参数一起使用。让我们看看如何做到这一点。
$ docker container ls -a --filter "ancestor=<name of image>"
示例 5. 只打印容器 ID
如果您只想打印容器的 ID,可以使用 quiet 选项来执行此操作。以下是仅打印所有容器的容器 ID 的命令。
$ docker container ls -a -q
如果您想显示有关这两个命令的有用信息,您可以使用 --help 选项,如下所述。
$ docker container ls --help
$ docker ps --help
示例 6. 列出在特定容器之前和之后创建的容器
您还可以使用 filter 选项列出在特定容器之前或之后创建的所有容器。
$ docker container ls -a -f before=container_name
$ docker container ls -a -f since=container_name
最终想法!
总而言之,在本文中,我们讨论了用于显示主机中完整容器列表的两个主要命令。此外,我们还讨论了可与这些命令一起使用的各种选项,以便根据我们的要求过滤结果。我们希望您现在能够以更好、更简单的方式使用容器列表命令。