docker查看所有容器 | docker列出所有容器命令 16

作者 : 慕源网 本文共3293个字,预计阅读时间需要9分钟 发布时间: 2021-12-13 共3.79K人阅读

docker列出所有容器命令

为了列出 docker 容器,我们使用 ‘docker container ls’ 或 ‘docker ps’ 命令。两个命令都具有相同的标志,因为这两个命令都对同一事物(即容器)进行操作。它有不同的标志来根据我们的要求获取输出,因为它默认只显示正在运行的容器。’docker ps’ 命令更快更容易输入。

语法:

$docker container ls --help

$docker ps –help

docker查看所有容器

  • 我们必须使用 Docker CLI 工具来执行命令来列出容器。
  • 我们有两个列出容器的 Docker 命令。
  • 第一个是“docker container ls”,第二个是“docker ps”。
  • 如果我们运行此命令中的任何一个,我们只会获取该主机上正在运行的容器,但是,该命令具有不同的参数,我们可以指定这些参数来获取我们需要的容器列表。

Docker 列表容器示例

下面给出了提到的例子:

示例#1

我们有多个处于不同状态的容器,例如一些容器正在运行,一些处于退出状态或除运行之外的任何其他状态。我们想列出所有容器,无论它是否正在运行。

a. 让我们创建一些alpine 容器,如下所示:

代码:

$docker run -d alpine sleep 3600
$ docker run -d alpine
$ docker run -d alpine

输出:

b. 现在,我们可以运行“docker container ls”或“docker ps”命令来获取容器列表,如下所示:

代码:

$docker container ls
$docker ps

输出:

解释

  • 我们创建了 3 个容器,但两个命令都只显示 1 个容器,因为默认情况下它只显示正在运行的容器。

c. 我们必须使用 ‘-all’ 或 ‘-a’ 标志来列出所有容器,如下所示:

代码:

$docker container ls --all
$ docker container ls –a
$docker ps --all
$docker ps -a

输出:

示例#2

假设我们有数百个容器在一台主机上运行,​​我们想查看特定的容器,例如,所有退出的容器都有特定的名称、ID、标签、卷、网络等。

a. 创建一些带有标签和名称的容器,如下所示:

代码:

$ docker run -d ubuntu sleep 3600
$ docker run -d alpine
$ docker run --label type=db -d redis
$ docker run -d --name test-con1 alpine

输出:

b. 让我们首先使用 id 过滤这些容器,如下所示:

代码:

$ docker container ls -a -f "id= ebe9557e"
$ docker container ls -a -f "id=eb"

输出:

注意:如果容器没有运行,我们必须使用“-a”标志,否则它不会输出任何内容。建议在过滤时使用“-a”标志。此外,我们也可以使用短 ID。

c.  我们还可以根据容器的名称进行过滤,如下所示:

代码:

$docker container ls -a -f "name=test-con1"

输出:

注意:我们也可以使用容器的短名称,它会输出所有与名称匹配的容器,如下所示。

d. 我们可以根据容器的标签过滤容器,如下所示:

代码:

$ docker container ls -f "label=type=db"
$ docker container ls -f "label=type"

输出:

解释

  • 在上面的快照中,第一个命令显示标签为“type=db”的容器,第二个命令显示标签为“type”的容器,而不管值如何。

e. 我们可以根据其镜像过滤容器,如下所示:

代码:

$ docker container ls -a -f ancestor=alpine

输出:

注意:我们也可以使用标签、镜像 ID 。

代码:

$ docker container ls -a -f ancestor=3fd9065eaf02

输出:

F. 我们想过滤在特定容器之前和之后运行的容器,我们可以使用 before 和 since 过滤器,如下所示:

代码:

$ docker container ls -a -f before=laughing_carson
$ docker container ls -a -f since=laughing_carson

输出:

还有其他过滤器可用。

示例 #3

了解“–format”选项的使用。如果我们想根据需要显示容器的特定字段或格式化输出。我们可以根据容器 ID、镜像 ID、命令、端口等进行格式化。

a. 如果我们只想显示容器的 ID,那么使用 –format 选项如下:

代码:

$docker container ls -a --format "{{.ID}}"

输出:

b. 如果我们想输出带有 id 的名称,那么我们必须添加该字段,如下所示:

代码:

$docker container ls -a --format "{{.ID}} {{.Names}}"

输出:

c. 我们可以使用 ‘\t’ 在字段之间腾出更多空间,如下所示:

代码:

$ docker container ls -a --format "{{.ID}} \t {{.Names}}"

输出:

d. 如果需要,我们可以同时使用多个字段和任何符号,如下所示:

代码:

$docker container ls -a --format "{{.ID}} -> \t {{.Names}} -> \t {{.Status}}"

输出:

e. 当我们列出容器时,我们可以检查默认情况下未显示的标签或任何其他隐藏字段。

代码:

$ docker container ls -a --format "{{.ID}} \t {{.Names}} \t {{.Labels}} \t {{.Size}}"

输出:

解释

  • 在上面的快照中,只有一个容器具有标签,即 type=db。

F. 我们可以看到输出没有列标题,如 ID、名称、标签等。我们必须使用“table”指令,如下所示:

代码:

$docker container ls -a --format "table {{.ID}} \t {{.Names}} \t {{.Labels}} \t {{.Size}}"

输出:

它也为我们提供了更清洁的输出。

示例 #4

我们要列出最近创建的 n 个容器。我们可以通过使用 ‘-last’ 或 ‘-n’ 选项来实现,如下所示:

代码:

$ docker container ls -n 2

输出:

上面的示例显示了最后创建的 2 个容器,还包括所有容器。

示例#5

我们可以使用“-l”标志来列出最新创建的容器。它显示所有容器,而不管它们的状态如何,而不指定“-a”标志。

代码:

$docker container ls -l

输出:

示例 #6

有时,由于屏幕大小或更多列,我们会遇到输出问题,因此默认情况下 Docker 守护程序会截断某些列的输出,如下所示:

代码:

$docker container ls

输出:

解释

  • 在上面的快照中,我们看到“COMMAND”列已被截断。

我们可以使用“–no-trunc”选项来显示该列的完整值,如下所示:

代码:

$docker container ls --no-trunc

输出:

我们现在可以看到容器的完整容器 ID 和命令。我们可以将此选项与其他选项以及格式一起使用:

示例 #7

如果我们只想列出容器 ID,那么我们可以使用选项 ‘-quiet’ 或 ‘-q’。它类似于仅使用带有 ID 的 ‘-format’ 选项。我们可以通过管道将它传递给 ‘wc’ 命令来计算容器,如下所示:

代码:

$docker container ls --quiet
$ docker container ls  -a –quiet
$ docker container ls -a –quiet | wc

输出:

示例 #8

如果我们想显示容器的大小,我们必须使用 ‘-size’ 或 ‘-s’ 选项,如下所示,但是,我们也可以使用 ‘format’ 选项输出相同的内容,但是这个命令它更快。

代码:

$ docker container ls -a  --size

输出:

结论

我们可以指定多个选项来获取容器列表,但最有用的选项是“filter”和“format”选项。大多数时候我们使用“docker ps”命令,因为我们必须输入更少。

推荐文章

这是 docker查看所有容器 的指南。这里我们分别举例讨论docker列出所有容器命令

本文是docker快速入门教程系列的一部分您也可以查看以了解更多信息 –

 


慕源网 » docker查看所有容器 | docker列出所有容器命令 16

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录