使用Docker注册表API进行身份验证

时间:2015-03-01 12:26:38

标签: api authentication docker

我正在尝试使用https://registry-1.docker.io/v1/

上的Docker注册表API进行身份验证

我正在尝试像

这样的电话

https://registry-1.docker.io/v1/repositories/_/ubuntu/tags

但是我一直得到如下答复:

401
{ server: 'gunicorn/18.0',
  date: 'Sun, 01 Mar 2015 12:19:13 GMT',
  connection: 'close',
  expires: '-1',
  'content-type': 'application/json',
  'www-authenticate': 'Token',
  pragma: 'no-cache',
  'cache-control': 'no-cache',
  'content-length': '35',
  'x-docker-registry-version': '0.8.2',
  'x-docker-registry-config': 'prod',
  'strict-transport-security': 'max-age=31536000' }
{"error": "Requires authorization"}

我已阅读docsforums中的所有可用指南。

按照这些指导方针,我首先要向HUB申请并请求令牌。这成功了,我从HUB获得了令牌和cookie。然后我将所有这些提供给Registry API,如下所示:

{ 
  'set-cookie': 'csrftoken=VfHe6...; Expires=Sun, 28 Feb 2016 12:19:13 GMT; Max-Age=31449600; Path=/; Secure',
  'www-authenticate': 'Token signature=VfHe6...,repository="ubuntu",access=read',
  'x-docker-token': 'Token signature=VfHe6...,repository="ubuntu",access=read',
  Authenticate: 'Token signature=VfHe6...,repository="ubuntu",access=read',
  Authorization: 'Token signature=VfHe6...,repository="ubuntu",access=read'
}

1 个答案:

答案 0 :(得分:0)

您分享的文档中有这一行:

Token is only returned when the X-Docker-Token header is sent with request.

你需要发送' X-Docker-Token:true'当您在集线器上进行身份验证时,您会在标题中收到“X-Docker-Token'背部。发送出去'授权:'到X-Docker-Endpoints'中的注册表而且你在。

祝你好运! :)