Перейти к основному содержанию

Вывести список образов в docker registry

DevOps

Выводим список образов из docker registry. Рассматриваем v2. 

Можно посмотреть через браузер:

https://registry.local/v2/_catalog

Увидим JSON:

{
  "repositories": [
    "library/nginx",
    "library/node",
    "library/postgres",
    "library/python",
    "library/redis",
    "library/registry",
    "library/ruby",
    "library/ubuntu"
  ]
}

На страницу выводится 100 записей. Можно вывести больше:

https://registry.local/v2/_catalog?n=1000

Вывести теги:

https://registry.local/<repository_name>/tags/list
https://registry.local/library/ubuntu/tags/list

Увидим JSON:

{
  "name": "library/ubuntu",
  "tags": [
    "bionic",
    "bionic-20171114",
    "bionic-20171214",
    "bionic-20171220"
  ]
}

В bash вывод списка образов с тегами:

apt install jq
REPO_URL=registry.local:443
curl -k -s -X GET https://$REPO_URL/v2/_catalog \
| jq '.repositories[]'\
| sort
| xargs -I _ curl -s -k -X GET https://$REPO_URL/v2/_/tags/list
| jq

Если есть аутентификация, то в curl добавятся параметры:

curl -X GET -u <user>:<password> https://registry.local/v2/_catalog
curl -k -X GET https://user:password@registry.local/v2/_catalog

Ссылки

https://stackoverflow.com/questions/31251356/how-to-get-a-list-of-images-on-docker-registry-v2

Теги

 

Похожие материалы

Ansible is being run in a world writable directory

Поймал WARNING при попытке запустить ansible-playbook. Горе-разработчики сделали очередную палку в колёса. Теперь нельзя просто так взять и запустить команду из директории, доступной всем на запись. Команда запустится, но конфигурационный файл ansible.cfg применён не будет.

Теги