Docker 无法拉取镜像

Docker 无法拉取镜像

运行 docker 命令时出现以下错误:

docker 运行 hello-world

拉取存储库 docker.io/library/hello-world docker:尝试连接到时网络超时https://index.docker.io/v1/repositories/library/hello-world/images。您可能需要检查您的互联网连接或是否使用了代理。

我收到以下 CURL 输出:

curl -v https://index.docker.io
* 重建 URL 为:https://index.docker.io/
* DNS 缓存中未找到主机名
* 尝试 54.152.78.181...
* 连接到 index.docker.io (54.152.78.181) 端口 443 (#0)
* 成功设置证书验证位置:
* CA文件:无
  CApath:/etc/ssl/certs
* SSLv3、TLS 握手、客户端问候 (1):


* 连接到 index.docker.io:443 时出现未知 SSL 协议错误
* 关闭连接 0
curl:(35)连接到 index.docker.io:443 时出现未知 SSL 协议错误

那么我现在该如何拉动我的机器呢?

现在收到以下消息:

无法在本地找到图像“hello-world:latest”最新:从库/hello-world 03f4658f8b78中提取:正在下载a3ed95caeb02:正在下载docker:x509:由未知机构签名的证书。

更新(混淆的密钥):

运行以下命令将给出输出:

~$ openssl s_client-connect index.docker.io:443
已连接(00000003)
深度=1 C = 美国,O = GeoTrust Inc.,CN = RapidSSL SHA256 CA - G3
验证错误:num=20:无法获取本地颁发者证书
验证返回:0
---
证书链
 0 s:/OU=GT98568428/OU=参见 www.rapidssl.com/resources/cps (c)15/OU=域控制已验证 - RapidSSL(R)/CN=*.docker.io
   i:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA-G3
 1 s:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA-G3
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
---
服务器证书
-----开始证书-----
MIIEpDCCA4ygAwIBAgIDAyF3MA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuLQYDVQQLEyZEb21haW4gQ29udHJvbCBW
YWxpZGF0ZWQgLSBSYXBpZFNTTChSKTEUMBIGA1UEAwwLKi5kb2NrZXIuaW8wggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRyme75dbw9AxWZ8QFCwMWrrYY
SclZ6HCiEbxSNxHgg08rEfEYi46VrL+joBwlA0t5WIIxHF198NzzdXC4YeGzruY9
7osv5lPrcdeIi+Ad+fY6K0rBBOB3xdqSPPObrINZpDmWhCQjlsnM6a1Th0oSUCjI
345b84/8PH363YO+Qmnl8BWnaTcZoPzeywM9czQsMyF2bOH+dhxja/zim6iu8W34
yBhVQeQRd1QROuHcsQAX19DKTn6TXaAwIBY3xM1Bi5Zl6tueII4dOEoibw/ImR3c
H73Pk7j1Wx+rAXeeq7LwjkUCCSlKNrHFEQ2nbr0R7FH6cck1ppgM8ud1pHr9AgMB
AAGjggFOMIIBSjAfBgNVHSMEGDAWgBTDnPP800YINLvORn+gfFvz4gjLWTBXBggr
BgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9ndi5zeW1jZC5jb20wJgYI
KwYBBQUHMAKGGmh0dHA6Ly9ndi5zeW1jYi5jb20vZ3YuY3J0MA4GA1UdDwEB/wQE
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIQYDVR0RBBowGIIL
Ki5kb2NrZXIuaW+CCWRvY2tlci5pbzArBgNVHR8EJDAiMCCgHqAchhpodHRwOi8v
Z3Yuc3ltY2IuY29tL2d2LmNybDAMBgNVHRMBAf8EAjAAMEEGA1UdIAQ6MDgwNgYG
Z4EMAQIBMCwwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LnJhcGlkc3NsLmNvbS9s
ZWdhbDANBgkqhkiG9w0BAQsFAAOCAQEATYgwOYz/w9Qyh/YPZQDZ0BdwhkX6OCX0
Mz8pP/OO+E+1RM7ZoAGwHvIaidFqh3WeCLHjGO2IId7Ff5EZUwZhiwog0R7Y838x
OCLza/2shuvjM/FPiyXDQ6q0w4rvpwsNjmYVDdYD8bCH3b8IlO2ysjgdhRYprsdU
jg6h+zK11/tXf6S5vegrgV0F62DYx0tuTTZq/HMuXvbgY2uL1sQ5jiHlzQndV9oL
YMYqJP5MkuAKzDL5u0b8mD/EHtoPkfWOIsA5i9YrAAoWRVOJHwfFfgSY+EpXpFc4
AZUPmdZGh6q1YNavRoOL/1D5aP/VBBtofj54uMbKOK8q6vxIXSyzaw==
-----证书结束-----
subject=/OU=GT98568428/OU=参见 www.rapidssl.com/resources/cps (c)15/OU=域控制验证 - RapidSSL(R)/CN=*.docker.io
发行人=/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G3
---
未发送客户端证书 CA 名称
---
SSL 握手已读取 2914 个字节并写入 421 个字节
---
新的 TLSv1/SSLv3,密码为 ECDHE-RSA-AES128-GCM-SHA256
服务器公钥为2048位
支持安全重新协商
压缩:无
扩展:无
SSL 会话:
    协议:TLSv1.2
    密码:ECDHE-RSA-AES128-GCM-SHA256
    会话 ID:111E09F815E121C7EA7E7FD0C07C4AC31FFDE4E13AD9BA926AFF03A2E267130C
    会话 ID-ctx:
    主密钥:78A4ABC11BFCCA245F4B3FE8BDA0C0BC3A10D3E9BB447838B06D8BB16DA1553DBBCBFE03408AF34FB7D0CA5E3E7E8D40
    关键参数:无
    PSK 身份:无
    PSK 身份提示:无
    SRP 用户名:无
    TLS 会话票证生存期提示:300(秒)
    TLS 会话票据:
    0000 – 57 92 4f 5c a0 41 ab d9-62 2c b1 05 66 b5 bc 79 WO\.A..b,..f..y
    0010 - c8 32 a1 b0 f3 df 3d e7-c8 8d 0b 62 b2 6f 2b 99 .2....=....b.o+.
    0020 – 80 e1 60 73 19 67 bd c5-bf 4c 61 26 ca 3c 4d bd ..`sg..La&.i...
    0090 - ea ca 71 3e 9a 64 e8 23-dc f6 77 b4 6a 59 ac cd ..q>.d.#..w.jY..
    开始时间:1456385623
    超时:300(秒)
    验证返回代码:20(无法获取本地颁发者证书)
---

我尝试了以下命令但无济于事:

sudo 更新 ca 证书 sudo 服务 docker 重启

另外以下命令结果:

# 更新 ca 证书

正在更新 /etc/ssl/certs 中的证书...无法加载证书
140587866932896:错误:0906D06C:PEM 例程:PEM_read_bio:无起始行:pem_lib.c:703:预期:受信任的证书
无法加载证书
140365960205984:错误:0906D06C:PEM 例程:PEM_read_bio:无起始行:pem_lib.c:703:预期:受信任的证书
警告:跳过重复证书 cacerthaxx.pem
警告:跳过重复证书 UbuntuOne-Go_Daddy_Class_2_CA.pem
警告:跳过重复证书 UbuntuOne-Go_Daddy_Class_2_CA.pem
已添加 4 个,已删除 0 个;已完成。
在 /etc/ca-certificates/update.d 中运行钩子....完成。
root@Data-Server:~# 更新 ca 证书 -f
清除 /etc/ssl/certs 中的符号链接...完成。
正在更新 /etc/ssl/certs 中的证书...无法加载证书
140706921281184:错误:0906D06C:PEM 例程:PEM_read_bio:无起始行:pem_lib.c:703:预期:受信任的证书
无法加载证书
139841225197216:错误:0906D06C:PEM 例程:PEM_read_bio:无起始行:pem_lib.c:703:预期:受信任的证书
警告:跳过重复证书 cacerthaxx.pem
警告:跳过重复证书 UbuntuOne-Go_Daddy_Class_2_CA.pem
警告:跳过重复证书 UbuntuOne-Go_Daddy_Class_2_CA.pem
已添加 177 条,已删除 0 条;已完成。
在 /etc/ca-certificates/update.d 中运行钩子....完成。

有关的 :https://github.com/docker/docker/issues/10150

答案1

可能只是一种不稳定的连接。两者https://index.docker.io/v1/repositories/library/hello-world/imageshttps://index.docker.io对我有用。

$  curl -v https://index.docker.io
* Rebuilt URL to: https://index.docker.io/
*   Trying 54.152.78.181...
* Connected to index.docker.io (54.152.78.181) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
* Server certificate: *.docker.io
* Server certificate: RapidSSL SHA256 CA - G3
* Server certificate: GeoTrust Global CA
> GET / HTTP/1.1
> Host: index.docker.io
> User-Agent: curl/7.43.0
> Accept: */*
> 
< HTTP/1.1 301 MOVED PERMANENTLY
< Server: nginx/1.6.2
< Date: Thu, 25 Feb 2016 07:17:55 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< X-Frame-Options: SAMEORIGIN
< Location: https://registry.hub.docker.com/
< Strict-Transport-Security: max-age=31536000
< 
* Connection #0 to host index.docker.io left intact

您可以尝试检查您的 SSL 连接

$ openssl s_client -connect index.docker.io:443

相关内容