Reputation: 2013
I'm using Nodejs & request to form my API calls, I can make API calls directly to a UnixSocket with it however it fails every attempt when requesting from the Docker registry container I have running, so I believe it's the fault of my registry configuration.
I've set it up out of the box just like the doc steps below.
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
The code I'm using to request is below, it receives a 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)
})
To be clear, this code is just to demonstrate that I'm making a GET request that should be well-formed.
What has to be done to allow a running registry container respond to the remote API?
Upvotes: 0
Views: 92
Reputation: 2842
Docker Registry doesn't have the /images/json
API, and the Docker Registry's API does not compatible with docker engine API.
To get the image list of Docker Registry, please try GET /v2/_catalog
. Full document can be found here.
Upvotes: 2