来自守护程序的错误响应:意外状态代码404

时间:2016-07-04 13:50:35

标签: docker nexus3

我在nexus 3配置上配置docker注册表。我在apache后面运行nexus并启用了https。

在命令行上,当我进行dcoker搜索时,我得到以下错误

docker search my.nexus.net/ubantu

Error response from daemon: Unexpected status code 404

这是调试模式下的守护程序日志。

DEBU[7519] Calling GET /images/search 
INFO[7519] GET /v1.19/images/search?term=my.nexus.net%2Fubantu 
DEBU[7519] pinging registry endpoint https://my.nexus.net/v0/
DEBU[7519] attempting v2 ping for registry endpoint https://my.nexus.net/v2/
DEBU[7519] hostDir: /etc/docker/certs.d/my.nexus.net
DEBU[7519] attempting v1 ping for registry endpoint https://my.nexus.net/v1/
DEBU[7519] hostDir: /etc/docker/certs.d/my.nexus.net
DEBU[7519] Error unmarshalling the _ping RegistryInfo: invalid character '<' looking for beginning of value
DEBU[7519] RegistryInfo.Version: ""
DEBU[7519] Registry standalone header: ''
DEBU[7519] RegistryInfo.Standalone: true
DEBU[7519] attempting v1 ping for registry endpoint https://my.nexus.net/v1/
DEBU[7519] hostDir: /etc/docker/certs.d/my.nexus.net
DEBU[7519] Error unmarshalling the _ping RegistryInfo: invalid character '<' looking for beginning of value
DEBU[7519] RegistryInfo.Version: ""
DEBU[7519] Registry standalone header: ''
DEBU[7519] RegistryInfo.Standalone: true
DEBU[7519] Endpoint https://my.nexus.net/v1/ is eligible for private registry. Enabling decorator.
DEBU[7519] Index server: https://my.nexus.net/v1/
DEBU[7519] hostDir: /etc/docker/certs.d/my.nexus.net
ERRO[7519] Handler for GET /images/search returned error: Unexpected status code 404
ERRO[7519] HTTP Error                                    err=Unexpected status code 404 statusCode=500

如果有任何想法,请告诉我。

由于

5 个答案:

答案 0 :(得分:2)

从日志中可以看出,您尝试使用不同版本的注册表端点。您是否在存储库配置中使用v1Enabled:false选项?它似乎在v1 ping期间出错但仍然使用该端点。这很奇怪&amp;出乎意料的行为。

enter image description here

答案 1 :(得分:1)

我有同样的问题。 谷歌搜索之后,看起来“码头工人搜索”使用的是V1 API:请参见问题https://github.com/docker/distribution/issues/206
因此,在与该端口相对应的组的所有docker注册表上启用V1 API之后,它便可以正常工作。

答案 2 :(得分:0)

要使用NXRM3在docker中执行任何操作,您需要指定要搜索的端口,以便存储库管理器知道您要查找的存储库。如果您只是指定根端口(或者在您的情况下,看起来像没有端口),NXRM3不知道您在看哪个。

因此,如果您的群组设置为使用HTTPS连接器18075,请尝试“docker search my.nexus.net:18075/ubantu”

参考:http://books.sonatype.com/nexus-book/reference3/docker.html#docker-search

答案 3 :(得分:0)

“ docker search”命令使用v1 API。您有2种选择:

  1. 在使用docker search之前启用v1 API
  2. 使用这样的curl:curl -X GET localhost:5000 / v2 / _catalog

答案 4 :(得分:0)

我使用了 VPN 并且它有效。不是赛风。