我正在尝试使用api版本2获取docker注册表中的repositry列表。
我的目标是从我拥有的docker hub获取存储库。
首先,我使用基本身份验证从身份验证服务器“https://auth.docker.io/token?service=registry.docker.io”
获取承载令牌然后我打电话使用此持有人令牌“https://index.docker.io/v2/_catalog”获取回购列表。但我得到了未经授权的错误。任何想法都可能是原因。
答案 0 :(得分:0)
我发现虽然获取存储库列表的调用是正确的,但这个api在dockerhub中被故意阻止。 Docker hub拥有巨大的存储库列表,可能由于这个原因他们阻止了这个被调用。或者,您可以使用docker v1中的搜索API。
答案 1 :(得分:0)
通过GOLang code,发现API遵循RFC 2616 section 14.8。该安全性使用带有“基本”身份验证令牌的HTTP授权标头。
使用PowerShell列出历史记录的示例。
使用docker CLI制作凭据
docker login --username myuseraccount --password secretpassword
cat([IO.Path] :: Combine($ env:USERPROFILE,'.docker \ config.json'))
将基本令牌从config.json复制到剪贴板。
列出您的Azure存储库。在Basic令牌和base64编码令牌之间需要空格。
Invoke-RestMethod -Uri https:// YOURAZUREREGISTY .azurecr.io / v2 / _catalog -Method Get -Headers @ {'Authorization'='Basic PASTEBASE64BASICTOKENFROM2 ' }