名称

podman-ps - 打印容器信息

简介

podman ps [选项]

podman container ps [选项]

podman container list [选项]

podman container ls [选项]

描述

podman ps 列出系统上正在运行的容器。使用 --all 标志查看所有容器信息。默认情况下,它列出:

  • 容器 ID

  • 容器正在使用的镜像名称

  • 容器正在执行的 COMMAND

  • 容器创建时间

  • 容器状态

  • 容器正在使用的端口映射

  • 容器的替代名称

选项

--all, -a

显示所有容器,默认只显示正在运行的容器。

注意:Podman 与 Buildah 和 CRI-O 等其他工具共享容器存储。在某些情况下,这些 外部 容器可能也存在于相同的存储中。使用 --external 选项查看这些外部容器。外部容器显示“存储”状态。

--external

显示不由 Podman 控制但存储在容器存储中的外部容器。这些外部容器通常通过 Buildah 或 CRI-O 等其他容器技术创建,并且可能依赖于 Podman 也在使用的相同容器镜像。外部容器在 ps 输出的 COMMAND 和 STATUS 列中用“buildah”或“storage”表示。

--filter, -f

筛选输出中显示的容器。可以通过多次使用 --filter 标志来给出多个过滤器。具有相同键的过滤器是包含性的,唯一的例外是 label,它是排他性的。具有不同键的过滤器始终是排他性的。

下面列出了有效的过滤器

过滤器

描述

id

[ID] 容器的 ID(默认情况下 CID 前缀匹配;接受正则表达式)

name

[名称] 容器的名称(接受正则表达式)

label

[键] 或 [键=值] 分配给容器的标签

label!

[键] 或 [键=值] 未分配给容器的标签

exited

[整数] 容器的退出代码

status

[状态] 容器的状态:“created”、“initialized”、“exited”、“paused”、“running”、“unknown”

ancestor

[镜像名称] 用于创建容器的镜像或后代(接受正则表达式)

before

[ID] 或 [名称] 在此容器之前创建的容器

since

[ID] 或 [名称] 在此容器之后创建的容器

volume

[卷名称] 或 [挂载点目标] 挂载在容器中的卷

health

[状态] healthy 或 unhealthy

pod

[Pod] pod 的名称或完整或部分 ID

network

[网络] 网络的名称或完整 ID

until

[日期时间] 在给定持续时间或时间之前创建的容器。

command

[命令] 容器正在执行的命令,只取 argv[0]

--format=格式

将容器漂亮地打印为 JSON 或使用 Go 模板

Go 模板的有效占位符如下所列

占位符

描述

.AutoRemove

如果为 true,容器将在退出时被删除

.CIDFile

容器 ID 文件

.Command

使用的带引号的命令

.Created …

容器创建时间,Y-M-D H:M:S

.CreatedAt

容器创建时间(同上)

.CreatedHuman

创建时间,相对

.ExitCode

容器退出代码

.Exited

如果容器已退出,则为“true”

.ExitedAt

容器退出时间(纪元秒)

.ExposedPorts …

此容器上暴露端口的映射

.ID

容器 ID

.Image

镜像名称/ID

.ImageID

镜像 ID

.IsInfra

如果是基础设施容器,则为“true”

.Label 字符串

容器的指定标签

.Labels …

分配给容器的所有标签

.Mounts

挂载在容器中的卷

.Names

容器名称

.Networks

显示连接到容器的所有网络

.Pid

主机系统上的进程 ID

.Pod

容器关联的 Pod (SHA)

.PodName

容器的 PodName

.Ports

转发和暴露的端口

.Restarts

显示容器重启计数

.RunningFor

容器启动以来的时间

.Size

容器大小

.StartedAt

容器启动时间(纪元秒)

.State

容器状态的人性化描述

.Status

容器状态

--help, -h

打印用法说明

--last, -n

打印最后 n 个创建的容器(所有状态)

--latest, -l

显示最新创建的容器(所有状态)(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器)

--namespace, --ns

显示命名空间信息

--no-trunc

不截断输出(默认为 false)。

--noheading

从容器列表中省略表头。

--pod, -p

显示容器关联的 Pod

--quiet, -q

仅打印容器的数字 ID

--size, -s

显示总文件大小

--sort=created

按 command、created、id、image、names、runningfor、size 或 status 排序。注意:选择 size 按 rootFs 大小排序,而不像其他选项那样按字母顺序排序

--sync

强制将容器状态与 OCI 运行时同步。在某些情况下,运行时中的容器状态可能与 Podman 的状态不同步。这会根据 OCI 运行时报告的内容更新 Podman 的状态。强制同步要慢得多,但可以解决不一致的状态问题。

--watch, -w

每隔几秒刷新输出,显示当前容器。

示例

列出正在运行的容器。

$ podman ps
CONTAINER ID  IMAGE                            COMMAND    CREATED        STATUS        PORTS                                                   NAMES
4089df24d4f3  docker.io/library/centos:latest  /bin/bash  2 minutes ago  Up 2 minutes  0.0.0.0:80->8080/tcp, 0.0.0.0:2000-2006->2000-2006/tcp  manyports
92f58933c28c  docker.io/library/centos:latest  /bin/bash  3 minutes ago  Up 3 minutes  192.168.99.100:1000-1006->1000-1006/tcp                 zen_sanderson

列出所有容器。

$ podman ps -a
CONTAINER ID   IMAGE         COMMAND         CREATED       STATUS                    PORTS     NAMES
02f65160e14ca  redis:alpine  "redis-server"  19 hours ago  Exited (-1) 19 hours ago  6379/tcp  k8s_podsandbox1-redis_podsandbox1_redhat.test.crio_redhat-test-crio_0
69ed779d8ef9f  redis:alpine  "redis-server"  25 hours ago  Created                   6379/tcp  k8s_container1_podsandbox1_redhat.test.crio_redhat-test-crio_1

列出所有容器,包括它们的大小。注意:这可能需要更长时间,因为 Podman 需要从文件系统中计算大小。

$ podman ps -a -s
CONTAINER ID   IMAGE         COMMAND         CREATED       STATUS                    PORTS     NAMES                                                                  SIZE
02f65160e14ca  redis:alpine  "redis-server"  20 hours ago  Exited (-1) 20 hours ago  6379/tcp  k8s_podsandbox1-redis_podsandbox1_redhat.test.crio_redhat-test-crio_0  27.49 MB
69ed779d8ef9f  redis:alpine  "redis-server"  25 hours ago  Created                   6379/tcp  k8s_container1_podsandbox1_redhat.test.crio_redhat-test-crio_1         27.49 MB

使用自定义 Go 格式列出所有容器,无论是否运行。

$ podman ps -a --format "{{.ID}}  {{.Image}}  {{.Labels}}  {{.Mounts}}"
02f65160e14ca  redis:alpine  tier=backend  proc,tmpfs,devpts,shm,mqueue,sysfs,cgroup,/var/run/,/var/run/
69ed779d8ef9f  redis:alpine  batch=no,type=small  proc,tmpfs,devpts,shm,mqueue,sysfs,cgroup,/var/run/,/var/run/

列出所有容器并显示它们的命名空间。

$ podman ps --ns -a
CONTAINER ID    NAMES                                                                   PID     CGROUP       IPC          MNT          NET          PIDNS        USER         UTS
3557d882a82e3   k8s_container2_podsandbox1_redhat.test.crio_redhat-test-crio_1          29910   4026531835   4026532585   4026532593   4026532508   4026532595   4026531837   4026532594
09564cdae0bec   k8s_container1_podsandbox1_redhat.test.crio_redhat-test-crio_1          29851   4026531835   4026532585   4026532590   4026532508   4026532592   4026531837   4026532591
a31ebbee9cee7   k8s_podsandbox1-redis_podsandbox1_redhat.test.crio_redhat-test-crio_0   29717   4026531835   4026532585   4026532587   4026532508   4026532589   4026531837   4026532588

列出所有容器,包括大小,并按名称排序。

$ podman ps -a --size --sort names
CONTAINER ID   IMAGE         COMMAND         CREATED       STATUS                    PORTS     NAMES
69ed779d8ef9f  redis:alpine  "redis-server"  25 hours ago  Created                   6379/tcp  k8s_container1_podsandbox1_redhat.test.crio_redhat-test-crio_1
02f65160e14ca  redis:alpine  "redis-server"  19 hours ago  Exited (-1) 19 hours ago  6379/tcp  k8s_podsandbox1-redis_podsandbox1_redhat.test.crio_redhat-test-crio_0

列出除 Podman 之外的工具创建的所有外部容器。

$ podman ps --external -a
CONTAINER ID  IMAGE                             COMMAND  CREATED      STATUS  PORTS  NAMES
69ed779d8ef9f  redis:alpine  "redis-server"  25 hours ago  Created                   6379/tcp  k8s_container1_podsandbox1_redhat.test.crio_redhat-test-crio_1
38a8a78596f9  docker.io/library/busybox:latest  buildah  2 hours ago  storage        busybox-working-container
fd7b786b5c32  docker.io/library/alpine:latest   buildah  2 hours ago  storage        alpine-working-container
f78620804e00  scratch                           buildah  2 hours ago  storage        working-container

列出容器及其关联的 Pod。

$ podman ps --pod
CONTAINER ID  IMAGE                            COMMAND    CREATED        STATUS        PORTS     NAMES               POD ID        PODNAME
4089df24d4f3  docker.io/library/nginx:latest  nginx      2 minutes ago  Up 2 minutes  80/tcp    webserver           1234567890ab  web-pod
92f58933c28c  docker.io/library/redis:latest  redis      3 minutes ago  Up 3 minutes  6379/tcp  cache               1234567890ab  web-pod
a1b2c3d4e5f6  docker.io/library/centos:latest /bin/bash  1 minute ago   Up 1 minute             standalone-container

列出所有带有 Pod 信息的容器,包括那些不在 Pod 中的容器。

$ podman ps -a --pod
CONTAINER ID  IMAGE                            COMMAND    CREATED        STATUS                    PORTS     NAMES                POD ID        PODNAME
4089df24d4f3  docker.io/library/nginx:latest  nginx      2 minutes ago  Up 2 minutes              80/tcp    webserver            1234567890ab  web-pod
92f58933c28c  docker.io/library/redis:latest  redis      3 minutes ago  Up 3 minutes              6379/tcp  cache                1234567890ab  web-pod
69ed779d8ef9f redis:alpine                     redis      25 hours ago   Exited (0) 25 hours ago   6379/tcp  old-cache            5678901234cd  old-pod
a1b2c3d4e5f6  docker.io/library/centos:latest /bin/bash  1 minute ago   Up 1 minute                         standalone-container

按 Pod 名称筛选容器。

$ podman ps --filter pod=web-pod
CONTAINER ID  IMAGE                            COMMAND    CREATED        STATUS        PORTS     NAMES
4089df24d4f3  docker.io/library/nginx:latest  nginx      2 minutes ago  Up 2 minutes  80/tcp    webserver
92f58933c28c  docker.io/library/redis:latest  redis      3 minutes ago  Up 3 minutes  6379/tcp  cache

按状态筛选容器。

$ podman ps --filter status=running
CONTAINER ID  IMAGE                             COMMAND               CREATED         STATUS                  PORTS                           NAMES
ff660efda598  docker.io/library/nginx:latest    nginx -g daemon o...  3 minutes ago   Up 3 minutes            0.0.0.0:8080->80/tcp            webserver
5693e934f4c6  docker.io/library/redis:latest    redis-server          3 minutes ago   Up 3 minutes            6379/tcp                        cache
2b271d67dbb6                                                          3 minutes ago   Up 3 minutes            0.0.0.0:9090->80/tcp            463241862e7e-infra
23f99674da1c  docker.io/library/nginx:latest    nginx -g daemon o...  3 minutes ago   Up 3 minutes            0.0.0.0:9090->80/tcp            pod-nginx
62180adfbd42  docker.io/library/redis:latest    redis-server          3 minutes ago   Up 3 minutes            0.0.0.0:9090->80/tcp, 6379/tcp  pod-redis
5e3694604817  quay.io/centos/centos:latest      sleep 300             3 minutes ago   Up 3 minutes                                            centos-test
af3d8b3f5471  docker.io/library/busybox:latest  sleep 1000            3 minutes ago   Up 3 minutes                                            test-dev
b6ee47492b64  docker.io/library/nginx:latest    nginx -g daemon o...  3 minutes ago   Up 3 minutes (healthy)  80/tcp                          healthy-nginx
db75e6c397db  docker.io/library/busybox:latest  sleep 300             23 seconds ago  Up 23 seconds                                         test-volume-container
$ podman ps -a --filter status=exited
CONTAINER ID  IMAGE                            COMMAND     CREATED        STATUS                    PORTS                NAMES
94f211cc6e36  docker.io/library/alpine:latest  sleep 1     4 minutes ago  Exited (0) 4 minutes ago                       old-alpine
75a800cb848a  docker.io/library/mysql:latest   mysqld      3 minutes ago  Exited (1) 3 minutes ago  3306/tcp, 33060/tcp  db-container
2d9b3a94e31e  docker.io/library/nginx:latest   nginx       3 minutes ago  Exited (0) 3 minutes ago  80/tcp               nginx-cmd

按名称筛选容器。

$ podman ps --filter name=webserver
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS        PORTS                 NAMES
ff660efda598  docker.io/library/nginx:latest  nginx -g daemon o...  3 minutes ago  Up 3 minutes  0.0.0.0:8080->80/tcp  webserver

按标签筛选容器。

$ podman ps --filter label=app=frontend
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS        PORTS                 NAMES
ff660efda598  docker.io/library/nginx:latest  nginx -g daemon o...  3 minutes ago  Up 3 minutes  0.0.0.0:8080->80/tcp  webserver

按卷筛选容器。

$ podman ps --filter volume=mydata
CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS         PORTS       NAMES
db75e6c397db  docker.io/library/busybox:latest  sleep 300   42 seconds ago  Up 42 seconds              test-volume-container

按网络筛选容器。

$ podman ps --filter network=web-net
CONTAINER ID  IMAGE                         COMMAND     CREATED        STATUS        PORTS       NAMES
5e3694604817  quay.io/centos/centos:latest  sleep 300   3 minutes ago  Up 3 minutes              centos-test

使用自定义格式显示容器和 Pod 信息。

$ podman ps --format "{{.Names}} is in pod {{.PodName}} ({{.Pod}})"
webserver is in pod web-pod (1234567890ab)
cache is in pod web-pod (1234567890ab)
standalone-container is in pod  ()

另请参阅

podman(1), buildah(1), crio(8)

历史

2017年8月,由 Urvashi Mohnani umohnani@redhat.com 首次编写