Docker 远程 API 过滤器已退出
Docker Remote API Filter Exited
我在 Docker 远程 API 文档中看到过滤器可用于过滤状态,但我不确定如何形成请求:
https://docs.docker.com/reference/api/docker_remote_api_v1.16/#list-containers
GET /containers/json?filters=status[exited] ?????
如何设置格式以仅显示退出的容器?
根据我对文档的阅读,应该是:
GET /containers/json?filters={"status":["exited"]}
不过,其中一些可能需要 URL 编码。
jwodder is 但由于我不熟悉 Go 数据类型,所以我想逐步完成此过程。
Docker API documentation指的是使用一个map[string][]string
作为一个filter,是一个Go map(hashtable)
map[string]
定义一个映射,其键类型为 string
[]string
是映射中值的类型定义。一片
[]
是一个不固定长度的数组。然后切片由
string
个值。
因此 API 需要包含字符串的数组的散列映射。 Go Playground 演示了如何编组 Go 过滤器数据:
mapS := map[string][]string{ "status":[]string{"exited"} }
进入JSON:
{ "status": [ "exited" ] }
因此,将 JSON 添加到 Docker API 请求中,您将获得:
GET /containers/json?all=1&filters={%22status%22:[%22exited%22]}
all=1
用于报告已退出的容器(如命令行中的 -a
)。
对于非 Go 人员来说,如果他们只是记录 API 的 JSON 结构可能会更容易:/
将 docker 与 curl 一起使用的最优雅的方式,不用担心我在 this answer 中发现的编码。基本上,它告诉 curl 使用数据作为查询参数并对它进行编码。要退出容器,查询可能如下所示:
curl -G -XGET "http://localhost:5555/containers/json" \
-d 'all=1' \
--data-urlencode 'filters={"status":["exited"]}' | python -m json.tool
我在 Docker 远程 API 文档中看到过滤器可用于过滤状态,但我不确定如何形成请求:
https://docs.docker.com/reference/api/docker_remote_api_v1.16/#list-containers
GET /containers/json?filters=status[exited] ?????
如何设置格式以仅显示退出的容器?
根据我对文档的阅读,应该是:
GET /containers/json?filters={"status":["exited"]}
不过,其中一些可能需要 URL 编码。
jwodder is
Docker API documentation指的是使用一个map[string][]string
作为一个filter,是一个Go map(hashtable)
map[string]
定义一个映射,其键类型为string
[]string
是映射中值的类型定义。一片[]
是一个不固定长度的数组。然后切片由string
个值。
因此 API 需要包含字符串的数组的散列映射。 Go Playground 演示了如何编组 Go 过滤器数据:
mapS := map[string][]string{ "status":[]string{"exited"} }
进入JSON:
{ "status": [ "exited" ] }
因此,将 JSON 添加到 Docker API 请求中,您将获得:
GET /containers/json?all=1&filters={%22status%22:[%22exited%22]}
all=1
用于报告已退出的容器(如命令行中的 -a
)。
对于非 Go 人员来说,如果他们只是记录 API 的 JSON 结构可能会更容易:/
将 docker 与 curl 一起使用的最优雅的方式,不用担心我在 this answer 中发现的编码。基本上,它告诉 curl 使用数据作为查询参数并对它进行编码。要退出容器,查询可能如下所示:
curl -G -XGET "http://localhost:5555/containers/json" \
-d 'all=1' \
--data-urlencode 'filters={"status":["exited"]}' | python -m json.tool