cr-image-syncer
是镜像仓库自研的通用镜像迁移工具,支持将通用 Docker Registry 类型的镜像仓库(例如华为云、百度云)迁移至火山引擎镜像仓库。
说明
当前镜像仓库已产品化支持,阿里云、腾讯云、AWS、Google、Harbor、Docker 等云厂家镜像仓库至火山引擎镜像仓库的一键迁移,操作详情参见 外部仓库同步至镜像仓库。
多云和搬站场景中都涉及到镜像仓库的迁移工作,cr-image-syncer
工具可以有效的支持通用 Docker Registry 类型的镜像仓库的迁移。
MAC darwin-amd64:
wget https://cr-tools.tos-cn-beijing.volces.com/darwin/amd64/cr-image-syncer && chmod a+x cr-image-syncer
Linux:
wget https://cr-tools.tos-cn-beijing.volces.com/linux/amd64/cr-image-syncer && chmod a+x cr-image-syncer
创建配置文件 config.yaml
,代码示例如下。
target: type: volc apiHost: https://open.volcengineapi.com region: cn-beijing instance: customer-registry accessKey: AKLTY2xxxxMDI3YzE secretKey: TkRrMxxxxMFlqVQ==
配置 | 说明 |
---|---|
type | 云厂商的代号,固定为 volc 。 |
apiHost | OpenAPI 访问地址,固定为 https://open.volcengineapi.com 。 |
region | 火山引擎镜像仓库实例实例所属地域。 |
instance | 火山引擎镜像仓库实例的名称,不是实例 ID。 |
accessKey | 访问火山引擎 OpenAPI 所需的密钥信息,获取方法参见 Access Key(密钥)管理。 |
secretKey | 访问火山引擎 OpenAPI 所需的密钥信息,获取方法参见 Access Key(密钥)管理。 |
创建命名空间配置文件 namespace.yaml
,代码示例如下。
defaultConfig: repositoryDefaultAccessLevel: "Private" namespaces: # use default config - name: "ns1" - name: "ns2" # rewrite repositoryDefaultAccessLevel repositoryDefaultAccessLevel: "Public" - name: "ns3" repositoryDefaultAccessLevel: "Private" - name: "ns4" - name: "ns5"
配置 | 说明 |
---|---|
repositoryDefaultAccessLevel | 命名空间中制品仓库的默认公私有类型。
|
name | 待创建命名空间的名称。 |
执行批量创建命令。
cr-image-syncer prepare create-namespace --config config.yaml --namespaces namespace.yaml --debug
将鉴权信息添加至配置文件 config.yaml
中。本示例为第三方云迁移之前火山引擎,source
填写第三方云镜像仓库鉴权信息,target
填写火山引擎镜像仓库鉴权信息。
source: registryHost: src-registry-cn-beijing.cr.****.com registryUsername: customer@**** registryPassword: **** insecure: false target: registryHost: dst-registry-cn-beijing.cr.volces.com registryUsername: customer@**** registryPassword: **** insecure: false
配置 | 说明 |
---|---|
registryHost | 镜像迁移源仓库货目标仓库的地址。 |
registryUsername/ | 镜像仓库的登录信息。
|
insecure | 镜像仓库是否允许 HTTP 登录,建议选择否,填写 false 。 |
配置镜像批量同步文件 images.yaml
,示例如下。多行输出时,每行的信息为 <来源 repo>:<目标 repo>
src-regsitry-cn-beijing.cr.****.com/****/repo: dst-registry-cn-beijing.cr.volces.com/ns1/repo src-regsitry-cn-beijing.cr.****.com/****/a: dst-registry-cn-beijing.cr.volces.com/ns2/a src-regsitry-cn-beijing.cr.****.com/****/ubuntu: dst-registry-cn-beijing.cr.volces.com/ns2/ubuntu
执行批量同步命令。
# --debug 按需增加 cr-image-syncer copy --without-prepare --config config.yaml --images images.yaml --debug
操作完成后可在对应的 OCI 制品仓库镜像列表中查看已完成同步的镜像。