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

时间:2019-01-11 16:55:29

标签: docker artifactory docker-registry docker-image

我在Windows计算机上使用 docker version 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 Browser。

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

Windows update

之后出现了同样的问题

您可以通过编辑注册在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

希望,它将解决您的问题

答案 2 :(得分:1)

尝试一下

docker login --username=yourUserName --email=abc@company.net dockerregistry.company.net:5000

很明显,如果您使用的端口不是5000,请在冒号后面指定该端口。

登录后,您可以执行

之类的操作
docker push dockerregistry.company.net:5000/ubuntu

docker pull dockerregistry.company.net:5000/ubuntu

答案 3 :(得分:1)

以上答案均未对我有效。

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

在这里...

我将Artifactory注册表添加为不安全的注册表。方法如下:https://docs.docker.com/registry/insecure/

因此,通过传递TLS握手。