列出 Docker 中的容器

Isaac Tony 2023年1月30日
  1. 列出 Docker 中所有正在运行的容器
  2. 列出 Docker 中正在运行和退出的容器
  3. 列出 Docker 中特定数量的容器
  4. 仅列出 Docker 中已退出的容器
  5. 在 Docker 中列出最近创建的容器
  6. 在 Docker 中按照 ID 列出容器
  7. 在 Docker 中列出容器及其大小
列出 Docker 中的容器

本文将探讨用于列出在我们系统中创建的容器的各种命令。这意味着我们应该事先为这些命令创建一些容器来返回值。

列出 Docker 中所有正在运行的容器

我们将从列出正在运行的容器开始。为此,我们可以使用 docker ps 命令。

$ docker ps

此命令列出了当前运行的所有容器,可以在下面示例输出中的 STATUS 列下看到。如此处所示,我们还可以确定容器已启动并运行的大致时间量。

CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS     NAMES
1c955bac1a84   ubuntu    "bash"                   About a minute ago   Up About a minute             musing_morse
1296f9b9d330   nginx     "/docker-entrypoint.…"   2 minutes ago        Up 2 minutes        80/tcp    distracted_napier

我们还可以使用 docker container ls 命令返回相同的输出。

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
1c955bac1a84   ubuntu    "bash"                   14 minutes ago   Up 14 minutes             musing_morse
1296f9b9d330   nginx     "/docker-entrypoint.…"   15 minutes ago   Up 14 minutes   80/tcp    distracted_napier

除了 STATUS,还返回以下详细信息。

  • CONTAINER ID,这是容器的唯一标识符;
  • CONTAINER IMAGE,即我们用来构建该容器的镜像;
  • 负责运行容器的 COMMAND;
  • 主机和容器之间的端口映射。

列出 Docker 中正在运行和退出的容器

除了列出正在运行的容器外,我们还可以列出正在运行和退出的容器。我们需要将 -a 标签附加到我们之前使用的命令中。

默认情况下,这些命令只显示正在运行的容器;但是,使用此标签也可以获得列出已退出容器的命令。

命令:

$ docker ps -a

输出:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                          PORTS     NAMES
38086474cb6c   debian    "bash"                   4 minutes ago    Exited (0) 2 minutes ago                  epic_jackson
1c955bac1a84   ubuntu    "bash"                   52 minutes ago   Exited (0) About a minute ago             musing_morse
1296f9b9d330   nginx     "/docker-entrypoint.…"   53 minutes ago   Up 58 seconds                   80/tcp    distracted_napier

在上面的状态列下的输出中,你可以注意到前两个容器没有运行,而最后一个容器正在运行。

列出 Docker 中特定数量的容器

我们还可以在我们的系统中显示特定数量的容器。假设我们只想显示前两个容器。我们可以通过在上面使用的命令旁边使用 -n 标签来做到这一点。

这将同时显示 running 和 exited 但不超过指定的数量。

命令:

$ docker container ls -n 2

输出:

CONTAINER ID   IMAGE     COMMAND   CREATED             STATUS                      PORTS     NAMES
38086474cb6c   debian    "bash"    31 minutes ago      Exited (0) 29 minutes ago             epic_jackson
1c955bac1a84   ubuntu    "bash"    About an hour ago   Exited (0) 27 minutes ago             musing_morse

同样,使用 docker ps 命令还将列出我们在下面指定的容器的确切数量。以下是我们如何实现它。

命令:

$ docker ps -a -n 2

输出:

CONTAINER ID   IMAGE     COMMAND   CREATED             STATUS                      PORTS     NAMES
38086474cb6c   debian    "bash"    33 minutes ago      Exited (0) 31 minutes ago             epic_jackson
1c955bac1a84   ubuntu    "bash"    About an hour ago   Exited (0) 29 minutes ago             musing_morse

仅列出 Docker 中已退出的容器

使用过滤器,我们还可以仅列出当前未运行的容器。使用 -f 标签来指定我们想要满足的条件,在这种情况下,我们只希望返回具有退出状态的容器。

如果我们希望基于其他内容返回容器,我们还可以添加多个过滤器。这是我们如何列出具有退出状态的容器的方法。

命令:

$ docker container ls --filter "status=exited"

输出:

CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS                      PORTS     NAMES
38086474cb6c   debian    "bash"    51 minutes ago   Exited (0) 49 minutes ago             epic_jackson
1c955bac1a84   ubuntu    "bash"    2 hours ago      Exited (0) 48 minutes ago             musing_morse

在 Docker 中列出最近创建的容器

也可以使用 -latest 标签返回最新的容器。这将返回我们最近创建的当前容器。

命令:

$ docker container ls --latest

输出:

CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS                      PORTS     NAMES
38086474cb6c   debian    "bash"    55 minutes ago   Exited (0) 53 minutes ago             epic_jackson

在 Docker 中按照 ID 列出容器

我们还可以根据容器的 ID 列出容器,我们可以使用 -q 来做到这一点,也称为 quiet 选项,如下所示。

命令:

$ docker container ls -q

输出:

 d780996c499a
f7509cd49142
72c8debe5efa

在 Docker 中列出容器及其大小

我们还可以在容器大小旁边列出容器。我们可以确定那些占用最大内存大小的人,以及其他细节。

我们可以通过使用 -s 标签来实现这一点,也称为尺寸标签。

命令:

$ docker container ls -s

输出:

CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                                 NAMES               SIZE
d780996c499a   4ac4842c584e   "/opt/sonarqube/bin/…"   3 minutes ago   Up 3 minutes   9000/tcp                                              amazing_benz        73.2kB (virtual 520MB)
f7509cd49142   5285cb69ea55   "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   27017/tcp                                             boring_wilson       0B (virtual 698MB)
72c8debe5efa   rabbitmq       "docker-entrypoint.s…"   4 minutes ago   Up 4 minutes   4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp   determined_curran   0B (virtual 221MB)
作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

相关文章 - Docker Container