快速搭建自己的多平臺鏡像站,你學(xué)會了嗎?
由于許多公開鏡像站已不再可用,我們建立了一個公益鏡像倉庫供大家下載使用。然而,由于鏡像倉庫的帶寬有限,建議用戶自行搭建。以下是相關(guān)資源和使用方法:
Github倉庫地址:?https://github.com/kubesre/docker-registry-mirrors
如果覺得有幫助,請?jiān)贕itHub上點(diǎn)個??以示鼓勵。
當(dāng)前 IP 限流 20次/分鐘
使用方法
k8s.gcr.io/coredns/coredns => kubesre.xyz/k8s.gcr.io/coredns/coredns
或者通過支持的鏡像倉庫前綴替換即可使用,例如:
k8s.gcr.io/coredns/coredns => k8s-gcr.kubesre.xyz/coredns/coredns
支持前綴替換的 Registry
以下是前綴替換的 Registry 規(guī)則,如有需求請?zhí)?Issue:
Github倉庫地址:?https://github.com/kubesre/docker-registry-mirrors
如果覺得有幫助,請?jiān)贕itHub上點(diǎn)個??以示鼓勵。
替換規(guī)則表
原始倉庫地址 | 替換為 |
cr.l5d.io | l5d.kubesre.xyz |
docker.elastic.co | elastic.kubesre.xyz |
docker.io | docker.kubesre.xyz |
gcr.io | gcr.kubesre.xyz |
ghcr.io | ghcr.kubesre.xyz |
k8s.gcr.io | k8s-gcr.kubesre.xyz |
registry.k8s.io | k8s.kubesre.xyz |
mcr.microsoft.com | mcr.kubesre.xyz |
nvcr.io | nvcr.kubesre.xyz |
quay.io | quay.kubesre.xyz |
registry.jujucharms.com | jujucharms.kubesre.xyz |
詳細(xì)說明請參考:?https://github.com/kubesre/docker-registry-mirrors
背景介紹
隨著一些知名公開鏡像站的關(guān)閉,國內(nèi)用戶在使用Docker時面臨更多困難。特別是對于企業(yè)而言,搭建一個穩(wěn)定可靠的自用鏡像站顯得尤為重要。本文將介紹一種工具——crproxy,它是一個Docker鏡像代理服務(wù)。通過部署此服務(wù),我們無需手動同步鏡像到私有倉庫,只需將代理服務(wù)部署在網(wǎng)絡(luò)暢通的服務(wù)器上,即可通過該服務(wù)器拉取各大鏡像倉庫的鏡像。
crproxy支持的鏡像倉庫
crproxy實(shí)際上支持任何鏡像倉庫。以下是一些常見的倉庫列表:
鏡像倉庫地址 | 歸屬 |
cr.l5d.io | Lyft |
docker.elastic.co | Elastic |
docker.io | Docker, Inc. |
gcr.io | Google Cloud |
ghcr.io | GitHub |
k8s.gcr.io | Kubernetes |
registry.k8s.io | Kubernetes |
mcr.microsoft.com | Microsoft Container Registry |
nvcr.io | NVIDIA |
quay.io | Quay.io (CoreOS) |
registry.jujucharms.com | Juju Charms |
部署指南
部署條件:
- 一臺網(wǎng)絡(luò)暢通的服務(wù)器
- 準(zhǔn)備一個域名(無需備案)并做好 DNS 解析:添加兩條解析記錄 @ 記錄 和 * 記錄到準(zhǔn)備好的服務(wù)器的 IP
建議選擇xyz結(jié)尾的域名,首年最低7元。如果使用二級域名,例如cr.kubesre.xyz,可將cr和*.cr解析到服務(wù)器IP。
部署步驟:
# 1. 拉取代碼
$ git clone https://github.com/wzshiming/crproxy.git
$ cd crproxy/examples/default
# 2. 修改網(wǎng)關(guān)域名
使用vim編輯start.sh文件,將第五行的gateway變量值修改為你自己設(shè)定的域名。
# 3. 啟動服務(wù)
$ ./start.sh
# 4. 拉取鏡像示例
如果域名為kubesre.xyz,可以通過添加前綴的方式拉取鏡像
$ docker pull kubesre.xyz/k8s.gcr.io/coredns/coredns:v1.8.6
# 5. 設(shè)置別名
如果需要使用前綴替換方式拉取鏡像,需要執(zhí)行setup-alias.sh腳本,并為別名申請證書。
# 6. 重啟服務(wù)
$ ./reload.sh
注意事項(xiàng)
- 當(dāng)前的部署形式適用于小規(guī)模使用場景。對于大規(guī)模使用,項(xiàng)目中已有相關(guān)代碼,但尚未有文檔描述。
- 文章中提到的倉庫地址kubesre.xyz僅供演示,不保證其穩(wěn)定性和有效性。
添加常用鏡像倉庫別名
設(shè)置環(huán)境變量:
GETEWAY=kubesre.xyz # 替換成自己的域名
添加別名:
./setup-alias.sh l5d.${GETEWAY} cr.l5d.io ${GETEWAY}
./setup-alias.sh elastic.${GETEWAY} docker.elastic.co ${GETEWAY}
./setup-alias.sh docker.${GETEWAY} docker.io ${GETEWAY}
./setup-alias.sh gcr.${GETEWAY} gcr.io ${GETEWAY}
./setup-alias.sh ghcr.${GETEWAY} ghcr.io ${GETEWAY}
./setup-alias.sh k8s-gcr.${GETEWAY} k8s.gcr.io ${GETEWAY}
./setup-alias.sh k8s.${GETEWAY} registry.k8s.io ${GETEWAY}
./setup-alias.sh mcr.${GETEWAY} mcr.microsoft.com ${GETEWAY}
./setup-alias.sh nvcr.${GETEWAY} nvcr.io ${GETEWAY}
./setup-alias.sh quay.${GETEWAY} quay.io ${GETEWAY}
./setup-alias.sh jujucharms.${GETEWAY} registry.jujucharms.com ${GETEWAY}
./setup-alias.sh rocks-canonical.${GETEWAY} rocks.canonical.com ${GETEWAY}
申請別名證書:
./update-tls.sh gcr.${GETEWAY}
./update-tls.sh ghcr.${GETEWAY}
./update-tls.sh k8s-gcr.${GETEWAY}
./update-tls.sh k8s.${GETEWAY}
./update-tls.sh mcr.${GETEWAY}
./update-tls.sh nvcr.${GETEWAY}
./update-tls.sh quay.${GETEWAY}
./update-tls.sh jujucharms.${GETEWAY}
./update-tls.sh rocks-canonical.${GETEWAY}
最后重啟服務(wù):
./reload.sh