没有从带有过滤器的 docker api list 任务中获取结果

Posted

技术标签:

【中文标题】没有从带有过滤器的 docker api list 任务中获取结果【英文标题】:Not getting results from docker api list tasks with filters 【发布时间】:2021-04-12 17:02:30 【问题描述】:

我正在尝试使用 docker api 查找任务列表。我正在运行如下命令:

curl -v --connect-timeout 5 --max-time 10 --retry 5 'https://$DOCKER_URL/tasks?filters=%22service%22:%22test1%22' | jq ..

当我运行它时,我会卷曲:

 (3) [globbing] nested brace in column 51

我也尝试过以下其他方式:

curl -s -q --connect-timeout 5 --max-time 10 --retry 5 --data-urlencode 'filters="service":["test1"]' https://$DOCKER_URL/tasks
"message":"page not found"

【问题讨论】:

【参考方案1】:

您需要在 curl 中添加“-g”作为参数(另请参阅Passing a URL with brackets to curl),并且无需编码即可使用,例如:

curl -g -v --connect-timeout 5 --max-time 10 --retry 5 \
  'http://127.0.0.1:2375/tasks?filters="service":["test1"]' | jq .

【讨论】:

所以我尝试了上述方法我仍然没有得到任何结果。如果我的查询有误,您能告诉我吗? 如果你得到一个空列表(或完全不同的消息),那么这个问题得到了回答,请接受答案并用新问题打开一个新问题(例如:“getting a new list我应该使用什么查询”)。 那么,curl 命令正确吗?还是我应该为此提出一个新问题? 该命令如果执行是正确的,对服务器进行查询并得到回复(没有语法错误)。对我来说,它说“未找到服务 test1”,这是正确的,因为我没有这样的服务,但表明服务器执行了我的要求 - 过滤任务。如果我使用我拥有的东西(例如 "desired-state":["running"] ),我会得到一个任务列表。 您好@vignesh 的答案似乎已经解决了您的问题,请通过单击复选标记考虑accepting it。这是 *** 上的习惯,向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。

以上是关于没有从带有过滤器的 docker api list 任务中获取结果的主要内容,如果未能解决你的问题,请参考以下文章

带有 docker 的 API 网关都有哪些选项?

Gmail API:在使用查询执行 messages.list 时,有没有办法获取 RFC822 消息 ID?

带有连接 table.include.list 的 Debezium docker 不起作用

Twitter4j v2.2.6 带有地理定位的流式 API

利用docker制作一个带有redis软件的镜像,供其他人使用

我可以从 api 访问 Twitter 通知过滤器吗?