微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的docker login命令不尊重我传入的服务器参数?

如何解决为什么我的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 举报,一经查实,本站将立刻删除。