docker version: 1.11.2 curl version: 7.50.3 (x86_64-pc-linux-gnu) libcurl/7.50.3 OpenSSL/1.0.1e zlib/1.2.7
/usr/local/sbin/bin/curl --unix-socket /var/run/docker.sock http://images/json -v
* Trying /var/run/docker.sock...
* Connected to images (/var/run/docker.sock) port 80 (#0)
> GET /json HTTP/1.1
> Host: images
> User-Agent: curl/7.50.3
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< X-Content-Type-Options: nosniff
< Date: Thu, 22 Sep 2016 06:11:52 GMT
< Content-Length: 19
<
404 page not found
* Curl_http_done: called premature == 0
* Connection #0 to host images left intact
我的docker守护进程有什么问题吗?如何从docker unix-socket获取容器信息? docker deamon绝对是开始的。
答案 0 :(得分:3)
我遵循了这个页面:https://docs.docker.com/engine/reference/api/docker_remote_api/#/v1-23-api-changes,建议我们使用curl 7.40或更高版本,命令curl --unix-socket /var/run/docker.sock http:/containers/json
。您可以在此命令中找到无法使用的URL http:/containers/json
。
然后我下载了最新的curl 7.50.3,这个问题的关键是curl的版本,我们应该像下面这样执行:
curl --unix-socket /var/run/docker.sock http://localhost/images/json
更多细节观看此页面。https://superuser.com/questions/834307/can-curl-send-requests-to-sockets。希望它能帮助其他困惑的人。