如何在docker内使用httpie和jq?
How to use httpie and jq within docker?
如何在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
}
但是我试了一些方法都不管用,比如blow
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'
这是您使用的镜像的dockerfile,参见this:
FROM alpine:latest
RUN apk add --no-cache jq httpie
ENTRYPOINT [ "http" ]
CMD [ "--help" ]
从上面,你可以看到它为这个图像设置了一个 entrypoint
和 http
,所以你在 docker run
中使用的所有命令将作为 [=14= 的参数], 所以你当然会失败。
接下来是你的使用方法:
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
的输出。
如何在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
}
但是我试了一些方法都不管用,比如blow
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'
这是您使用的镜像的dockerfile,参见this:
FROM alpine:latest
RUN apk add --no-cache jq httpie
ENTRYPOINT [ "http" ]
CMD [ "--help" ]
从上面,你可以看到它为这个图像设置了一个 entrypoint
和 http
,所以你在 docker run
中使用的所有命令将作为 [=14= 的参数], 所以你当然会失败。
接下来是你的使用方法:
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
的输出。