docker registry删除远程仓库镜像实现方式

 更新时间:2025年09月24日 09:04:37   作者:CN-FuWei  
文章介绍如何清理Docker Registry中堆积的镜像,通过配置删除功能、启动容器、查看镜像信息并执行删除操作,同时提供基于web-ui的管理方案,优化存储空间使用

当集群内使用registry做为镜像仓库时,镜像长期积累会导致本地和远程仓库镜像占用大量的磁盘空间,这时我们需要对一些无用镜像进行定期清理。 

一、部署registry

1.1 开启删除功能

从registry容器里面将/etc/docker/registry/config.yml复制出来:

docker cp registry:/etc/docker/registry/config.yml ./config.yml

默认config.yml内容如下:

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

设置config.yml,在storage节点添加delete配置设置为true。

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: 31234567891011121314151617181920

1.2 启动registry容器

docker run -it -d --name registry -p 5000:5000 -v /opt/registry/:/var/lib/registry -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml --restart=always registry

1.3 查看镜像名称

curl -s -XGET localhost:5000/v2/_catalog | python -mjson.tool

1.4 查看镜像tag

curl -s XGET localhost:5000/v2/test/tags/list|jq

1.5 查看镜像reversion

ll /opt/registry/docker/registry/v2/repositories/test/_manifests/revisions/sha256/

#或者通过API获取镜像digest值
curl -i -sS -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' 'http://localhost:5000/v2/test/manifests/latest'

1.6 删除镜像

curl -X DELETE localhost:5000/v2/test/manifests/sha256:703c4d81c860a7420749f6666aac348e1b62a07062865dfb91d4c30819483e70

1.7 垃圾回收

docker exec -it 9658cbb01b13 registry garbage-collect /etc/docker/registry/config.yml

1.8 清除目录

rm -rf /var/lib/docker/volumes/78c1937e0a8c810c8e4249d0245b4777ac4e66428519376712d99b811e559758/_data/docker/registry/v2/repositories/test_his_platform_global_api_2022-02-18-02-46

二、web-ui管理registry

docker hub 地址:https://hub.docker.com/r/hyper/docker-registry-web

2.1 部署docker-registry-web

docker pull hyper/docker-registry-web

(此配置中的任何属性都可能被环境变量覆盖,例如属性registry.auth.enabled将变为REGISTRY_AUTH_ENABLED)

registry:
  # Docker registry url
  url: http://10.0.0.100:5000/v2
  # Docker registry fqdn
  name: localhost:5000
  # To allow image delete, should be false
  readonly: false
  auth:
    # Disable authentication
    enabled: false

使用 docker 运行

docker run -p 5000:5000 --name registry -d registry:2
docker run -it -p 8083:8080 --name registry-web --link registry -v $(pwd)/config.yml:/conf/config.yml:ro hyper/docker-registry-web

访问http://localhost:8083

2.2 使用web ui删除镜像

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何搭建配置Docker私有仓库的实现步骤

    如何搭建配置Docker私有仓库的实现步骤

    本文主要介绍了如何搭建配置Docker私有仓库的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 树莓派安装Docker的方法步骤

    树莓派安装Docker的方法步骤

    这篇文章主要介绍了树莓派安装Docker的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • IDEA整合Docker的实现步骤

    IDEA整合Docker的实现步骤

    本文主要介绍了IDEA整合Docker的实现步骤,主要设置了远程连接,插件以及配置信息等,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • docker 部署prometheus+grafana的过程详解

    docker 部署prometheus+grafana的过程详解

    这篇文章主要介绍了docker 部署prometheus+grafana的过程,本文通过示例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Docker 镜像和容器的区别详解

    Docker 镜像和容器的区别详解

    这篇文章主要介绍了Docker 镜像和容器的区别详解的相关资料,需要的朋友可以参考下
    2016-10-10
  • docker<容器数据卷-v>对容器内数据持久化详解(备份)

    docker<容器数据卷-v>对容器内数据持久化详解(备份)

    容器的数据持久化主要是指宿主机与容器,以及容器与容器之间进行数据交互,下面这篇文章主要给大家介绍了关于docker<容器数据卷-v>对容器内数据持久化的相关资料,需要的朋友可以参考下
    2023-03-03
  • Docker搭建Redis Cluster集群的教程详解

    Docker搭建Redis Cluster集群的教程详解

    这篇文章主要为大家详细介绍了Docker搭建Redis Cluster集群的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的可以参考下
    2024-03-03
  • docker常用命令整理汇总(新手必备!)

    docker常用命令整理汇总(新手必备!)

    这篇文章主要给大家介绍了关于docker常用命令的相关资料,包括docker的启动、停止、重启、创建、查看等等,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Windows10安装WSL2 Ubuntu20.04并设置docker环境的方法

    Windows10安装WSL2 Ubuntu20.04并设置docker环境的方法

    这篇文章主要介绍了Windows10安装WSL2 Ubuntu20.04并设置docker环境的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 解析docker妙用SpringBoot构建微服务实战记录

    解析docker妙用SpringBoot构建微服务实战记录

    Spring Boot 是 Spring 开源组织的子项目,是 Spring 组件一站式解决方案,本文通过详细案例给大家解析docker妙用SpringBoot构建微服务实战记录,感兴趣的朋友跟随小编一起看看吧
    2021-11-11

最新评论