小编典典

Docker远程API过滤器已退出

docker

我在Docker远程API文档中看到可以使用filter来过滤状态,但是我不确定如何形成请求:

https://docs.docker.com/reference/api/docker_remote_api_v1.16/#list-
containers

GET /containers/json?filters=status[exited] ?????

应该如何设置其格式以仅显示退出的容器?


阅读 297

收藏
2020-06-17

共1个答案

小编典典

jwodder在过滤器上是正确的,但是由于我不熟悉Go数据类型,所以我想逐步进行此操作。

所述多克尔API文档是指使用map[string][]string用于过滤器,这是一种围棋地图(哈希表)

  • 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结构,则可能会更容易:

2020-06-17