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

cod*_*efx 6 docker

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

mir*_*phd 11

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

\n
curl -i -X DELETE \\\n  -H "Accept: application/json" \\\n  -H "Authorization: JWT $HUB_TOKEN" \\\n  https://hub.docker.com/v2/repositories/<HUB_USERNAME>/<REPO>/tags/<TAG>/\n
Run Code Online (Sandbox Code Playgroud)\n

HUB_TOKEN是使用 HTTP 标头传递的 JSON Web 令牌,可以通过将 JSON 格式的凭证发布到Docker Hub 端点Authorization来获取它:/v2/users/login/

\n
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)\n
Run Code Online (Sandbox Code Playgroud)\n

2FA => 个人访问令牌

\n

请注意,当您启用 2FA 时,您\xe2\x80\x99 将需要个人访问令牌(使用 2FA 时 API 接受的唯一密码)。

\n


Ric*_*nco 6

使用Docker Hub API,如下所述:https: //docs.docker.com/v1.7/reference/api/docker-io_api/#delete-a-user-repository

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

curl -X DELETE -u "$user:$pass" https://index.docker.io/v1/repositories/$namespace/$reponame/
Run Code Online (Sandbox Code Playgroud)

更换$user$pass与泊坞窗枢纽,分别为您的用户名和密码; 和替换$namespace(在我的情况下它是相同的$user)和$reponame图像名称(在我的情况下是test).

  • 这将删除完整图像。如何删除特定标签? (2认同)

Mar*_*gas 5

Dockerhub 有一个 REST 后端,然后你可以使用它......它只是跳过 FE......

例如:

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/
Run Code Online (Sandbox Code Playgroud)

这将删除一个标签...

就我而言,我有微服务,然后 REPOSITORY = 微服务名称...

如果我想删除所有旧图像,我可以迭代这个....

  • @DavidParks 先生让您检查一下您是否在正确的组织中?另外,请检查您是否有足够的权限... ‍♂️ 可能是您对特定存储库没有足够的权限... (2认同)
  • 如果有后端 API 就好了。看起来 API 可能已更改。该解决方案不再有效。至少,我没有让它发挥作用。使用用户名和密码的curl删除请求正在执行,没有错误,但服务器没有响应 (2认同)