我使用docker engine 2.0.0.0-win77(28777)。在我的macOS上,我已经成功地从公司的私有Docker注册表中提取了映像。然后,我想在Windows计算机上执行此操作。在做任何事情之前,我有:
> docker pull <company.docker.url>/<some image>
Error response from daemon: Get https://<company.docker.url>/v2/: x509: certificate signed by unknown authority
然后,我将证书导入Windows用户证书存储中。 现在我有:
> docker pull <company.docker.url>/<some image>
Error response from daemon: Get https://<company.docker.url>/v2/: remote error: tls: handshake failure
在失败之后,我尝试了:
将文件client.cert
,client.key
和ca.crt
复制到我的Windows 10中:
C:\ProgramData\Docker\certs.d\<company.docker.url>\
C:\Users\<user>\.docker\certs.d\<company.docker.url>\
可悲的是,我仍然得到这个:
> docker pull <company.docker.url>/<some image>
Error response from daemon: Get https://<company.docker.url>/v2/: remote error: tls: handshake failure
还有两件事要注意:
client.cert
中。我读过一些参考文献:
答案 0 :(得分:0)
我会尝试两件事:
答案 1 :(得分:0)
我在Windows上也遇到此错误。就我而言,重新启动docker守护程序很有帮助。
答案 2 :(得分:0)
建立与company.docker.url
的TLS连接时遇到问题。可能的问题:
company.docker.url
仅允许使用Linux容器不支持的密码。使用https://github.com/drwetter/testssl.sh测试company.docker.url
,并将检测到的密码列表与Linux容器支持的密码列表进行比较。 (我猜Linux容器=一些Hyper-V VM,您可以在其中直接调试TLS连接)。
证书顺序必须按照您的证书文件中的特定顺序形成正确的证书链-来自Golang文档https://golang.org/pkg/crypto/tls/#LoadX509KeyPair:
证书文件中可能包含继叶子证书之后的中间证书,以形成证书链。
答案 3 :(得分:0)
上周当我与docker纠缠时,程序说您需要Windows 10专业版,而且我只有家庭版,因此无法正常工作,请检查您的Windows 10版本。
答案 4 :(得分:0)
就我而言,我们的Sophos防火墙阻止了访问。我直接连接到互联网,并且可以正常工作。我必须问我的同事,为什么它被阻止了。