Docker ps命令

Docker ps命令概述

docker ps 命令可以用来列出 Docker容器 相关信息。

Docker ps命令语法

haicoder(www.haicoder.net)# docker ps [OPTIONS]

Docker ps命令参数

选项 说明
无参 默认显示正在运行的容器。
-a 显示所有的容器,包括未运行的。
-f 根据条件过滤显示的内容。
–format 指定返回值的模板文件。
-l 显示最近创建的容器。
-n 列出最近创建的n个容器。
–no-trunc 不截断输出。
-q 静默模式,只显示容器编号。
-s 显示总的文件大小。

案例

显示正在运行的容器

使用 docker ps 命令,显示当前正在运行的 docker容器。

haicoder(www.haicoder.net)# docker ps

运行后,终端显示信息如下图所示:

01 docker ps.png

使用 docker run 命令,启动 docker 容器。

haicoder(www.haicoder.net)# docker run -it -d ubuntu #输出 2b7be687c268e9651b70ad2d84ac9487482dea0587c9e50471c8fcdeea848a77

再次使用 docker ps 命令,显示当前正在运行的 docker 容器, 终端显示信息如下图所示:

02 docker ps.png

此时,正在运行的容器列表有刚才运行的容器信息。

显示最近创建的 N 个容器

使用 docker run 命令,启动五个 docker容器。

haicoder(www.haicoder.net)# docker run -it -d ubuntu bfffa738d6d31404af615a18da1883c66e830ac8a4c11a0e93c05123649f1ee0 haicoder(www.haicoder.net)# docker run -it -d ubuntu 075c757f6a04278993a925cd2a1717557a68cd6631008c1445eaa510abf70ad0 haicoder(www.haicoder.net)# docker run -it -d ubuntu 7ab8cab8d002068f97d94a1e315b89844113fd5d47bea94001d1c7c18e3f06a1 haicoder(www.haicoder.net)# docker run -it -d ubuntu 234972c5a5630b1aa53f955ffaa28509cc20cfe5c6f387d1243a0d418a4fd28d haicoder(www.haicoder.net)# docker run -it -d ubuntu 275dca19d3afd755ad72ccd5666060b828e90a2166954b8623d8887087d992fc

使用 docker ps 命令,显示当前正在运行的 docker 容器, 终端显示信息如下图所示:

03 docker ps.png

使用 docker ps -n 3 命令,显示当前正在运行的 3 个 docker 容器, 终端显示信息如下图所示:

04 docker ps n 3.png

此时,我们看到只显示了最近运行的 3 个 docker 容器,而并非所有的容器。即,在以上案例中,我们使用 docker ps -n 命令,可以显示最近创建的 N 个 docker容器。

最后,我们使用 docker killdocker rm 命令,删除所有的容器。

haicoder(www.haicoder.net)# docker kill `docker ps -qa` && docker rm `docker ps -qa` 275dca19d3af 234972c5a563 7ab8cab8d002 075c757f6a04 bfffa738d6d3 2b7be687c268 275dca19d3af 234972c5a563 7ab8cab8d002 075c757f6a04 bfffa738d6d3 2b7be687c268

显示所有容器

使用 docker run 命令,启动三个 docker容器。

haicoder(www.haicoder.net)# docker run -it -d ubuntu 1e4956dd7ef8dca2844a94af218a8f3272d2fbc72df9839e6bb0a5dcca598c65 haicoder(www.haicoder.net)# docker run -it -d ubuntu bc427c7eb2ad3247dd77198516d2eeda93697861775c6faef48511b534499a5c haicoder(www.haicoder.net)# docker run -it -d ubuntu 790dd6cfd43e8f552687b5fa4465d81fc49d1ca1af37354c7562618a63364ce0

使用 docker ps 命令,显示当前正在运行的 docker容器, 终端显示信息如下图所示:

05 docker ps a.png

使用 docker stop 命令,停止其中两个 docker容器。

haicoder(www.haicoder.net)# docker stop 790dd6cfd43e bc427c7eb2ad 790dd6cfd43e bc427c7eb2ad

再次使用 docker ps 命令,显示当前正在运行的 docker容器, 终端显示信息如下图所示:

06 docker ps a.png

此时,只显示了正在运行的一个 docker 容器,刚被我们停止的两个 docker 容器,并未显示。

我们使用 docker ps -a 命令,显示所有的 docker 容器,包括运行还是未运行的。

07 docker ps a.png

此时,显示了我们创建的三个容器,包括一个运行的和两个未运行的。即,在以上案例中,我们使用 docker ps -a 命令,可以显示所有的 docker容器,包括运行的和未运行的。

最后,我们使用 docker kill 和 docker rm 命令,删除所有的容器。

haicoder(www.haicoder.net)# docker kill `docker ps -qa` ; docker rm `docker ps -qa`

显示所有容器 ID

使用 docker run 命令,启动三个 docker 容器。

haicoder(www.haicoder.net)# docker run -it -d ubuntu c8c6f11276b77b57a081b50b28a20b84c28de0e3c0baf4d261c6b9eff07d60d7 haicoder(www.haicoder.net)# docker run -it -d ubuntu 463bbe5457134a51078297f5cb7ccbc1d10c7d1d870169cf0096712d68bed2e7 haicoder(www.haicoder.net)# docker run -it -d ubuntu 4af5cf8ed40dec5d23b7cbe85274553030a25939f327614e2cb826e644d58c45

使用 docker ps 命令,显示当前正在运行的 docker 容器, 终端显示信息如下图所示:

08 docker ps qa.png

我们使用 docker ps -aq 命令,显示所有的 docker 容器的 ID 信息,包括运行还是未运行的,终端显示如下:

09 docker ps aq.png

此时,并未显示容器的所有信息,只显示了容器的 ID 信息,此处的 ID 可以配合 docker kill 和 docker rm 等命令,对容器实现批量的管理。

即,在以上案例中,我们使用 docker ps -aq 命令,可以显示所有的 docker 容器的 ID,包括运行的和未运行的。

最后,我们使用 docker kill 和 docker rm 命令,删除所有的容器。

haicoder(www.haicoder.net)# docker kill `docker ps -qa` ; docker rm `docker ps -qa`

显示容器 ID 的完整形式

使用 docker run 命令,启动 docker容器。

haicoder(www.haicoder.net)# docker run -it -d ubuntu dfeed15d07dbc8af110c407369b592b366a8501dca900e600467629ab1eeb798

使用 docker ps --no-trunc 命令,显示 docker容器 ID 的完整形式,终端显示信息如下图所示:

10 docker ps notrunc.png

此时,返回结果中的 CONTAINER ID 列显示的是容器的完整 ID。即,在以上案例中,我们使用 docker ps --no-trunc 命令,显示 docker容器 ID 的完整形式,而不是缩略形式。

最后,我们使用 docker kill 和 docker rm 命令,删除所有的容器。

haicoder(www.haicoder.net)# docker kill `docker ps -qa` ; docker rm `docker ps -qa`

显示容器大小

使用 docker run 命令,启动 docker容器。

haicoder(www.haicoder.net)# docker run -it -d ubuntu 379e89ce154a5e1a4821eeac352d36506f971c64f8b416ba571a4a02a7e3b45a

使用 docker ps -s 命令,可以显示 docker 容器的大小信息,终端显示信息如下图所示:

11 docker ps s.png

此时,返回结果中多了一列 SIZE,SIZE 有两个值,一个是容器真实增加的大小,一个是整个容器的虚拟大小。容器虚拟大小 = 容器真实增加大小 + 容器镜像大小。

即,在以上案例中,我们使用 docker ps -s 命令,可以显示 docker容器大小信息。

最后,我们使用 docker kill 和 docker rm 命令,删除所有的容器。

haicoder(www.haicoder.net)# docker kill `docker ps -qa` ; docker rm `docker ps -qa`

docker ps命令高级用法

如果容器数量过多,或者想排除干扰容器,可以通过 docker ps --filter 或 docker ps -f ,过滤需要显示的容器。

docker ps过滤规则

选项后跟的都是键值对 key=value (可不带引号),如果有多个过滤条件,就多次使用 filter 选项。例如:

haicoder(www.haicoder.net)# docker ps --filter id=a1b2c3 --filter name=haicoder

相同条件之间的关系是或,不同条件之间的关系是与关系。例如:

haicoder(www.haicoder.net)# docker ps --filter name=haicoder --filter name=hicoder --filter status=running

以上过滤条件会找出 name 包含 haicoder 或 hicoder 并且 status 为 running 的容器。

id 和 name,支持正则表达式,使用起来非常灵活。例如:

haicoder(www.haicoder.net)# docker ps --filter name=^/haicoder$

docker ps格式化显示

如果想自定义显示容器字段,可以用格式化选项 --format ,具体参考 docker 格式化。

结果解析

字段名 说明
CONTAINER ID 容器 ID 的意思,可以通过这 id 找到唯一的对应容器。
IMAGE 该容器所使用的镜像。
COMMAND 启动容器时运行的命令。
CREATED 容器的创建时间,显示格式为 ”**时间之前创建“。
STATUS 容器现在的状态。
PORTS 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES 镜像自动为容器创建的名字,也唯一代表一个容器。

容器状态

状态 说明
created 已创建。
restarting 重启中。
running 运行中。
removing 迁移中。
paused 暂停。
exited 退出。
dead 僵死。

Docker ps命令总结

docker ps 命令可以用来列出容器相关信息。

Docker ps命令语法:

docker ps [OPTIONS]