您好,我需要澄清有关使用 Auth 注册的 docker daemon 文档。我发现docker 文档 我还发现戈多克斯用于 docker 注册表。我搜索了身份验证过程,但找不到任何可以帮助我理解这句话的内容:
资源名称
资源名称表示资源提供者识别资源的名称。资源由此名称和提供的资源类型标识。资源名称的一个示例是图像标签的名称组件,例如“samalba/myapp”或“hostname/samalba/myapp”。
如果我执行例如 docker push myprivregistry/project:TESTPASSED,docker 守护进程是否会在针对身份验证服务器的查询中包含标签“TESTPASSED”?
docker docs 中描述了身份验证过程Token 认证规范
第三个请求具体是什么样的?
答案1
因此,我使用经过精心设计的 JWT 令牌伪造了身份验证服务器,该令牌使用了 docker registry 信任的 RSA 密钥进行签名。
精心设计的 JWT 具有以下声明,因此可以推送“registry”存储库:
"access": [
{
"type": "repository",
"name": "registry",
"actions": [
"pull",
"push"
]
}
],
我使用 docker login 成功登录,然后尝试使用docker push localhost:5000/registry:registry_test2
针对身份验证服务的请求如下:
POST /auth.json HTTP/1.1
Host: 172.17.0.1:80
User-Agent: docker/17.05.0-ce go/go1.7.5 git-commit/89658be kernel/4.13.0-41-generic os/linux arch/amd64 UpstreamClient(Docker-Client/17.05.0-ce \(linux\))
Content-Length: 149
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip
Connection: close
client_id=docker&grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA&scope=repository%3Aregistry%3Apush%2Cpull&service=test.docker.registry
从 POST 主体中,我只能看到存储库名称“registry”并且存在允许的操作,但我看不到图像标签。
所以我的问题的答案是否,图像标签不是针对身份验证服务的身份验证请求的一部分。