【发布时间】:2017-02-19 23:04:51
【问题描述】:
根据https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-tasks,过滤器只能用于获取具有特定服务名称的正在运行的容器。出于某种原因,我得到了所有任务的完整列表,无论它们的名称或期望的状态如何。我找不到任何将 curl 与带有 Docker API 的 JSON 请求一起使用的适当示例。 我正在使用以下命令:
一)
curl -X GET -H "Content-Type: application/json" -d '{"filters":[{ "service":"demo", "desired-state":"running" }]}' https://HOSTNAME:2376/tasks --cert ~/.docker/cert.pem --key ~/.docker/key.pem --cacert ~/.docker/ca.pem
返回所有内容
B) 试图从Docker Remote API Filter Exited得到一些工作
curl https://HOSTNAME:2376/containers/json?all=1&filters={%22status%22:[%22exited%22]} --cert ~/.docker/cert.pem --key ~/.docker/key.pem --cacert ~/.docker/ca.pem
这个返回“curl: (60) Peer's Certificate issuer is not recognize.”,所以我猜 curl 请求格式不正确。
我在 Docker 论坛上询问过,他们提供了一些帮助。令我惊讶的是,互联网上没有任何适当的文档说明如何将 Docker API 与 curl 一起使用,或者它是如此明显而我什么都不懂?
【问题讨论】:
-
您收到证书错误。如果只是在 curl 命令行中添加
-k会导致 curl 接受未知证书怎么办?这能解决问题吗?该问题的答案可能有助于确定您需要在哪里寻找解决方案。 -
** 证书不是问题,如果我不使用过滤器,我可以卷曲所需的信息。 p.s.添加 -k 什么都不做
标签: json curl docker docker-api