无法从 Docker 注册表远程 API 获得有效响应

Cannot get a valid response from Docker Registry remote API

我正在使用 Nodejs & request 来构建我的 API 调用,我可以使用它直接对 UnixSocket 进行 API 调用,但是每次尝试从Docker 注册表容器我有 运行,所以我认为这是我的注册表配置的错误。

我已经按照下面的 just like the doc 步骤进行了开箱即用的设置。

docker run -d -p 5000:5000 --restart=always --name registry registry:2
docker pull alpine
docker tag alpine localhost:5000/alpine
docker push localhost:5000/alpine

我用来请求的代码如下,它收到一个 404 not found

  const request = require('request')
  request({
    method: 'GET',
    uri: 'http://localhost:5000/images/json', // status 404
    // uri: 'http://unix:/var/run/docker.sock:/images/json', // this works 
    headers: { host : 'localhost' }
  }, (e, res, body) => {
    if(e) return console.error(e)
    console.log(res.statusCode == 200 ? JSON.parse(body) : res.statusCode)
  })

需要说明的是,这段代码只是为了证明我正在发出格式正确的 GET 请求。

必须做什么才能允许 运行 注册表容器响应远程 API?

Docker 注册表没有 /images/json API,并且 Docker 注册表的 API 与 docker 引擎不兼容API.

要获取 Docker Registry 的图像列表,请尝试 GET /v2/_catalog。可以找到完整文档 here.