如何解决为什么我的docker login命令不尊重我传入的服务器参数?
我有一个docker login命令,我偶尔使用docker login repos.server.com
,直到最近都运行良好。
我尝试了一个实验,其中我在登录名中尝试了其他服务器(请注意/ v2 /已添加到服务器arg)-docker login repos.server.com/v2/
失败了,很好,只是我在尝试一些东西。但是,现在,无论何时我尝试运行原始命令,而没有在末尾带有/ v2 /的服务器时,都会出现错误,并且得到的响应表明它仍在尝试使用/ v2来达到服务器的版本/。 所以在原始命令起作用之前,现在我得到一个例外:
C:\Users\me\Desktop\Docker\yaml\AThing>docker login repos.server.com
Authenticating with existing credentials
Login did not succeed,error: Error response from daemon: Get https://repos.server.com/v2/: dial tcp 123.45.67.890:443: connect: no route to host
您可以在该错误中看到它似乎仍在尝试打/ v2 /,即使这不再是我传递给命令的内容。我应该清除某种缓存或配置以使其尊重原始服务器吗?
我已经与另一位同事确认,我正在尝试的命令对他来说很好用
解决方法
/v2/
是registry api的一部分。每个对注册表进行身份验证的请求都将转到注册表主机上的该路径,并且与先前的测试没有任何关系。您的问题似乎与网络访问有关,因此,我将从curl -i https://$registry_host/v2/
开始,并确保获得预期的结果,例如击中docker hub:
$ curl -i https://registry-1.docker.io/v2/
HTTP/1.1 401 Unauthorized
Content-Type: application/json
Docker-Distribution-Api-Version: registry/2.0
Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io"
Date: Tue,15 Sep 2020 18:37:37 GMT
Content-Length: 87
Strict-Transport-Security: max-age=31536000
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
您应该在良好的请求中看到一个Www-Authenticate
标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。