首页 > 解决方案 > 使用 Docker Registry API 客户端在 Docker Hub 上创建私有存储库

问题描述

我正在开发一个 Python 3.6 项目,在该项目中我需要使用 API 在 docker hub 帐户上创建一个存储库。我用谷歌搜索了很多,但找不到任何 API 客户端来在 docker hub 帐户上创建存储库。

dockercloud这里只找到了这个模块并以这种方式进行了尝试:

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

但它返回如下错误:

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

有什么方法可以使用 API 在 Docker Hub 上创建存储库?

标签: pythondockerdockerhubdocker-imagedocker-api

解决方案


API 文档没有描述在任何注册表上创建存储库的任何机制,包括 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}"

推荐阅读