You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API定期删除Artifactory Docker仓库中的所有镜像

解决Artifactory Docker仓库定期清空的问题

直接用Artifactory REST API清空整个仓库

你有仓库的全权限,直接用Artifactory的删除API就能一次性清空整个Docker仓库,这是最直接的方式:

curl命令示例

curl -X DELETE -u "你的用户名:你的密码/API密钥" "https://artifactory.MYCOMPANY.com/artifactory/api/storage/REPO-docker-local?deleteAll=1"
  • 凭据部分:可以用账号密码,也可以用Artifactory个人设置里生成的API密钥,格式统一为用户名:密钥/密码
  • deleteAll=1 参数必须添加,否则只会删除空文件夹,无法清理镜像的实际内容

配置每月定时任务

把上面的命令做成脚本,添加到Cron实现每月自动执行:

  1. 创建清理脚本(比如命名为clean_docker_repo.sh):
#!/bin/bash
# Artifactory Docker仓库每月清理脚本
curl -X DELETE -u "your_user:your_api_key" "https://artifactory.MYCOMPANY.com/artifactory/api/storage/REPO-docker-local?deleteAll=1"
  1. 给脚本添加执行权限:
chmod +x clean_docker_repo.sh
  1. 配置Cron任务:
    运行crontab -e,添加一行规则(示例为每月1号凌晨2点执行):
0 2 1 * * /脚本的绝对路径/clean_docker_repo.sh >> /var/log/artifactory_cleanup.log 2>&1

日志文件可以帮你排查任务执行是否成功。

可选:按需删除(如果后续不需要全删)

要是之后需要保留部分镜像,比如只删除旧版本,可以先用Artifactory的AQL(Artifactory Query Language)查询出目标镜像的路径,再逐个删除:

用AQL查询仓库内的镜像文件夹

curl -X POST -u "你的用户名:你的凭据" "https://artifactory.MYCOMPANY.com/artifactory/api/search/aql" -H "Content-Type: text/plain" -d '
items.find({
  "repo": "REPO-docker-local",
  "type": "folder"
})
'

拿到路径后,调用删除接口移除单个镜像:

curl -X DELETE -u "你的用户名:你的凭据" "https://artifactory.MYCOMPANY.com/artifactory/api/storage/REPO-docker-local/目标镜像路径"

内容的提问来源于stack exchange,提问作者ikamen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:57:22