无法从Docker Registry远程API获取有效的响应
我正在使用Nodejs和请求来形成我的API调用,我可以直接与API调用一个UnixSocket,但它每次尝试从Dockerregistry容器请求时,我已经运行,所以我相信这是我的registryconfiguration的错误。
我已经像下面的文档步骤一样将其设置为开箱即用 。
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) })
要清楚的是,这段代码只是为了certificate我正在做一个格式良好的GET请求。
必须做些什么来允许正在运行的registry容器响应远程API?
Docker Registry没有/images/json
API,而Docker Registry的API与docker engine API不兼容。
要获得Docker Registry的映像列表,请尝试GET /v2/_catalog
。 完整的文件可以在这里find。