Nginx Docker private registry/v2/_目录不是拉取repo而是/v2/repo/tags/works?

Nginx Docker private registry/v2/_目录不是拉取repo而是/v2/repo/tags/works?,nginx,docker-registry,Nginx,Docker Registry,我试图在我的私有注册表中列出存储库,但由于未知原因,轮询/v2/_catalog不会返回任何结果,无论指定repo如何返回结果 我也可以毫无疑问地推动和推动回购协议,所以我相当困惑 注册表使用S3存储桶进行存储 使用htpasswd进行访问控制 失败的curl请求的输出为: * Trying 000.000.000.000... * TCP_NODELAY set * Connected to registry.example.com (000.000.000.000 port 443

我试图在我的私有注册表中列出存储库,但由于未知原因,轮询
/v2/_catalog
不会返回任何结果,无论指定repo如何返回结果

我也可以毫无疑问地推动和推动回购协议,所以我相当困惑

  • 注册表使用S3存储桶进行存储
  • 使用htpasswd进行访问控制
失败的curl请求的输出为:

*   Trying 000.000.000.000...
* TCP_NODELAY set
* Connected to registry.example.com (000.000.000.000 port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: O=Acme Co; CN=Kubernetes Ingress Controller Fake Certificate
*  start date: Feb 13 16:27:49 2019 GMT
*  expire date: Feb 13 16:27:49 2020 GMT
*  issuer: O=Acme Co; CN=Kubernetes Ingress Controller Fake Certificate
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Server auth using Basic with user 'user'
* Using Stream ID: 1 (easy handle 0x7f83b1800400)
> GET /v2/_catalog HTTP/2
> Host: registry.example.com
> Authorization: Basic asdfasdfasdfasdfasdfasdfa
> User-Agent: curl/7.54.0
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 502 
< server: nginx/1.15.8
< date: Wed, 13 Feb 2019 17:27:17 GMT
< content-type: text/html
< content-length: 157
< strict-transport-security: max-age=15724800; includeSubDomains
< 
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.15.8</center>
</body>
</html>
* Connection #0 to host registry.example.com left intact
*正在尝试000.000.000.000。。。
*TCP_节点集
*已连接到registry.example.com(000.000.000.000端口443(#0)
*阿尔卑斯山,提供h2
*ALPN,提供http/1.1
*密码选择:全部:!导出:!导出40:!导出56:!全部:!低:!RC4:@STRENGTH
*已成功设置证书验证位置:
*CAfile:/etc/ssl/cert.pem
卡帕斯:没有
*TLSv1.2(输出),TLS握手,客户端问候(1):
*TLSv1.2(IN)、TLS握手、服务器hello(2):
*TLSv1.2(IN),TLS握手,证书(11):
*TLSv1.2(IN)、TLS握手、服务器密钥交换(12):
*TLSv1.2(IN),TLS握手,服务器完成(14):
*TLSv1.2(输出)、TLS握手、客户端密钥交换(16):
*TLSv1.2(OUT),TLS更改密码,客户端hello(1):
*TLSv1.2(输出),TLS握手,完成(20):
*TLSv1.2(IN),TLS更改密码,客户端hello(1):
*TLSv1.2(IN),TLS握手,完成(20):
*使用TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384的SSL连接
*ALPN,服务器接受使用h2
*服务器证书:
*主题:O=Acme Co;CN=Kubernetes入口控制器假证书
*开始日期:2月13日16:27:49格林尼治标准时间2019
*过期日期:2月13日16:27:49格林威治标准时间2020
*颁发者:O=Acme Co;CN=Kubernetes入口控制器假证书
*SSL证书验证结果:无法获取本地颁发者证书(20),仍在继续。
*使用HTTP2,服务器支持多用途
*连接状态已更改(HTTP/2已确认)
*升级后正在将流缓冲区中的HTTP/2数据复制到连接缓冲区:len=0
*对用户“user”使用Basic进行服务器身份验证
*使用流ID:1(易处理0x7f83b1800400)
>获取/v2/_目录HTTP/2
>主机:registry.example.com
>授权:基本ASDFASDFASDFASDFASDFA
>用户代理:curl/7.54.0
>接受:*/*
> 
*连接状态已更改(最大并发流已更新)!
nginx/1.15.8
*0到host registry.example.com的连接保持不变

我也在寻找这个问题的答案


   I am trying to get list of repository on jfrog Docker local repository through v2/_catalog. 
   let say repository name: devops and image:mongo:3.6
   jfrog registry url : http://192.168.19.99:8081

   GET API is : curl -k -u test:123test123 -X GET http://192.168.19.99:8081/v2/_catalog

   **Response returns empty** 

   However if put repository name after **v2/reponame/_catalog** then getting correct list of image 
  belongs to given repository.
  e.g: curl -k -u test:123test123 -X GET http://192.168.19.99:8081/v2/devops/_catalog

  {
    "repositories" : [ "mongo" ]
  }

  But i am looking to get through **v2/_catalog** 
  If there any way to make it work using **v2/_catalog**
  However i also tried with Nginx configuration but  **v2/_catalog** returns empty ONLY

  --
  Thanks ```

我也在寻找这个问题的答案


   I am trying to get list of repository on jfrog Docker local repository through v2/_catalog. 
   let say repository name: devops and image:mongo:3.6
   jfrog registry url : http://192.168.19.99:8081

   GET API is : curl -k -u test:123test123 -X GET http://192.168.19.99:8081/v2/_catalog

   **Response returns empty** 

   However if put repository name after **v2/reponame/_catalog** then getting correct list of image 
  belongs to given repository.
  e.g: curl -k -u test:123test123 -X GET http://192.168.19.99:8081/v2/devops/_catalog

  {
    "repositories" : [ "mongo" ]
  }

  But i am looking to get through **v2/_catalog** 
  If there any way to make it work using **v2/_catalog**
  However i also tried with Nginx configuration but  **v2/_catalog** returns empty ONLY

  --
  Thanks ```

将使用的映像从
registry:2
更改为
distribution/registry
似乎解决了此问题。我们遇到了与您相同的问题。我们将注册表映像降级为2.6.2将使用的映像从
registry:2
更改为
distribution/registry
似乎解决了此问题。我们遇到了类似的问题你。我们将注册表映像降级为2.6.2