docker登录失败:tls:服务器选择不支持的协议版本301

docker登录失败:tls:服务器选择不支持的协议版本301,docker,artifactory,docker-registry,docker-image,Docker,Artifactory,Docker Registry,Docker Image,我正在Windows机器上使用docker 18.09.0版,build 4d60db4,并尝试使用以下命令登录Artifactory docker login docker-registery.company.net 它会提示输入用户名和密码,我正在提供它们,但是我无法登录。它给了我以下错误: Error response from daemon: Get https://docker-registery.company.net/v2/: tls: server selected unsup

我正在Windows机器上使用docker 18.09.0版,build 4d60db4,并尝试使用以下命令登录Artifactory

docker login docker-registery.company.net
它会提示输入用户名和密码,我正在提供它们,但是我无法登录。它给了我以下错误:

Error response from daemon: Get https://docker-registery.company.net/v2/: tls: server selected unsupported protocol version 301
注意:我可以使用相同的用户名和密码通过web浏览器登录到Artifactory Repo浏览器


当我尝试从命令行登录时,是什么导致了此问题?这是某种代理或证书问题吗?

我们在一些

您可以通过编辑注册表在windows中手动更改默认TLS版本

在regedit.exe中更改所需的值,或将此代码存储为.reg文件并执行

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]

"SystemDefaultTlsVersions"=dword:00000001



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]

"SystemDefaultTlsVersions"=dword:00000001
希望它能解决你的问题试试这个

docker登录--username=yourUserName--email=abc@company.netdockerregistry.company.net:5000

显然,如果您使用的端口不是5000,请在冒号后面指定它

登录后,您可以执行以下操作

docker push dockerregistry.company.net:5000/ubuntu


以上所有答案实际上都不适用于我

然而,我设法找到了解决办法。请记住,这不是一个完美的解决方案,而是一种变通方法

就这样

我将我的Artifactory注册表添加为不安全的注册表。以下是如何做到这一点:


因此,通过传递TLS握手。

协议版本301
=TLS 1.0-这是不安全的TLS版本,由服务器选择(理论上由Artifactory选择,但也可以配置TLS的反向代理、Tomcat等)


在服务器端正确配置TLS(启用对TLS 1.1+的支持),docker客户端将能够建立安全的TLS连接。“不安全的注册表”只是不安全的解决方法。

什么价值观对您有效?您也在使用Artiactory吗?如示例-值“1”。不,我没有使用人工制品。但要定义tls(默认tls版本)的问题,请尝试在Google Chrome和Internet Explorer中打开Artifactory。它在IE中工作吗?是的,正如我在回答中提到的,它只是一种变通方法。我没有访问Artifactory服务器配置的权限,所以现在这对我来说是可行的。但是,我将要求管理员配置适当的TLS。
docker pull dockerregistry.company.net:5000/ubuntu