Docker private registry : How to list all images

Hi All,

I have configured docker private registry (registry:2 ) and am able to push the images created by me, so that my team can use the same.I have been pushing many images to it successfully.

I would like to know how to list all images in my private registry, is there any command to find out it?

Can you please help me.

Thanks,
Prathap

1 Like

Hi,

AFAIK this isn’t possible with registry alone , you have to use an external service to index your registry content.
to ease the deployment and administration of your registry, you can look at 2 nice tool :slight_smile:

Hoping this helps,

Regards,

I’m adding support for DockerCloud to GrandCentrall.

It takes git hashes and looks for the corresponding docker images, and deploys them. I need to consult our private repo to see if a git hash has corresponding docker images or not, and ended up with this very very very awful hack:

Yep. I basically create a service, see if it starts up successfully, and then if it does, it exists. If it doesn’t, then it doesn’t exist. Ugh. I spent hours trying to make a crawler to hit the docker cloud website… the react front end defeated me!

https://xxx.xx/v2/_catalog

17 Likes

Thanks this work for me.

curl https://username:password/domainname.com/V2/_catalog

4 Likes

Further reading on the Docker Registry v2 REST API: https://docs.docker.com/registry/spec/api/

Docker search registry v2 functionality is currently not supported at the time of this writing. See discussion since Feb 2015: “propose registry search functionality #206https://github.com/docker/distribution/issues/206

I wrote a script that you can find: https://github.com/BradleyA/Search-docker-registry-v2-script.1.0 It is not pretty but it gets the information needed from the private registry.

Official documentation to list docker repositories

GET /v2/_catalog

List image tags

GET /v2/<name>/tags/list
4 Likes

try for ex;
curl -ik --user admin:admin123 https://m1.example.com/v2/_catalog

4 Likes

v in lowercase, indeed. /v2/

If I request V2 in upper, it’s a 404.

1 Like

I basically installed a web server, php, and whipped up a quick index.php page that basically parsed /var/lib/registry/docker/registry/v2/repositories and then looped through that list in the _manifest/tags directory to get the tags. Then created it all in a simple table that had image name, tag, and the string used to pull the image to copy/paste into Kubernetes deployments.

Yes, it has a web server but as noted above, it’s not quite as easy as a web page to get the information.

Carl

I pushed my docker images to my private registry and was able to list the pushed images using below commands: (i am running my private Docker registry on 5005 port using command => sudo docker run -d -p 5005:5000 --name my-registry registry:2)

sudo docker tag redis localhost:5005/redis
sudo docker push localhost:5005/redis
curl localhost:5005/v2/_catalog

Output from above 3rd catalog command
{“repositories”:[“nginx”,“redis”]}

1 Like

Hi,
I built a flask app running on a docker container that shows the images in the registry:

GItHub repo

1 Like