Docker CLI docker compose ps常用命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker compose ps常用命令。

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的版本信息

推荐阅读
cjavapy编程之路首页