我创建了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
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>/\nRun Code Online (Sandbox Code Playgroud)\n这HUB_TOKEN是使用 HTTP 标头传递的 JSON Web 令牌,可以通过将 JSON 格式的凭证发布到Docker Hub 端点Authorization来获取它:/v2/users/login/
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)\nRun Code Online (Sandbox Code Playgroud)\n2FA => 个人访问令牌
\n请注意,当您启用 2FA 时,您\xe2\x80\x99 将需要个人访问令牌(使用 2FA 时 API 接受的唯一密码)。
\n使用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).
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 = 微服务名称...
如果我想删除所有旧图像,我可以迭代这个....
| 归档时间: |
|
| 查看次数: |
3548 次 |
| 最近记录: |