1、docker compose ps简介
docker compose ps
可以显示容器列表,列出compose项目的容器,以及当前状态和公开的端口。默认情况下,运行和停止的容器都会显示:
docker compose ps NAME COMMAND SERVICE STATUS PORTS example-bar-1 "/docker-entrypoint.…" bar exited (0) example-foo-1 "/docker-entrypoint.…" foo running 0.0.0.0:8080->80/tcp
参考文档:https://docs.docker.com/engine/reference/commandline/compose_ps/
2、docker compose ps语法
docker compose ps [OPTIONS] [SERVICE...]
3、docker compose ps命令
1)格式化输出(--format)
默认情况下,docker compose ps
命令使用表格(“pretty”)格式来显示容器。--format
标志允许输出指定其他表示形式。目前,支持的选项有pretty(默认)和json,它以json数组的形式输出容器的信息:
docker compose ps --format json [{"ID":"1553b0236cf4d2715845f053a4ee97042c4f9a2ef655731ee34f1f7940eaa41a","Name":"example-bar-1","Command":"/docker-entrypoint.sh nginx -g 'daemon off;'","Project":"example","Service":"bar","State":"exited","Health":"","ExitCode":0,"Publishers":null},{"ID":"f02a4efaabb67416e1ff127d51c4b5578634a0ad5743bd65225ff7d1909a3fa0","Name":"example-foo-1","Command":"/docker-entrypoint.sh nginx -g 'daemon off;'","Project":"example","Service":"foo","State":"running","Health":"","ExitCode":0,"Publishers":[{"URL":"0.0.0.0","TargetPort":80,"PublishedPort":8080,"Protocol":"tcp"}]}]
JSON输出允许在其他工具中使用这些信息进行进一步处理,例如,使用jq实用程序美化打印JSON:
docker compose ps --format json | jq . [ { "ID": "1553b0236cf4d2715845f053a4ee97042c4f9a2ef655731ee34f1f7940eaa41a", "Name": "example-bar-1", "Command": "/docker-entrypoint.sh nginx -g 'daemon off;'", "Project": "example", "Service": "bar", "State": "exited", "Health": "", "ExitCode": 0, "Publishers": null }, { "ID": "f02a4efaabb67416e1ff127d51c4b5578634a0ad5743bd65225ff7d1909a3fa0", "Name": "example-foo-1", "Command": "/docker-entrypoint.sh nginx -g 'daemon off;'", "Project": "example", "Service": "foo", "State": "running", "Health": "", "ExitCode": 0, "Publishers": [ { "URL": "0.0.0.0", "TargetPort": 80, "PublishedPort": 8080, "Protocol": "tcp" } ] } ]
2)按status过滤容器(--status)
使用--status
标志可以根据状态过滤容器列表。例如,只显示正在运行的容器或已经退出的容器:
docker compose ps --status=running NAME COMMAND SERVICE STATUS PORTS example-foo-1 "/docker-entrypoint.…" foo running 0.0.0.0:8080->80/tcp docker compose ps --status=exited NAME COMMAND SERVICE STATUS PORTS example-bar-1 "/docker-entrypoint.…" bar exited (0)
3)按status过滤容器(--filter)
--status
标记是--filter status=<status>
。下面的例子和上一节的例子是等价的,这次使用的是--filter
标记:
docker compose ps --filter status=running NAME COMMAND SERVICE STATUS PORTS example-foo-1 "/docker-entrypoint.…" foo running 0.0.0.0:8080->80/tcp docker compose ps --filter status=running NAME COMMAND SERVICE STATUS PORTS example-bar-1 "/docker-entrypoint.…" bar exited (0)
4、选项说明
名称, 简称 | 默认 | 描述 |
--all , -a | 显示所有已停止的容器 (包括run命令创建的容器) | |
--filter | 通过属性过滤服务(支持的过滤器:status)。 | |
--format | table | 格式化输出。 Values: [table | json] |
--quiet , -q | 只显示id | |
--services | 显示服务 | |
--status | 按状态过滤服务。 Values: [paused | restarting | removing | running | dead | created | exited] |
5、子命令
命令 | 描述 |
docker compose build | 构建或重建服务 |
docker compose convert | 将compose文件转换为平台的规范格式 |
docker compose cp | 在服务容器和本地文件系统之间复制文件/文件夹 |
docker compose create | 为服务创建容器 |
docker compose down | 停止并移除容器,网络 |
docker compose events | 从容器中接收实时事件。 |
docker compose exec | 在正在运行的容器中执行命令。 |
docker compose images | 列出容器使用的镜像 |
docker compose kill | 强制停止服务容器。 |
docker compose logs | 查看容器的输出 |
docker compose ls | 运行compose项目的列表 |
docker compose pause | 暂停服务 |
docker compose port | 输出端口绑定的公共端口。 |
docker compose ps | 列出容器列表 |
docker compose pull | 拉取服务镜像 |
docker compose push | 推送服务镜像 |
docker compose restart | 重启服务容器 |
docker compose rm | 移除已停止的服务容器 |
docker compose run | 在服务上运行一次性命令。 |
docker compose start | 开始服务 |
docker compose stop | 停止服务 |
docker compose top | 显示正在运行的进程 |
docker compose unpause | 取消暂停的服务 |
docker compose up | 创建并启动容器 |
docker compose version | 显示Docker Compose的版本信息 |