registry/harpor私有镜像清理
  eu1au7xtjQ6J 2023年11月13日 40 0

背景:分享今天遇到的一个私有仓库磁盘100%,但是docker images 查看镜像,已经清理到只剩10个左右的可见镜像了。但磁盘还是90%多,10个镜像总和大小不到3个G,怎么会把500G的磁盘沾满呢?经过网上一通查询资料,才知道构建的历史镜像覆盖后,并没有删除镜像层。

下面进入正题 在网上找到一个清理脚本,具体的网址找不到了,翻阅太多帖子了。

1、#先下载脚本到/usr/local/bin/目录下

curl https://raw.githubusercontent.com/hushuai86/docker-delete/master/docker-delete-2.0.sh | sudo tee /usr/local/bin/docker-delete >/dev/null

2、#赋予可执行权限

chmod a+x /usr/local/bin/docker-delete

3、#私有库镜像存储目录路径全局环境变量(该路径就是运行私有库容器时,用-v 命令将私有库容器内 /var/lib/registry目录挂载到本机的路径) #例: /opt/data/registry是我运行容器时私有库镜像存储目录挂载到本地的目录 echo "export DOCKER_REGI

STRY_DIR=/opt/data/registry" >>/etc/profile

4、#运行私有库容器ID全局环境变量设置(正在运行的私有库容器的 ID) #例: 89b9b3c9054ay是我的私有库库容器的id echo

"export DOCKER_REGISTRY_CONTAINER_ID=89b9b3c9054a" >>/etc/profile

5、#使配置生效

source /etc/profile

#然后就可以使用docker-delete命令了

#在执行清理命令前需要修改registry的配置文件,私有库默认是不支持删除镜像的

cat config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
  delete:   #添加
    enabled: true   #添加
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

####配置文件地址:容器内/etc/registry/config.yml 或者 /etc/docker/registry/config.yml###

命令参数:

/usr/local/bin/docker-delete --help
Usage: 
 docker-delete -sr                                   [description: show all image repositories] 
 docker-delete -st <image repository>                [description: show all tags of specified image repository] 
 docker-delete -dr <image repository>                [description: delete specified image repository ] 
 docker-delete -dr -all                              [description: delete all image repositories ]
 docker-delete -dt <image repository> <image tag>    [description: description: delete specified tag of specified image repository ] 
 docker-delete -dt <image repository>                [description: description: delete all tags of specified image repository 


删除清理镜像步骤

1、#查看所有的镜像列表

[root@node8 ~]# docker-delete -sr
zddz-examine
zddz-notice
gddx-examine
zddz-school
gddx-notice
gddx-school
fastdfs-service
gdd-zuul
2、#直接删除zuul镜像,包括了这个镜像的所有tag

docker-delete -dr gdd-zuul

3、##根据tag删除对应的镜像,先查看该镜像的所有tag

docker-delete -st gdd-zuul
v2.0
v2.1
v2.2

4、# 再删除想删除的tag

docker-delete -dt gdd-zuul v2.0

5、#我们再查看镜像的所有tag ,v2.0 就没有

docker-delete -st gdd-zuul
v2.1


当然最后,清理完想清理的镜像后,磁盘占用空间肯定是大幅度减少啦!

好啦,今天的分享就到此为止吧,希望对您有用。

兴趣是最好的老师,爱好是永远的朋友。

我是半路出家的老王爱运维。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   30   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   31   0   0 Docker
  DnoStTHsc0vp   2023年12月11日   24   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   97   0   0 Dockercentosbash
  wwLZeziuqjLR   2023年12月07日   33   0   0 Dockercentos
  9JCEeX0Eg8g4   2023年12月11日   23   0   0 mysql配置文件