{
"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