Docker ps
是用于查看Docker
服务器中容器状态(运行/暂停/停止),及批量获取容器基本信息最常用的指令。ps
命令具有很多可用的参数,下面将对其参数含义和用法做具体的说明&总结
docker ps
:会列出出正在运行的容器信息。
CONTAINER ID:每个容器的唯一标识符号,自动生成。类似于数据库中的主键。
IMAGE :创建容器使用的镜像名称。
COMMAND:运行容器时的命令。
CREATED:容器创建的时间。
STATUS:容器的运行状态,Up 17 hours 指容器已运行17小时。
created
(已创建)restarting
(重启中)running
(运行中)removing
(迁移中)paused
(暂停)exited
(停止)dead
(死亡)
PORTS:容器开放的端口信息。
NAME:容器的别名,在运行容器执行docker run
时可使用--name
进行指定。
docker ps -a
:会列出当前服务器中所有的容器,无论是否在运行。
此时可以看到,列表STATUS
中多了其他状态
Exited(0) 6 months ago 代表:容器已退出(停止运行)退出时状态为 0
退出时间 6月前
同时我们看到PORTS
中
0.0.0.0:32768->80/tcp
这代表两层含义 1:容器中开放了80
端口,使用TCP协议,对应宿主机使用32768
端口进行映射。此时可以使用"宿主机IP:32768
" 对容器80
端口提供的服务进行访问
docker ps -s
:会列出容器的文件大小(容器增加的大小/容器的虚拟大小)
SIZE:35.2MB(virtual 108MB)容器在镜像ubuntu的大小的基础上增加了35.2MB,例如在容器中运行apt-get update 指令,会在写入层新增文件。
容器的虚拟大小=容器镜像的大小+容器增加大小
docker ps -q
:仅列出CONTAINER ID 字段
此命令常用于批量操作的参数
如批量停止所有容器 docker stop docker ps -a -q
docker ps -l
: 显示最后一个运行的容器(无论该容器目前处于什么状态)
docker ps -n
数量x:显示最后 x
个运行容器,当x
为1
时和 -l
含义相同。(无论该容器目前处于什么状态)
常用于快速查找最近运行的容器
docker ps --no-trunc
:不对输出进行截断操作,此时可以看到完整的COMMAND,CONTAINER ID
高级指令
docker -f
:使用过滤器来过滤输出
目前支持过滤器:
id (容器的id)
label
name(容器名称)
exited (整数-容器退出状态码,只有在使用-all才有用)
status 容器状态(created,restarting,running,paused,exited,dead)
ancestor 过滤从指定镜像创建的容器
before (容器的名称或id),过滤在给定id或名称之后创建的容器
isolation (default process hyperv) (windows daemon only)
volume (数据卷名称或挂载点),–过滤挂载有指定数据卷的容器
network(网络id或名称),过滤连接到指定网络的容器
docker ps -f status=exited
docker ps -f ancestor=597ce1600cf4 -f status=exited -a
注意:ancestor
过滤镜像,如果制定的是某个父镜像,则过滤出的结果包含以此镜像构建的子镜像创建的容器,不仅仅是以该镜像直接创建的容器
docker ps --formart {{.Names}}
:以go的形式格式化输出列表
go模板
.ID 容器的ID
.Image 镜像的ID
.Command 容器启动的命令
.CreatedAt 创建容器的时间点
.RunngingFor 从容器创建到现在过去的时间
.Ports 暴露的端口
.Status 容器的状态
.Size 容器硬盘的大小
.Names 容器的名称
.Label 指定label的值
.Mounts 挂载到这个容器的数据卷名称
综合使用实例