news 2026/2/10 7:37:53

Docker Registry以及Docker-Registry-UI部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker Registry以及Docker-Registry-UI部署

Docker Registry以及Docker-Registry-UI部署

  • 前言
  • 一、下载镜像并启动
    • 1.1 docker快速启动
    • 1.2 docker-compose启动
  • 二、查看registry版本
  • 三、上传镜像到registry
  • 四、删除镜像
    • 4.1 配置registry允许删除镜像
    • 4.2 删除镜像
      • 4.2.1 命令删除
      • 4.2.2 Registry管理界面删除

前言

部署Docker Registry之前先部署Docker
参考Docker、Docker Compose部署
Docker-Registry-UI(Registry管理界面)github项目地址:https://github.com/Joxit/docker-registry-ui


一、下载镜像并启动

# 注意:V3和V2版本对应的配置文件路径不一致# 下载最新版本镜像(目前是V3版本)dockerpull registry# 下载V2版本镜像(2.8.3版本)dockerpull registry:2# 下载Registry管理界面镜像(不需要界面则不需要下载该镜像)dockerpull joxit/docker-registry-ui:main# 创建数据目录mkdir/opt/registry/data

1.1 docker快速启动

# 启动registrydockerrun -d -p5000:5000\--name=registry\--restart=always\-v /opt/registry/data:/var/lib/registry\# 启用删除功能(V3版本配置文件默认开启,可以不需要配置;V2版本需要删除功能就需要开启,或者修改配置文件开启)-eREGISTRY_STORAGE_DELETE_ENABLED='true'\# 如果需要启动Registry管理界面,需要如下配置-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin='[http://192.168.1.114:5001]'\-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods='[HEAD,GET,OPTIONS,DELETE]'\-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials='[true]'\-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers='[Authorization,Accept,Cache-Control]'\-e REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers='[Docker-Content-Digest]'\registry# 启动Registry管理界面dockerrun -d -p5001:80\--name registry-ui\--restart=always\--envSINGLE_REGISTRY=true\--envREGISTRY_TITLE='Docker Registry UI'\--envREGISTRY_URL=http://192.168.1.114:5000\--envDELETE_IMAGES=true\--envSHOW_CONTENT_DIGEST=true\--envSHOW_CATALOG_NB_TAGS=true\--envTAGLIST_PAGE_SIZE=100\--envCATALOG_ELEMENTS_LIMIT=1000\--envREGISTRY_SECURED=false\joxit/docker-registry-ui:main ·SINGLE_REGISTRY=true# true:UI只连接一个Docker Registry;false:可以配置多个Registry·REGISTRY_TITLE='Docker Registry UI'# UI标题·REGISTRY_URL=http://192.168.1.114:5000# Docker Registry 的地址·DELETE_IMAGES=true# 允许用户在UI中删除镜像·SHOW_CONTENT_DIGEST=true# 在UI中显示内容摘要(digest)·SHOW_CATALOG_NB_TAGS=true# 在UI中显示每个镜像的标签数量·TAGLIST_PAGE_SIZE=100# 设置标签列表的页面大小为100,控制每页显示的标签数量·CATALOG_ELEMENTS_LIMIT=1000# 设置目录元素的限制为1000,控制在UI中显示的最大元素数量·REGISTRY_SECURED=false# false:Docker Registry不使用HTTPS;true:Registry使用HTTPS

1.2 docker-compose启动

# 创建 docker-compose.ymlcd/opt/registryvimdocker-compose.yml version:'3.8'services: registry: image: registry container_name: registry restart: always ports: -"5000:5000"volumes: - /opt/registry/data:/var/lib/registry environment:# 启用删除功能(V3版本配置文件默认开启,可以不需要配置;V2版本需要删除功能就需要开启,或者修改配置文件开启)REGISTRY_STORAGE_DELETE_ENABLED:'true'# 如果需要启动Registry管理界面,需要如下配置REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin:'[http://192.168.1.114:5001]'REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods:'[HEAD,GET,OPTIONS,DELETE]'REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials:'[true]'REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers:'[Authorization,Accept,Cache-Control]'REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers:'[Docker-Content-Digest]'# Registry管理界面registry-ui: image: joxit/docker-registry-ui:main container_name: registry-ui restart: always ports: -5001:80 environment:# true:UI只连接一个Docker Registry;false:可以配置多个Registry-SINGLE_REGISTRY=true# UI标题-REGISTRY_TITLE=Docker Registry UI# Docker Registry 的地址-REGISTRY_URL=http://192.168.1.114:5000# 允许用户在UI中删除镜像+-DELETE_IMAGES=true# 在UI中显示内容摘要(digest)-SHOW_CONTENT_DIGEST=true# 在UI中显示每个镜像的标签数量-SHOW_CATALOG_NB_TAGS=true# 设置标签列表的页面大小为100,控制每页显示的标签数量-TAGLIST_PAGE_SIZE=100# 设置目录元素的限制为1000,控制在UI中显示的最大元素数量-CATALOG_ELEMENTS_LIMIT=1000# false:Docker Registry不使用HTTPS;true:Registry使用HTTPS-REGISTRY_SECURED=false# 启动服务docker-composeup -d

二、查看registry版本

# 查看registry版本:docker exec -it <container-name> registry --versiondockerexec-it registry registry --version# V3版本输出:registry github.com/distribution/distribution/v3 3.0.0# V2版本输出:registry github.com/docker/distribution 2.8.3

三、上传镜像到registry

vim/etc/docker/daemon.json# 添加安全访问权限{"insecure-registries":["http://192.168.1.114:5000"]}# 重启Dockersystemctl restartdocker# 登录registry仓库dockerlogin192.168.1.114:5000# docker下载nginx镜像并上传到registrydockerpull nginxdockertag nginx:latest192.168.1.114:5000/nginx:latestdockerpush192.168.1.114:5000/nginx:latest# 查看 repository 列表curlhttp://192.168.1.114:5000/v2/_catalog# 查看镜像 tag 列表:http://ip:5000/v2/<image_name>/tags/listcurlhttp://192.168.1.114:5000/v2/nginx/tags/list

四、删除镜像

注:通过Docker-Registry-UI页面删除镜像,也需要手动进行垃圾回收释放存储空间

4.1 配置registry允许删除镜像

如果registry启动时添加了环境变量:启用删除功能(REGISTRY_STORAGE_DELETE_ENABLED='true'),则忽略此步骤

# 查找配置文件# V3版本配置文件路径:/etc/distribution/config.yml# V2版本配置文件路径:/etc/docker/registry/config.ymldockerexec-it registryfind/ -name"config.yml"# 进入容器内部dockerexec-it registry /bin/sh# V3版本# 查看storage.delete.enabled: true是否配置(默认已配置)cat/etc/distribution/config.yml version:0.1log: level: debug fields: service: registry environment: development storage: delete: enabled:truecache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry tag: concurrencylimit:5http: addr: :5000 debug: addr: :5001 prometheus: enabled:truepath: /metrics health: storagedriver: enabled:trueinterval: 10s threshold:3# V2版本# 添加storage.delete.enabled: true(默认未配置)vi/etc/docker/registry/config.yml version:0.1log: fields: service: registry storage: delete: enabled:true# 添加cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000 headers: X-Content-Type-Options:[nosniff]health: storagedriver: enabled:trueinterval: 10s threshold:3# 重启registry容器dockerrestart registry# 如果使用docker compose启动,则使用docker-compose restart重启#docker-compose restart

4.2 删除镜像

4.2.1 命令删除

# 查询要删除镜像tag:http://192.168.1.114:5000/v2/<image_name>/tags/listcurlhttp://192.168.1.114:5000/v2/nginx/tags/list# 查询镜像的Digest:GET http://ip:5000/v2/<image_name>/manifests/<tag># 必须在 Header 中指定 Accept 为 v2 格式,否则可能获取到错误的 Digest。curl--header"Accept: application/vnd.docker.distribution.manifest.v2+json"-I -X GET http://192.168.1.114:5000/v2/nginx/manifests/latest# 输出如下:HTTP/1.1200OK Content-Length:1778Content-Type: application/vnd.docker.distribution.manifest.v2+json Docker-Content-Digest: sha256:a6dd519f4cc2f69a8f049f35b56aec2e30b7ddfedee12976c9e289c07b421804 Docker-Distribution-Api-Version: registry/2.0 Etag:"sha256:a6dd519f4cc2f69a8f049f35b56aec2e30b7ddfedee12976c9e289c07b421804"Date: Mon,26Jan202617:24:49 GMT# 调用registry接口删除镜像curl-I -X DELETE http://192.168.1.114:5000/v2/nginx/manifests/sha256:a6dd519f4cc2f69a8f049f35b56aec2e30b7ddfedee12976c9e289c07b421804# 输出如下:HTTP/1.1202Accepted Docker-Distribution-Api-Version: registry/2.0 Date: Tue,27Jan202609:35:07 GMT Content-Length:0# 执行垃圾回收,释放存储空间:docker exec -it <镜像仓库容器ID/名称> /bin/registry garbage-collect <镜像仓库配置文件># V3版本dockerexec-it registry bin/registry garbage-collect /etc/distribution/config.yml# V2版本dockerexec-it registry bin/registry garbage-collect /etc/docker/registry/config.yml

4.2.2 Registry管理界面删除

# 执行垃圾回收,释放存储空间:docker exec -it <镜像仓库容器ID/名称> /bin/registry garbage-collect <镜像仓库配置文件># V3版本dockerexec-it registry bin/registry garbage-collect /etc/distribution/config.yml# V2版本dockerexec-it registry bin/registry garbage-collect /etc/docker/registry/config.yml
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 6:28:44

探索成熟量产伺服控制器方案:以汇川ISP500伺服为例

成熟量产伺服控制器方案 汇川ISP500伺服&#xff0c;提供DSP程序和原理图&#xff0c;代码完整&#xff0c;学习工业代码的范例&#xff0c;含惯量识别&#xff0c;电机参数识别&#xff0c;PWM死区补偿&#xff0c;运动插补等功能。 在工业自动化领域&#xff0c;伺服控制器扮…

作者头像 李华
网站建设 2026/2/10 5:24:39

Compose 中的状态可变性体系

您说得非常对&#xff01;您的直觉是正确的。Compose 确实有类似 Kotlin 集合的可变/不可变概念&#xff0c;但是实现方式不同。 1. Compose 中的状态可变性体系 Kotlin 集合的类比&#xff1a; // Kotlin 集合 val immutableList: List<String> listOf("A"…

作者头像 李华
网站建设 2026/2/8 1:50:28

开题报告 springboot和vue毕业生信息收集系统

目录系统背景技术选型核心功能创新点预期成果项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作系统背景 毕业生信息收集系统旨在简化高校对学生毕业去向、就业状态等数据的统计与管理。传统方式依赖Excel或…

作者头像 李华
网站建设 2026/2/9 12:08:53

计算机毕业设计springboot壁纸网站 基于SpringBoot的高清壁纸资源分享平台的设计与实现 SpringBoot+MySQL构建的个性化桌面壁纸管理系统

计算机毕业设计springboot壁纸网站32zp4 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 壁纸&#xff0c;是数字生活第一眼看到的风景。随着屏幕分辨率不断攀升&#xff0c;用…

作者头像 李华
网站建设 2026/2/7 1:56:48

让AI帮你消灭一整类重复劳动 - Skill能力模块化实战指南,从小白到高手的进阶之路

文章探讨了如何通过AI和Skill能力模块化减少编程中的重复劳动。作者提出将最佳实践、流程和规则封装成可复用的能力单元&#xff0c;让AI从一次性工具进化为理解业务的智能助手。文章详细介绍了DAO层CRUD、基础服务和Git工作流等Skill实现&#xff0c;指出未来开发者应专注于问…

作者头像 李华
网站建设 2026/2/7 21:39:55

开题报告 springboot和vue考勤管理系统

目录系统概述技术栈说明核心功能模块创新点与优势应用场景项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作系统概述 SpringBoot和Vue考勤管理系统是一款基于前后端分离架构的现代化管理工具&#xff0c;后…

作者头像 李华