6

我更新了我们的一台服务器,并在服务器上安装了 Docker。在某种程度上,一切都成功了。我正在研究创建 Docker 映像的示例之一,但出现以下错误:

sudo docker run hello-world 无法在本地找到图像 'hello-world:latest' 拉取存储库 hello-world FATA [0162] 获取https://index.docker.io/v1/repositories/library/hello-world/images:拨打 tcp 162.242.195.84:443:连接超时

我正在与我们的网络管理员核实这一点,因为我能够通过浏览器浏览相关 URL 并获得以下 JSON:

[{"checksum": "", "id": "e45a5af57b00862e5ef5782a9925979a02ba2b12dff832fd0991335f4a11e5c5"}, {"checksum": "", "id": "31cbccb51277105ba3ae35ce33c22b69c9e3f1002e76e4c736a2e8ebff9d7b5d"}, {"checksum": "", "id": "ef872312fe1bbc5e05aae626791a47ee9b032efa8f3bda39cc0be7b56bfe59b9"}, {"checksum": "", "id": "7fa0dcdc88de9c8a856f648c1f8e0cf8141a505bbddb7ecc0c61f1ed5e086852"}, {"checksum": "", "id": "bf16b6e27882c0790071c95326e0186eccd2b8ac2bd5ef34fecdbb332a90926e"}, {"checksum": "", "id": "8f5550346e6173730dca712d1fc87e671ae04d5899d6c4290f7897c054b2318e"}, {"checksum": "", "id": "f86750113cd23609d504342d39015d5c7f218935b8420dd43b79cd99f4f93960"}, {"checksum": "", "id": "0a1b1cfaa9a2153fdabe163d562fe1321a5c1d1db3a59e0fac7c65f966bc38a9"}, {"checksum": "", "id": "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"}, {"checksum": "", "id": "2505d942a91db2045278f9d5c58067414d367c02506bbba96f0769a6ac6ad47b"}, {"checksum": "", "id": "565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1"}]

搜索网络显示其他一些错误,但解决方案在这里不起作用。这可能是代理或端口问题吗?

我正在使用最新版本的 Docker

docker version
Client version: 1.6.1
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 97cd073
OS/Arch (client): linux/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.18/version: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?

当我运行时,docker pull hello-world我得到以下响应:

FATA [0000] 发布http:///var/run/docker.sock/v1.18/images/create?fromImage=hello-world%3Alatest:拨打 unix /var/run/docker.sock:权限被拒绝。您是否尝试在没有 TLS 的情况下连接到启用 TLS 的守护程序?

当我运行sudo docker pull hello-world时,即使我可以成功地卷曲 URL,我也会收到超时消息 -

FATA [0162] 获取https://index.docker.io/v1/repositories/library/hello-world/images:拨打 tcp 162.242.195.84:443:连接超时

尝试curl -v https://index.docker.io:443回报

* Rebuilt URL to: https://index.docker.io:443/
* Hostname was NOT found in DNS cache
*   Trying 172.31.1.70...
* Connected to 172.31.1.70 (172.31.1.70) port 80 (#0)
* Establish HTTP proxy tunnel to index.docker.io:443
* Proxy auth using Basic with user 'chance1'
> CONNECT index.docker.io:443 HTTP/1.1
> Host: index.docker.io:443
> Proxy-Authorization: Basic Y2hhbmNlMToyMDBEdWxsZXM=
> User-Agent: curl/7.35.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
* Proxy replied OK to CONNECT request
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using ECDHE-RSA-AES128-GCM-SHA256
* Server certificate:
*        subject: OU=GT98568428; OU=See www.rapidssl.com/resources/cps (c)15; OU=Domain Control Validated - RapidSSL(R); CN=*.docker.io
*        start date: 2015-03-19 17:34:32 GMT
*        expire date: 2018-04-21 01:51:52 GMT
*        subjectAltName: index.docker.io matched
*        issuer: C=US; O=GeoTrust Inc.; CN=RapidSSL SHA256 CA - G3
*        SSL certificate verify ok.
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: index.docker.io
> Accept: */*
>
< HTTP/1.1 301 MOVED PERMANENTLY
* Server nginx/1.6.2 is not blacklisted
< Server: nginx/1.6.2
< Date: Wed, 13 May 2015 20:43:03 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: close
< X-Frame-Options: SAMEORIGIN
< Location: https://registry.hub.docker.com/
< Strict-Transport-Security: max-age=31536000
<
* Closing connection 0
* SSLv3, TLS alert, Client hello (1):
4

2 回答 2

10

从您的 curl 命令中,很明显您正在使用代理。因此,您需要执行以下操作(在 Ubuntu 中)以使其工作:
1. 编辑您的/etc/default/docker文件(取消注释并export http_proxy="..."根据您的/etc/apt/apt.conf文件编辑行
。2. sudo service docker restart
3. 最后测试sudo docker login

于 2015-05-13T21:39:14.590 回答
0

在我尝试“curl -v https://index.docker.io:443 ”并返回成功后,它起作用了,不再有“TLS握手超时”。

于 2016-02-29T02:29:34.303 回答