尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

基于Registry搭建docker加速镜像服务

基于Registry搭建docker加速镜像服务
📅 发布时间:2026/6/20 15:47:54
基于 Registry 搭建 Docker 加速镜像服务旨在解决 docker.io 网络访问不畅及多服务器拉取镜像时外网负载过重的问题。

背景

  • 场景:
    1. docker.io网络访问不通畅,服务器难以拉取镜像
    2. 多个服务器拉取相同镜像时,外网连接负载较重
  • 目的:
    1. 当存在能够访问docker.io的客户端时,可通过该客户端上传镜像至内网仓库,回避网络问题
    2. 通过搭建内网docker仓库,令服务器直接从内网拉取镜像,缓解外网负载
  • 条件:
    1. 能够获取Registry镜像
    2. 可选:具有Nginx服务,具有内网域名,具有内网域名对应的SSL证书

准备

  • 若具有Nginx服务,具有内网域名,具有内网域名对应的SSL证书,则可进一步优化使用方式:
    1. 在Nginx中新建转发服务,<自定义分配的url>指向<服务器端ip>:<Registry端口号>
    2. 配置对应的SSL
    3. 将签发该证书的CA证书添加至客户端/etc/docker/certs.d/<自定义分配的url>/ca.crt
  • 若不具有SSL证书且无法解决http安全问题,则在客户端修改/etc/docker/daemon.json,添加如下内容
{"insecure-registries": ["<服务器端ip>:<Registry端口号>"]
}
  • 重启docker

执行

  • 服务器端docker-compose.yml配置如下
version: '3'services:registry-docker:image: registry:2restart: unless-stoppedenvironment:REGISTRY_PROXY_REMOTEURL: https://registry-1.docker.io#REGISTRY_PROXY_USERNAME: <dockerhub username>#REGISTRY_PROXY_PASSWORD: <dockerhub password>REGISTRY_STORAGE_DELETE_ENABLED: "true"REGISTRY_HTTP_SECRET: "<通过openssl rand -hex 32生成的随机密钥>"# 每个客户端都需要认证才能访问#REGISTRY_AUTH: htpasswd#REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm#REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswdports:- 5000:5000volumes:- <Registry的数据目录>:/var/lib/registry#- <Registry的认证文件目录>:/auth  # 挂载认证文件
  • 备注:
    1. 如果认为该服务可能受到恶意攻击,可以启用Registry的认证配置
      1. 取消掉docker-compose.yml中关于认证的注释
      2. 服务器端需执行
        • docker run --rm --entrypoint htpasswd httpd:2 -Bbn <username> <password> >> /path/to/registry/auth/htpasswd
      3. 将客户端的认证文件添加至服务器端
      4. 客户端的docker在进行pull前,需要先进行登录:docker login <自定义分配的url>,输入账号密码
      5. 除非执行docker logout,否则会一直登录

测试

在客户端进行测试

# 拉取测试镜像并打标签
docker pull hello-world
docker tag hello-world <服务器ip>:<Registry端口>/my-hello-world# 尝试推送至服务器端的Registry
# 不进行Nginx转发时,执行这一行,会出现http安全问题
docker push <服务器ip>:<Registry端口>/my-hello-world
# 进行Nginx转发时,执行这一行
docker push <自定义分配的url>/my-hello-world# 删除本地镜像
docker rmi <服务器端ip>:<Registry端口号>/my-hello-world
docker rmi hello-world# 尝试从服务器端拉取镜像
# 不进行Nginx转发时,执行这一行
docker pull <服务器ip>:<Registry端口>/my-hello-world
# 进行Nginx转发时,执行这一行
docker pull <自定义分配的url>/my-hello-world

Registry的API

  • 查询镜像目录:curl -u <username>:<passwd> -X GET <自定义分配的url>/v2/_catalog
  • 查询指定镜像的版本:curl -u <username>:<passwd> -X GET <自定义分配的url>/v2/<image>/tags/list

参考

https://bitseqtech.com/archives/a12w1Mbg

相关新闻

  • 基础数学拾遗
  • 【ROS2学习笔记】话题通信篇:话题通信项目实践——系统状态监测与可视化工具 - 实践
  • springCloud打包时根目录配置和公共包打包配置 - br

最新新闻

  • DeepSeek LeetCode 3336. 最大公约数相等的子序列数量 Java实现
  • 2026南通漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 2026李沧区专业的管道疏通公司推荐榜 - 品牌排行榜
  • 思维链与结构化 Prompt:大模型对话工程的深层优化实践
  • 408计算机组成原理思维导图|考研408计算机网络真题|考研408计算机网络应用题
  • 2026南昌漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号