我在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。
当我尝试从命令行登录时,是什么导致此问题?是某种代理或证书问题吗?
答案 0 :(得分:3)
protocol version 301
= TLS 1.0-这是服务器选择的不安全的TLS版本(理论上是Artifactory选择的,但是可以有反向代理,Tomcat等,也可以配置TLS) 。
在服务器端正确配置TLS(启用对TLS 1.1+的支持),您的docker客户端将能够建立安全的TLS连接。 “不安全的注册表”只是不安全的解决方法。
答案 1 :(得分:1)
您可以通过编辑注册在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握手。