You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Docker Hub上Demisto的最新Docker镜像批量复制到Nexus

Docker Hub demisto用户仓库批量同步到Nexus操作方案

针对200+镜像批量迁移的需求,不需要逐个拉取到本地再推送,可以直接通过跨Registry同步工具实现,操作步骤如下:

前置准备

  • 提前安装skopeo、jq工具,需要并行加速可以额外安装parallel
  • 分别完成Docker Hub、Nexus Docker仓库的登录认证,确保账号有对应仓库的读写权限
  • Nexus端提前创建好Docker hosted类型的存储仓库,用于存放同步后的demisto镜像

方案1:轻量脚本实现(仅同步latest标签)

该方案无需额外配置,直接通过命令行即可完成,且不需要占用本地磁盘存储镜像中间文件。

  1. 首先拉取demisto用户下全部公共仓库列表
USERNAME="demisto"
PAGE=1
REPO_LIST=()

# 处理分页拉取所有仓库名
while true; do
  RESP=$(curl -s "https://hub.docker.com/v2/repositories/${USERNAME}/?page_size=100&page=${PAGE}")
  REPOS=$(echo "${RESP}" | jq -r '.results[].name')
  if [ -z "${REPOS}" ]; then
    break
  fi
  REPO_LIST+=(${REPOS})
  PAGE=$((PAGE+1))
done
  1. 批量同步镜像到Nexus
# 替换为你实际的Nexus Docker仓库地址
NEXUS_REGISTRY="nexus.example.com:5000"

for REPO in "${REPO_LIST[@]}"; do
  # --all参数会自动同步多架构镜像的完整manifest列表,不需要可以去掉
  skopeo copy --all docker://docker.io/${USERNAME}/${REPO}:latest docker://${NEXUS_REGISTRY}/${USERNAME}/${REPO}:latest
done

如果需要并行加速,可以把循环替换为parallel调用,同步效率可以提升数倍。

方案2:专业同步工具实现(支持自定义规则)

如果需要同步全量标签、过滤特定镜像、定时同步等更复杂的需求,可以使用regsync工具,仅需要编写配置文件即可实现:

  1. 编写同步配置文件regsync.yaml
version: 1
src:
  registry: docker.io
  auth:
    username: "你的Docker Hub账号"
    password: "你的Docker Hub密码"
dst:
  registry: "nexus.example.com:5000"
  auth:
    username: "你的Nexus账号"
    password: "你的Nexus密码"
sync:
  - source: demisto/*
    target: demisto/
    tags:
      allow:
        - latest # 仅同步latest标签,要同步所有标签可以把tags段全部删掉
  1. 执行同步命令
# 干跑预览同步内容,确认无误后去掉--dry-run参数执行实际同步
regsync once -c regsync.yaml --dry-run

注意事项

  • Docker Hub匿名用户有6小时200次的拉取限流,建议使用登录后的认证账号拉取,避免同步被中断
  • 同步前建议先执行干跑命令预览同步列表,确认符合预期后再执行实际同步
  • Nexus端需要关闭对应仓库的不可变标签配置,避免最新版本镜像推送被拒绝

内容的提问来源于stack exchange,提问作者LordRazon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:24:03