1. 镜像同步工具(image-syncer)介绍
image-syncer是一个容器镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的 docker 镜像仓库服务
2. 下载地址
请根据使用的操作系统选择对应的二进制文件进行下载,对下载的文件进行解压,解压后可看到可执行文件image-syncer
apple@appledeMacBook-Pro image-syncer-v1.5.2-darwin-arm64 % ls -lt
-rw-r--r--@ 1 apple staff 11357 7 24 14:25 LICENSE
-rw-r--r--@ 1 apple staff 8380 7 24 14:25 README.md
-rwxrwxrwx@ 1 apple staff 15278386 7 24 14:25 image-syncer
3. 执行镜像同步
3.1 获取config.yaml配置文件
config.yaml 在二进制包中不存在,需要自己手动创建或通过官网下载样例 文件完整样例如下:
auth:
registry.xx.cn:
username: demo_xx
password: 8nq99ye
registry.xx.net.cn:
username: demo_xx
password: NNDActz
images:
registry.xx.cn/app-base/app-framework:V1.4.2: registry.xx.net.cn/app-base/app-framework:V1.4.2
registry.xx.cn/app-base/web-framework:V1.4.2: registry.xx.net.cn/app-base/web-framework:V1.4.2
3.2 修改配置文件config.yaml
-
3.2.1 下面将config.yaml配置内容分2部分进行介绍
-
3.2.1.1 auth-仓库认证信息
如果同步时涉及到的仓库需要认证,那么请参照如下说明配置auth认证信息(说明信息在[]中)
auth: registry.xx.cn: #[第一个镜像仓库地址,比如源仓库地址] username: demo_xx #[用户名] password: 897e4CJ #[密码,如果是通过生态账号登录Harbor,可以取"用户设置"中的CLI密码] insecure: true #可选,(v1.0.1后支持)registry是否是http服务,如果是,insecure 字段需要为 true,默认是 false registry.xx.net.cn: #[第二个镜像仓库地址,比如目标仓库地址] username: demo_xx #[第二个镜像仓库用户名] password: NNDActz #[第二个镜像仓库密码]
- 3.2.1.2 images-镜像同步信息 请参照如下说明进行源镜像和目标镜像信息配置(说明信息在[]中)
images: registry.xx.cn/app-base/app-framework:V1.4.2: registry.xx.net.cn/app-base/app-framework:V1.4.2 [ :前为源镜像url(即从哪里同步镜像) :后为目标镜像url(即要同步到哪里)] registry.xx.cn/web-base/web-framework:V1.4.2: registry.xx.net.cn/web-base/web-framework:V1.4.2 [第二条镜像同步配置,如果有N个镜像要同步,可以配置N条记录]
-
3.3 执行二进制文件进行镜像同步
-
3.3.1 确认当前用户是否拥有二进制文件执行权限
- 3.3.1.1 确认文件执行权限
apple@appledeMacBook-Pro image-syncer-v1.5.2-darwin-arm64 % ls -lt -rwxrwxrwx@ 1 apple staff 15278386 7 24 14:25 image-syncer
- 3.3.1.2 若无执行权限,请通过chmod +x 命令添加用户可执行权限
apple@appledeMacBook-Pro image-syncer-v1.5.2-darwin-arm64 % chmod +x image-syncer
-
3.3.2 执行镜像同步命令
-
3.3.2.1 如果是mac电脑,在执行image-syncer二进制文件时可能会有如下风险提示
可参照如下步骤解决
点击"在访达中显示"进入image-syncer二进制文件所在目录,右键->打开方式->终端 打开二进制文件, 如下图所示
关闭刚刚打开的终端(入下图所示),然后参照非mac电脑执行方式(3.3.2.2)执行即可
-
3.3.2.2 如果是非mac电脑,直接通过执行如下命令进行镜像同步
./image-syncer --proc=8 --config=./config.yaml 参数说明: --proc 并发数,进行镜像同步的并发goroutine数量,默认为5 --config 设置用户提供的配置文件路径,使用之前需要创建此文件,默认为当前工作目录下的config.json文件。
注意:config.yaml的文件路径如果不在当前目录下,请将--config=之后路径修改为实际config.yaml所在文件路径
-