registry私有仓库空间清理

该脚本`registry_garbage_collect.sh`用于清理Docker Registry中的历史镜像,以释放磁盘空间。它首先将仓库设置为只读,然后执行垃圾回收,最后恢复为可写状态,并重启仓库组件。配置文件`config.yml`中启用了删除功能,维护期间仓库短暂设置为只读模式。

docker registry中堆积的历史镜像数量极多,磁盘空间告急,为此,有必要定期做镜像的清理,并释放镜像占用的存储空间。

 查看脚本registry_garbage_collect.sh

# cat registry_garbage_collect.sh
#!/bin/bash
set -e

#v2仓库镜像名称
dockerConfPath=/data/install/app/registry/configyml
configFile=${dockerConfPath}/config.yml

#修改仓库属性设置为只读
ansible registry192.168.246.10 -m shell -a "sed -i '14s/enabled: false/enabled: true/' ${configFile}"
ansible registry192.168.246.11 -m shell -a "sed -i '14s/enabled: false/enabled: true/' ${configFile}"

#重启仓库组件
ansible registry192.168.246.10 -m shell -a "docker restart  pro-registry"
ansible registry192.168.246.11 -m shell -a "docker restart  pro-registry"

#执行仓库垃圾回收
ansible registry192.168.246.10 -m shell -a "docker exec pro-registry registry garbage-collect /etc/docker/registry/config.yml"

#修改仓库属性设置为可写
ansible registry192.168.246.10 -m shel
### 如何批量删除私有 Docker Registry 中的镜像 为了批量删除私有 Docker Registry 中的镜像,可以采用脚本化的方式来进行操作。由于 Docker Registry API 提供了管理镜像的功能,因此可以通过调用这些API来实现自动化处理。 #### 使用 `curl` 和 Shell 脚本来批量删除镜像 首先,获取要删除的镜像列表。这通常涉及到查询仓库中的所有标签(tag),并决定哪些需要被移除: ```bash #!/bin/bash REGISTRY="registry.example.com" REPO="myrepo" # 获取所有的tags TAGS=$(curl -s https://${REGISTRY}/v2/${REPO}/tags/list | jq -r '.tags[]') for tag in ${TAGS}; do echo "Deleting image: ${tag}" # 删除指定tag的manifest curl -X DELETE \ -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \ "https://${REGISTRY}/v2/${REPO}/manifests/${tag}" done ``` 上述脚本通过遍历给定仓库下的所有标签,并逐一发送 HTTP DELETE 请求到相应的 manifest URL 来完成删除动作[^1]。 需要注意的是,在执行此命令之前应当确认目标Registry支持 v2 版本的API接口,并且客户端已经正确配置了认证信息以便能够访问受保护的资源。 另外,如果希望更精细地控制哪些镜像应该被保留或删除,则可以在循环体内加入额外逻辑判断条件,比如基于时间戳或者其他元数据属性筛选特定范围内的版本进行清理工作。 对于某些特殊场景下可能还需要考虑如何安全有效地备份重要数据以及防止误删等问题;建议先在一个测试环境中验证整个流程后再应用于生产环境。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值