docker container ls

列出容器。

用法

docker container ls [OPTIONS]

别名

别名是较长命令的简短或易于记忆的替代形式。

  • docker container list

  • docker container ps

  • docker ps

选项

选项
默认值
描述

-a, --all

显示所有容器(默认仅显示正在运行的容器)

-f, --filter

根据提供的条件过滤输出

--format

使用自定义模板格式化输出: 'table':以带列标题的表格格式打印输出(默认) 'table TEMPLATE':使用给定的 Go 模板以表格格式打印输出 'json':以 JSON 格式打印 'TEMPLATE':使用给定的 Go 模板打印输出。 有关使用模板格式化输出的更多信息,请参阅 https://docs.docker.com/go/formatting/

-n, --last

-1

显示最后创建的 n 个容器(包含所有状态)

-l, --latest

显示最新创建的容器(包含所有状态)

--no-trunc

不截断输出

-q, --quiet

仅显示容器 ID

-s, --size

显示总文件大小

过滤 (--filter)

过滤标志 (--filter) 的格式为 key=value。如果有多个过滤器,则传递多个标志(例如,--filter "foo=bar" --filter "bif=baz")。

目前支持的过滤器有:

过滤器
描述

id

容器 ID

name

容器名称

label

任意字符串,表示一个键或键值对。格式为 <key><key>=<value>

exited

表示容器退出代码的整数。仅在使用 --all 时有用。

status

createdrestartingrunningremovingpausedexiteddead 之一

ancestor

筛选共享给定镜像作为祖先的容器。格式为 <image-name>[:<tag>]<image id><image@digest>

beforesince

筛选在给定容器 ID 或名称之前或之后创建的容器

volume

筛选已挂载指定卷或绑定挂载的运行中容器

network

筛选连接到指定网络的运行中容器

publishexpose

筛选发布或暴露了指定端口的容器。格式为 <port>[/<proto>]<startport-endport>/[<proto>]

health

根据健康检查状态筛选容器。值为 startinghealthyunhealthynone

isolation

仅限 Windows 守护进程。值为 defaultprocesshyperv

is-task

筛选作为服务“任务”的容器。布尔选项(truefalse

label 过滤器

label 过滤器根据标签的存在与否或标签及其值进行匹配。

以下过滤器匹配具有 color 标签的容器,无论其值是什么:

以下过滤器匹配 color 标签值为 blue 的容器:

name 过滤器

name 过滤器匹配容器名称的全部或部分。

以下过滤器匹配名称包含 nostalgic_stallman 字符串的所有容器:

你也可以过滤名称中的子字符串,如下所示:

exited 过滤器

exited 过滤器按退出状态码匹配容器。例如,要筛选成功退出的容器:

你可以使用过滤器定位退出状态码为 137 的容器,这意味着它们被 SIGKILL(9) 杀死。

导致 137 状态的事件包括:

  • 容器的 init 进程被手动杀死

  • docker kill 杀死了容器

  • Docker 守护进程重启,杀死了所有运行中的容器

status 过滤器

status 过滤器按容器状态进行匹配。容器状态的可能值如下:

状态
描述

created

从未启动过的容器。

running

正在运行的容器,由 docker startdocker run 启动。

paused

已暂停的容器。参见 docker pause

restarting

由于为该容器指定的重启策略而正在启动的容器。

exited

不再运行的容器。例如,容器内的进程已完成,或使用 docker stop 命令停止了容器。

removing

正在被移除过程中的容器。参见 docker rm

dead

“僵死”容器;例如,由于外部进程占用资源而仅被部分移除的容器。僵死容器无法被(重新)启动,只能被移除。

例如,筛选正在运行的容器:

筛选已暂停的容器:

ancestor 过滤器

ancestor 过滤器基于容器的镜像或其后代进行匹配。该过滤器支持以下镜像表示形式:

  • image

  • image:tag

  • image:tag@digest

  • short-id

  • full-id

如果你不指定标签,则使用 latest 标签。例如,筛选使用最新 ubuntu 镜像的容器:

匹配基于 ubuntu-c1 镜像的容器(在此例中,它是 ubuntu 的子镜像):

匹配基于 ubuntu 版本 24.04 镜像的容器:

以下命令匹配基于层 d0e008c6cf02 或在其层堆栈中包含此层的镜像的容器:

beforesince 过滤器

before 过滤器仅显示在给定容器 ID 或名称之前创建的容器。例如,假设有以下已创建的容器:

使用 before 过滤会得到:

since 过滤器仅显示在给定容器 ID 或名称之后创建的容器。例如,使用与 before 过滤器相同的容器:

volume 过滤器

volume 过滤器仅显示挂载了特定卷或在特定路径上挂载了卷的容器:

network 过滤器

network 过滤器仅显示连接到给定名称或 ID 的网络的容器。

以下过滤器匹配所有连接到名称包含 net1 的网络的容器:

network 过滤器同时匹配网络的名称和 ID。以下示例显示了使用网络 ID 作为过滤器附加到 net1 网络的所有容器:

publishexpose 过滤器

publishexpose 过滤器仅显示发布了或暴露了给定端口号、端口范围和/或协议的容器。未指定时,默认协议为 tcp

以下过滤器匹配所有发布了 80 端口的容器:

以下过滤器匹配所有暴露了 8000-8080 范围内 TCP 端口的容器:

以下过滤器匹配所有暴露了 UDP 80 端口的容器:

格式化输出 (--format)

--format 选项使用 Go 模板来美化打印容器输出。

Go 模板的有效占位符如下:

占位符
描述

.ID

容器 ID

.Image

镜像 ID

.Command

带引号的命令

.CreatedAt

容器创建时间

.RunningFor

容器启动后经过的时间

.Ports

暴露的端口

.State

容器状态(例如;"created""running""exited"

.Status

带有关于持续时间和健康状态详情的容器状态

.Size

容器磁盘大小

.Names

容器名称

.Labels

分配给容器的所有标签

.Label

此容器特定标签的值。例如 '{{.Label "com.docker.swarm.cpu"}}'

.Mounts

此容器中挂载的卷的名称

.Networks

附加到此容器的网络的名称

使用 --format 选项时,ps 命令将输出模板声明的数据,或者在使用 table 指令时,包含列标题。

以下示例使用不带标题的模板,为所有正在运行的容器输出由冒号 (:) 分隔的 ID 和 Command 条目:

要在表格格式中列出所有带有标签的正在运行的容器,可以使用:

要以 JSON 格式列出所有正在运行的容器,请使用 json 指令:

最后更新于

这有帮助吗?