如何在 docker 中使用 httpie 和 jq



如何在docker中使用httpid和jq?

我只想在 json 结果中获取 ip,例如"34.10.12.40">

docker run -it --rm blacktop/httpie -b ifconfig.co/json
{
    "country": "United States",
    "country_eu": false,
    "country_iso": "US",
    "hostname": "lqwtx.com",
    "ip": "34.10.12.40",
    "ip_decimal": 39585,
    "latitude": 35,
    "longitude": 105
}

但是我已经尝试了一些方法但没有奏效,例如打击。

docker run -it --rm blacktop/httpie ash -c "http -b ifconfig.co/json | jq '.ip’”
docker run -it --rm blacktop/httpie -b ifconfig.co/json jq '.ip'

这是您使用的映像的 docker文件,请参阅以下内容:

FROM alpine:latest
RUN apk add --no-cache jq httpie
ENTRYPOINT [ "http" ]
CMD [ "--help" ]

从上面,您可以看到它为此图像设置了一个带有http entrypoint,因此您在docker run中使用的所有命令都将充当http的参数,因此您当然会失败。

接下来是

使用它的方法:
docker run -it --rm --entrypoint=/bin/sh blacktop/httpie -c "http -b ifconfig.co/json | jq '.ip'"

示例输出:

"92.121.64.197"

上面的命令将使用 /bin/sh 覆盖默认entrypoint,然后您可以使用 jq 来解析管道中httpie的输出。

相关内容

  • 没有找到相关文章

最新更新