首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过命令行从docker hub删除docker镜像?

如何通过命令行从docker hub删除docker镜像?
EN

Stack Overflow用户
提问于 2017-05-27 04:24:27
回答 6查看 11.6K关注 0票数 11

我创建了docker镜像,用于在我的Jenkins管道中进行测试,将其上传到Docker hub,并将其部署到Kubernetes。在测试过程结束时,我想从Docker hub (而不是从测试机)中删除测试映像。如何从命令行删除docker集线器映像?

EN

回答 6

Stack Overflow用户

发布于 2017-05-27 23:41:48

使用Docker Hub API,请参阅:https://docs.docker.com/v1.7/reference/api/docker-io_api/#delete-a-user-repository

我刚刚用curl测试了一个测试图片的删除:

代码语言:javascript
复制
curl -X DELETE -u "$user:$pass" https://index.docker.io/v1/repositories/$namespace/$reponame/

$user$pass分别替换为您在Docker Hub上的用户名和密码;并将$namespace (在我的示例中与$user相同)和$reponame替换为镜像名称(在我的示例中为test)。

票数 10
EN

Stack Overflow用户

发布于 2019-05-31 01:05:24

Dockerhub有一个REST backEnd,你可以使用它...它只是跳过了FE...

例如:

代码语言:javascript
复制
export USERNAME=myuser
export PASSWORD=mypass
export ORGANIZATION=myorg (if it's personal, then it's your username)
export REPOSITORY=myrepo
export TAG=latest

curl -u $USERNAME:$PASSWORD -X "DELETE" https://cloud.docker.com/v2/repositories/$ORGANIZATION/$REPOSITORY/tags/$TAG/

这将删除一个标记...

在我的例子中,我有微服务,那么仓库=微服务名称...

如果我想删除所有较旧的图像,我可以在此迭代...

票数 5
EN

Stack Overflow用户

发布于 2019-12-14 18:36:23

您可以从Docker Hub <REPO>中删除任何<TAG>,方法是使用Docker Hub网站(位于https://hub.docker.com/v2/)的curl和REST API,而不是Docker Hub注册表(位于docker.io)。因此,如果您不怕使用未记录的API,目前可以使用以下方法:

代码语言:javascript
复制
curl -i -X DELETE \
  -H "Accept: application/json" \
  -H "Authorization: JWT $HUB_TOKEN" \
  https://hub.docker.com/v2/repositories/<HUB_USERNAME>/<REPO>/tags/<TAG>/

HUB_TOKEN是使用JSON HTTP header传递的JSON Web令牌,可以通过将您的证书以JSON格式发布到/v2/users/login/ Docker Hub端点来获得:

代码语言:javascript
复制
HUB_TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${HUB_USERNAME}'", "password": "'${HUB_PASSWORD}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
echo $HUB_TOKEN
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44209644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档