Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker远程API筛选器已退出_Docker - Fatal编程技术网

Docker远程API筛选器已退出

Docker远程API筛选器已退出,docker,Docker,我在Docker Remote API文档中看到,filter可用于过滤状态,但我不确定如何形成请求: 如何将其格式化为仅显示已退出的容器?根据我对文档的阅读,应该是: GET /containers/json?filters={"status":["exited"]} 不过,其中一些可能需要URL编码。是,但我想一步一步地完成,因为我不熟悉go数据类型 是指对过滤器使用map[string][]string,这是一个Go映射(哈希表) map[string]使用string []字符串是

我在Docker Remote API文档中看到,filter可用于过滤状态,但我不确定如何形成请求:


如何将其格式化为仅显示已退出的容器?

根据我对文档的阅读,应该是:

GET /containers/json?filters={"status":["exited"]}
不过,其中一些可能需要URL编码。

是,但我想一步一步地完成,因为我不熟悉go数据类型

是指对过滤器使用
map[string][]string
,这是一个Go映射(哈希表)

  • map[string]
    使用
    string

  • []字符串
    是映射中值的类型定义。一片
    []
    是一个没有固定长度的数组。然后切片是由
    字符串

因此,API需要包含字符串的数组的哈希映射。这演示如何编组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一起使用的最优雅的方式,而不必费心于我在中找到的编码。基本上,它告诉curl使用数据作为查询参数并对其进行编码。要退出容器,查询可能如下所示:

curl -G -XGET "http://localhost:5555/containers/json" \
    -d 'all=1' \
    --data-urlencode 'filters={"status":["exited"]}' | python -m json.tool

正确的URL编码方式是什么?{%27status%27%3A%5B%27退出的%27%5D}不起作用。curl-X GET返回[],而curl-X GET返回正确我已尝试在浏览器中转义引号并使用curl,但均未给出任何结果。如何获得此请求的有效响应?您需要添加
all=1
,以便
退出
进行报告。答案更新完美!这就是我错过的。这对我有用:{%22status%22:%5B%22退出%22%5D}非常感谢您的详细解释。
curl -G -XGET "http://localhost:5555/containers/json" \
    -d 'all=1' \
    --data-urlencode 'filters={"status":["exited"]}' | python -m json.tool