本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

regsync 是一款 OCI 兼容容器注册表同步工具,用于实现镜像仓库之间的自动同步与更新。其核心功能是根据配置规则将源注册表中的镜像(或仓库)同步至目标注册表,适用于企业内部镜像仓库管理、多区域镜像分发、第三方依赖镜像备份等场景。
image)和整个仓库(repository)两种同步模式,满足不同规模的同步需求。regsync 提供以下镜像标签,用于区分版本和基础镜像类型:
| 标签格式 | 说明 |
|---|---|
regclient/regsync:latest | 最新稳定版,基于 scratch 镜像(无 shell 和凭据助手,最小体积) |
regclient/regsync:alpine | 最新稳定版,基于 alpine 镜像(含 AWS 和 Google Cloud 凭据助手) |
regclient/regsync:edge | 开发版,对应 main 分支最新提交,基于 scratch 镜像 |
regclient/regsync:edge-alpine | 开发版,对应 main 分支最新提交,基于 alpine 镜像 |
regclient/regsync:$ver | 指定稳定版本(如 v0.7.1),基于 scratch 镜像;同时自动关联主版本(如 v0)和次版本(如 v0.7)标签 |
regclient/regsync:$ver-alpine | 指定稳定版本,基于 alpine 镜像;版本关联规则同 $ver 标签 |
注意:scratch 镜像不含 shell 和凭据助手,仅适用于简单同步场景;alpine 镜像基于发布时的最新 alpine 版本构建,包含 AWS 和 Google Cloud 的凭据助手,适用于云环境部署。
首先创建本地 Docker 注册表用于验证同步功能:
# 创建专用网络(用于 regsync 与注册表通信) docker network create registry # 启动注册表容器(支持删除操作和禁用验证,便于测试) docker run -d --restart=unless-stopped --name registry --net registry \ -e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \ -e "REGISTRY_STORAGE_DELETE_ENABLED=true" \ -e "REGISTRY_VALIDATION_DISABLED=true" \ -v "registry-data:/var/lib/registry" \ -p "127.0.0.1:5000:5000" \ registry:2
创建 regsync.yml 配置文件,定义同步规则(示例配置同步 Docker Hub 镜像至本地注册表):
version: 1 # 配置文件版本(当前仅支持 1) creds: # 注册表凭据列表 - registry: registry:5000 # 目标注册表(本地测试注册表) tls: disabled # 本地注册表默认不启用 TLS,需禁用 scheme: http # 使用 HTTP 协议 - registry: docker.io # 源注册表(Docker Hub) user: "{{env \"HUB_USER\"}}" # 从环境变量获取 Docker Hub 用户名 pass: "{{file \"/var/run/secrets/hub_token\"}}" # 从文件获取 Docker Hub 密码或访问令牌 defaults: # 全局默认配置(可被同步规则局部覆盖) ratelimit: # 速率限制 min: 100 # 最小剩余请求数,低于此值时触发限流 retry: 15m # 限流后重试间隔 parallel: 2 # 并行同步任务数 interval: 60m # 定时同步间隔(服务模式下生效) backup: "bkup-{{.Ref.Tag}}" # 目标镜像更新前的备份标签格式(Go 模板语法) sync: # 同步规则列表 # 同步单镜像 - source: busybox:latest # 源镜像(Docker Hub 的 busybox:latest) target: registry:5000/library/busybox:latest # 目标镜像(本地注册表) type: image # 同步类型:单镜像 # 同步仓库(筛选标签) - source: alpine # 源仓库(Docker Hub 的 alpine) target: registry:5000/library/alpine # 目标仓库(本地注册表) type: repository # 同步类型:仓库 tags: # 标签筛选规则 allow: # 允许同步的标签(支持正则表达式) - "latest" # 最新标签 - "3" # 主版本 3 - "3\\.\\d+" # 次版本 3.x(如 3.18、3.19 等) # 同步工具镜像 - source: regclient/regctl:latest # 源镜像(Docker Hub 的 regctl:latest) target: registry:5000/regclient/regctl:latest # 目标镜像(本地注册表) type: image # 同步类型:单镜像
创建 hub_token 文件,存入 Docker Hub 密码或个人访问令牌(PAT,推荐使用 PAT 并限制权限):
echo "your_docker_hub_password_or_pat" > hub_token chmod 600 hub_token # 限制文件权限,防止敏感信息泄露
使用 once 模式运行 regsync,执行单次同步验证配置:
docker run -it --rm --net registry \ -v "$(pwd)/regsync.yml:/home/appuser/regsync.yml:ro" \ # 挂载配置文件 -v "$(pwd)/hub_token:/var/run/secrets/hub_token:ro" \ # 挂载凭据文件 -e "HUB_USER=your_docker_hub_username" \ # 传入 Docker Hub 用户名环境变量 regclient/regsync:latest -c /home/appuser/regsync.yml once # 指定配置文件,运行一次性同步
说明:命令将从 Docker Hub 拉取配置的源镜像并同步至本地注册表。若 Docker Hub 速率限制(免费用户有拉取限制),工具会根据
ratelimit配置自动限流和重试。
确认一次性同步正常后,部署 regsync 为后台服务,启用定时同步:
docker run -d --restart=unless-stopped --name regsync --net registry \ -v "$(pwd)/regsync.yml:/home/appuser/regsync.yml:ro" \ -v "$(pwd)/hub_token:/var/run/secrets/hub_token:ro" \ -e "HUB_USER=your_docker_hub_username" \ regclient/regsync:latest -c /home/appuser/regsync.yml server # 以服务模式运行(定时同步)
查看服务日志:
docker logs regsync
注意:服务模式下,日志默认仅在同步任务执行时输出。根据
defaults.interval配置,每 60 分钟执行一次同步。
从本地注册表拉取同步后的镜像,验证同步效果:
docker run -it --rm localhost:5000/library/busybox echo "同步成功"
regsync 通过 YAML 配置文件定义同步规则,核心结构如下:
version1。credsregistry:注册表域名或地址(如 docker.io、registry:5000)。scheme:协议类型,可选 http 或 https(默认 https)。tls:TLS 配置,可选 enabled(默认)或 disabled。user:用户名,支持模板语法(如 {{env "USER"}} 从环境变量获取)。pass:密码或访问令牌,支持模板语法(如 {{file "/path/to/token"}} 从文件获取)。defaultsratelimit:速率限制
min:最小剩余请求数,低于此值时暂停同步。retry:重试间隔(如 15m、1h)。parallel:并行同步任务数(默认 1)。interval:定时同步间隔(服务模式下,如 30m、2h)。backup:目标镜像更新前的备份标签格式,使用 Go 模板语法(如 "backup-{{.Ref.Tag}}")。timeout:单次同步任务超时时间(如 10m)。syncsource:源镜像/仓库,格式为 [registry/][namespace/]name[:tag](如 busybox:latest、docker.io/library/alpine)。target:目标镜像/仓库,格式同上。type:同步类型,可选 image(单镜像)或 repository(仓库,同步匹配标签的所有镜像)。tags:标签筛选规则(仅 type: repository 时生效),包含:
allow:允许同步的标签列表(支持正则表达式,如 "3\\.\\d+")。deny:拒绝同步的标签列表(优先级高于 allow)。interval:局部定时同步间隔,覆盖全局 defaults.interval。parallel:局部并行任务数,覆盖全局 defaults.parallel。docker run -it --rm \ --net registry \ # 连接到注册表所在网络(若注册表在同一网络) -v "$(pwd)/regsync.yml:/regsync.yml:ro" \ # 挂载配置文件 -v "$(pwd)/hub_token:/var/run/secrets/hub_token:ro" \ # 挂载凭据文件 -e "HUB_USER=your_username" \ # 传入环境变量 regclient/regsync:latest -c /regsync.yml once # 指定配置文件,运行一次性同步
docker run -d --restart=unless-stopped --name regsync \ --net registry \ -v "$(pwd)/regsync.yml:/regsync.yml:ro" \ -v "$(pwd)/hub_token:/var/run/secrets/hub_token:ro" \ -e "HUB_USER=your_username" \ regclient/regsync:latest -c /regsync.yml server # 以服务模式运行
创建 docker-compose.yml:
version: "3.8" services: regsync: image: regclient/regsync:latest container_name: regsync restart: unless-stopped networks: - registry-net # 连接到注册表所在网络 volumes: - ./regsync.yml:/regsync.yml:ro # 挂载配置文件 - ./hub_token:/var/run/secrets/hub_token:ro # 挂载凭据文件 environment: - HUB_USER=your_docker_hub_username # Docker Hub 用户名 command: -c /regsync.yml server # 服务模式启动 networks: registry-net: external: true # 假设已创建名为 registry 的网络(同步骤 1)
启动服务:
docker-compose up -d
regsync 支持通过模板语法动态获取凭据,常用方式:
{{env "VAR_NAME"}},从容器环境变量中获取值(如 HUB_USER)。{{file "/path/to/file"}},读取文件内容作为值(如 Docker Hub 访问令牌文件)。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429