0

我有一个偶尔使用的 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/,即使这不再是我传递给命令的内容。我应该清除某种缓存或配置以使其尊重原始服务器吗?

我已与另一位同事确认我正在尝试的命令对他来说很好

4

1 回答 1

1

/v2/注册表 api的一部分。每个对注册表进行身份验证的请求都将转到注册表主机上的该路径,并且与您之前的测试没有任何关系。看起来您的问题与网络访问有关,所以我将从 a 开始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一个好的请求的标题。

于 2020-09-15T18:35:01.813 回答