我怎样才能通过docker中心API创builddocker私人存储库?

我可以通过docker hub API创build公共仓库。 我怎样才能私人存储库?

url='http://index.docker.io/v1/repositories/(username)/(new_repo_name)/' header = {'content-type': 'application/json','Accept': 'application/json','X-Docker-Token': 'true'} data = [{"id": "1020903f808f"}] auth=HTTPBasicAuth(username,password) requests.put(url,headers=header, auth=auth,data=data) 

我的形象是:

 (username)/(new_repo_name) latest 1020903f808f 

这在任何地方都没有logging,但通过检查浏览器中的请求,我设法让下面的代码工作。 它需要一个JWT令牌。 一个快速和肮脏的方式让你的是使用Chromelogin并从debugging视图(Ctrl + Shift +我)复制粘贴。

 class DockerHub(object): def __init__(self, url=None, version='v2', headers=None, jwt_token=None): self.version = version self.url = '{0}/{1}'.format(url or 'https://hub.docker.com', self.version) self.headers = headers or {} if jwt_token: self.headers['Authorization'] = 'JWT ' + jwt_token def create_private_docker_hub_repo(self, reponame, orgname, jwt_token, summary=None, description=None): payload = { 'description': summary or '', 'full_description': description or '', 'is_private': 'true', 'name': reponame, 'namespace': orgname } resp = requests.post( self.url + '/repositories/', data=payload, headers=self.headers, ) return resp.json() def set_group_permission_for_repo(self, repo, orgname, groupname, permission='read'): group_id = {it['name']: it['id'] for it in self.get_org_groups(orgname)}[groupname] if not permission in ('write', 'read'): raise Exception('permission must be write or read') resp = requests.post( 'https://hub.docker.com/v2/repositories/{org}/{repo}/groups/'.format( org=orgname, repo=repo ), data={'group_id': group_id, 'permission': permission}, headers=self.headers ) return resp.json() def get_org_groups(self, orgname): resp = requests.get( 'https://hub.docker.com/v2/orgs/{org}/groups/?page_size=100'.format(org=orgname), headers=self.headers, ) return resp.json()['results']