{
"auth": { // 认证字段,其中每个对象为一个 registry 的一个账号和
// 密码;通常,同步源需要具有 pull 以及访问 tags 权限,
// 同步目标需要拥有 push 以及创建仓库权限,如果没有提供,则默认匿名访问
"quay.io": { // registry 的 url,需要和下面 images 中对应 registry 的 url 相同
"username": "xxx", // 用户名,可选
"password": "xxxxxxxxx", // 密码,可选
"insecure": true // registry 是否是 http 服务,如果是,insecure 字段需要为 true,默认是 false,可选,支持这个选项需要 image-syncer 版本 > v1.0.1
},
"registry.cn-beijing.aliyuncs.com": {
"username": "xxx",
"password": "xxxxxxxxx"
},
"registry.hub.docker.com": {
"username": "xxx",
"password": "xxxxxxxxxx"
}
},
"images": {
// 同步镜像规则字段,其中条规则包括一个源仓库(键)和一个目标仓库(值)
// 同步的最大单位是仓库(repo),不支持通过一条规则同步整个 namespace 以及 registry
// 源仓库和目标仓库的格式与 docker pull/push 命令使用的镜像 url 类似(registry/namespace/repository:tag)
// 源仓库和目标仓库(如果目标仓库不为空字符串)都至少包含 registry/namespace/repository
// 源仓库字段不能为空,如果需要将一个源仓库同步到多个目标仓库需要配置多条规则
// 目标仓库名可以和源仓库名不同(tag 也可以不同),此时同步功能类似于:docker pull + docker tag + docker push
"quay.io/coreos/kube-rbac-proxy": "quay.io/ruohe/kube-rbac-proxy",
"xxxx":"xxxxx",
"xxx/xxx/xx:tag1,tag2,tag3":"xxx/xxx/xx"
// 当源仓库字段中不包含 tag 时,表示将该仓库所有 tag 同步到目标仓库,此时目标仓库不能包含 tag
// 当源仓库字段中包含 tag 时,表示只同步源仓库中的一个 tag 到目标仓库,如果目标仓库中不包含 tag,则默认使用源 tag
// 源仓库字段中的 tag 可以同时包含多个(比如"a/b/c:1,2,3"),tag 之间通过","隔开,此时目标仓库不能包含 tag,并且默认使用原来的 tag
// 当目标仓库为空字符串时,会将源镜像同步到默认 registry 的默认 namespace 下,并且 repo 以及 tag 与源仓库相同,默认 registry 和默认 namespace 可以通过命令行参数以及环境变量配置,参考下面的描述
}
}
最新版源码以及二进制文件:
https://github.com/AliyunContainerService/image-syncer/releases/tag/v1.0.3
原文链接:来源 | 雷锋网 AI 开发者
https://yq.aliyun.com/articles/727565?utm_content=g_1000088598
Github 开源地址:
https://github.com/AliyunContainerService/image-syncer
更多 FAQ 参见:
https://github.com/AliyunContainerService/image-syncer/blob/master/FAQs.md