使用Docker Registry API Client在Docker Hub上创建私有存储库

时间:2018-08-15 04:53:38

标签: python docker dockerhub docker-image docker-api

我正在处理一个python(3.6)项目,在该项目中,我需要使用API​​在docker hub帐户上创建一个存储库。我已经在Google上搜索了很多,但是找不到任何API客户端来在Docker Hub帐户上创建存储库。

我仅从here找到了这个模块dockercloud,并以此方式进行了尝试:

dockercloud.user = 'arycloud'
dockercloud.apikey = 'API_KEY'
print(client.Repository.list())

但是它返回如下错误:

  

dockercloud.api.exceptions.AuthError:获取凭据时出错-错误:exec:“ docker-credential-osxkeychain”:在$ PATH中找不到可执行文件,出:

有什么方法可以使用API​​在docker hub上创建仓库?

任何资源将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

API documentation没有描述任何用于在任何注册表(包括Docker Hub)上创建存储库的机制。

但是,我能够使用curl创建存储库来发送POST请求:

TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)

curl -s -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/" \
     --data 'description=test' \
     --data 'full_description=full-description' \
     --data 'is_private=false' \
     --data 'name=test' \
     --data "namespace=${UNAME}"