我正在使用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需要做些什么?
答案 0 :(得分:2)
Docker Registry没有/images/json
API,Docker Registry的API与docker engine API不兼容。
要获取Docker Registry的图像列表,请尝试GET /v2/_catalog
。可以找到完整的文档here。