1

我想从nexus中提取所有图像并将它们推送到港口我尝试这样做

  • docker login -u -p https://harbor.domaine.com/

  • docker tag nexus.domaine.com/tag:number harbor.domaine.com/project_name/tag:number

但问题是我有很多图像,如果我执行此操作,我需要为每个图像写 1 行,所以我想要一个循环之类的东西,也可以从 nexus 拉和推送所有图像有什么帮助吗?!

4

2 回答 2

0

您可以尝试使用 bash 脚本,例如

#!/bin/bash
docker login -u -p https://harbor.domaine.com/
for image_name in $(docker images --format="{{.Repository}}:{{.Tag}}" | grep nexus.domaine.com)
do
  new_image_name=$(echo $image_name | sed 's/nexus.domaine.com/harbor.domaine.com\/project_name/')
  docker tag $image_name $new_image_name
  docker push $new_image_name
done
于 2021-09-28T10:30:17.000 回答
0

我一直在开发regsync来做到这一点。为了快速入门,我最近在 docker all-hands举办了一个研讨会,其中不仅包括副本,还包括清理步骤,或者项目本身的快速入门。

要实现,请创建一个 regsync.yml:

version: 1
creds:
  - registry: nexus.domaine.com
    # credentials here
  - registry: harbor.domaine.com
    # credentials here
defaults:
  parallel: 2
  interval: 60m
sync:
  - source: nexus.domaine.com/image
    target: harbor.domaine.com/project_name/image
    type: repository

然后运行 ​​regsync:

docker container run -it --rm \
  -v "$(pwd)/regsync.yml:/home/appuser/regsync.yml:ro" \
  regclient/regsync:latest -c /home/appuser/regsync.yml once
于 2021-09-28T11:02:07.947 回答