docker ps 默认会输出一整套列,如果只想查看自己关心的字段,可以通过 --format 参数自定义显示模板。
自定义显示模板
可以自己指定显示的模板,例如:
$ docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
显示结果:
CONTAINER ID NAMES PORTS
db3df460fe14 dev-peer0.org1.example.com-fabcar-1.0
b6f803814cce cli
10724ca7364f peer0.org1.example.com 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp
20d930e6e9f7 ca.example.com 0.0.0.0:7054->7054/tcp
可用的占位符
| 占位符 | 含义 |
|---|---|
.ID |
容器 ID |
.Image |
镜像 ID |
.Command |
执行的命令 |
.CreatedAt |
容器创建时间 |
.RunningFor |
运行时长 |
.Ports |
暴露的端口 |
.Status |
容器状态 |
.Names |
容器名称 |
.Label |
分配给容器的所有标签 |
.Mounts |
容器挂载的卷 |
.Networks |
容器所用的网络名称 |
默认输出的列
不使用 --format 时,docker ps 默认输出的各列含义如下:
CONTAINER ID:容器 ID。IMAGE:使用的镜像。COMMAND:启动容器时运行的命令。CREATED:容器的创建时间。STATUS:容器状态。状态有 7 种:created(已创建)、restarting(重启中)、running(运行中)、removing(移除中)、paused(暂停)、exited(停止)、dead(死亡)。PORTS:容器的端口信息和使用的连接类型(tcp/udp)。NAMES:自动分配的容器名称。
根据条件过滤显示的内容
除了自定义模板,还可以使用 --filter 参数根据条件过滤显示的内容,例如:
$ docker ps --filter id=a1b2c3 --filter name=bingohuang
根据标签过滤
$ docker run -d --name=test-nginx --label color=blue nginx
$ docker ps --filter "label=color"
$ docker ps --filter "label=color=blue"
根据名称过滤
$ docker ps --filter "name=test-nginx"
根据状态过滤
$ docker ps -a --filter 'exited=0'
$ docker ps --filter status=running
$ docker ps --filter status=paused
根据镜像过滤
# 镜像名称
$ docker ps --filter ancestor=nginx
# 镜像 ID
$ docker ps --filter ancestor=d0e008c6cf02
根据启动顺序过滤
$ docker ps -f before=9c3527ed70ce
$ docker ps -f since=6e63f6ff38b0