Скачать манифест частного репозитория из Docker Registry API - PullRequest
2 голосов
/ 26 мая 2020

Обычно, например, для образа alpine, мы получаем токен аутентификации через:

curl -i "https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/alpine:pull"

Затем мы можем использовать его для получения манифеста из реестра:

curl -i -H "Authorization: Bearer $TOKEN" -H "Accept: application/vnd.docker.distribution.manifest.list.v2+json" https://registry-1.docker.io/v2/library/alpine/manifests/latest

Когда мы заменяем library / alpine нашим частным репозиторием (ourcompany / ourrepo), получение токена все еще работает, однако загрузка манифеста приводит к:

HTTP/1.1 401 Unauthorized
Content-Type: application/json
Docker-Distribution-Api-Version: registry/2.0
Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:ourcompany/ourrepo:pull",error="insufficient_scope"
Date: Tue, 26 May 2020 10:32:56 GMT
Content-Length: 168
Strict-Transport-Security: max-age=31536000

{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"repository","Class":"","Name":"ourcompany/ourrepo","Action":"pull"}]}]}

Как обойти эту ошибку 401?

Нужны ли нам дополнительные токены? Отправить дополнительно учетные данные для аутентификации? Сделать что-нибудь совсем по-другому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...